Skip to content
This repository has been archived by the owner on Mar 27, 2018. It is now read-only.

Commit

Permalink
added a headless application to py4j/eclipse
Browse files Browse the repository at this point in the history
  • Loading branch information
bartdag committed Jun 2, 2011
1 parent b66932d commit 2164c69
Show file tree
Hide file tree
Showing 2 changed files with 90 additions and 0 deletions.
12 changes: 12 additions & 0 deletions net.sf.py4j.defaultserver/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,17 @@
class="net.sf.py4j.defaultserver.preferences.PreferenceInitializer">
</initializer>
</extension>
<extension
id="py4jheadless"
point="org.eclipse.core.runtime.applications">
<application
cardinality="singleton-global"
thread="main"
visible="true">
<run
class="net.sf.py4j.defaultserver.HeadlessApplication">
</run>
</application>
</extension>

</plugin>
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package net.sf.py4j.defaultserver;

import java.util.concurrent.CountDownLatch;

import org.eclipse.equinox.app.IApplication;
import org.eclipse.equinox.app.IApplicationContext;

import py4j.GatewayServer;
import py4j.GatewayServerListener;

public class HeadlessApplication implements IApplication, GatewayServerListener {

private CountDownLatch latch;

@Override
public Object start(IApplicationContext context) throws Exception {
GatewayServer server = DefaultServerActivator.getDefault().getServer();
latch = new CountDownLatch(1);
server.addListener(this);
System.out.println("Py4J Headless Application Started.");
Object result = IApplication.EXIT_OK;
try {
latch.await();
} catch(Exception e) {
result = new Integer(1);
}
return result;
}

@Override
public void stop() {

}

@Override
public void serverStarted() {

}

@Override
public void serverStopped() {

}

@Override
public void serverError(Exception e) {

}

@Override
public void serverPreShutdown() {

}

@Override
public void serverPostShutdown() {
System.out.println("Py4J Headless Application Stopping.");
latch.countDown();
}

@Override
public void connectionStarted() {

}

@Override
public void connectionStopped() {

}

@Override
public void connectionError(Exception e) {

}



}

0 comments on commit 2164c69

Please sign in to comment.