Added complete lifecycle methods for the Application EntryPoint interfaces
git-svn-id: https://hyracks.googlecode.com/svn/branches/fullstack_hyracks_ioc@2992 123451ca-8445-de46-9d55-352943316053
diff --git a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationContext.java b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationContext.java
index fd60ee6..c4b7802 100644
--- a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationContext.java
+++ b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationContext.java
@@ -28,7 +28,7 @@
/**
* Sets the state that must be distributed by the infrastructure to all the
* NC application contexts. Any state set by calling this method in
- * the {@link ICCApplicationEntryPoint#appMain(ICCApplicationContext, String[])} call
+ * the {@link ICCApplicationEntryPoint#start(ICCApplicationContext, String[])} call
* is made available to all the {@link INCApplicationContext} objects at each Node Controller.
* The state is then available to be inspected by the application at the NC during or
* after the {@link INCBootstrap#start()} call.
diff --git a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationEntryPoint.java b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationEntryPoint.java
index cc1d93e..c22cc51 100644
--- a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationEntryPoint.java
+++ b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/ICCApplicationEntryPoint.java
@@ -1,5 +1,7 @@
package edu.uci.ics.hyracks.api.application;
public interface ICCApplicationEntryPoint {
- public void appMain(ICCApplicationContext ccAppCtx, String[] args) throws Exception;
+ public void start(ICCApplicationContext ccAppCtx, String[] args) throws Exception;
+
+ public void stop() throws Exception;
}
\ No newline at end of file
diff --git a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/INCApplicationEntryPoint.java b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/INCApplicationEntryPoint.java
index afa824d..9a25b3c 100644
--- a/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/INCApplicationEntryPoint.java
+++ b/hyracks/hyracks-api/src/main/java/edu/uci/ics/hyracks/api/application/INCApplicationEntryPoint.java
@@ -1,5 +1,9 @@
package edu.uci.ics.hyracks.api.application;
public interface INCApplicationEntryPoint {
- public void appMain(INCApplicationContext ncAppCtx, String[] args) throws Exception;
+ public void start(INCApplicationContext ncAppCtx, String[] args) throws Exception;
+
+ public void notifyStartupComplete() throws Exception;
+
+ public void stop() throws Exception;
}
\ No newline at end of file
diff --git a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/ClusterControllerService.java b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/ClusterControllerService.java
index 677cd18..137cf05 100644
--- a/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/ClusterControllerService.java
+++ b/hyracks/hyracks-control/hyracks-control-cc/src/main/java/edu/uci/ics/hyracks/control/cc/ClusterControllerService.java
@@ -197,7 +197,7 @@
ICCApplicationEntryPoint aep = (ICCApplicationEntryPoint) c.newInstance();
String[] args = ccConfig.appArgs == null ? null : ccConfig.appArgs.toArray(new String[ccConfig.appArgs
.size()]);
- aep.appMain(appCtx, args);
+ aep.start(appCtx, args);
}
}
diff --git a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/NodeControllerService.java b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/NodeControllerService.java
index fb1e57c..6af23c2 100644
--- a/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/NodeControllerService.java
+++ b/hyracks/hyracks-control/hyracks-control-nc/src/main/java/edu/uci/ics/hyracks/control/nc/NodeControllerService.java
@@ -115,6 +115,8 @@
private NCApplicationContext appCtx;
+ private INCApplicationEntryPoint ncAppEntryPoint;
+
private final MemoryMXBean memoryMXBean;
private final List<GarbageCollectorMXBean> gcMXBeans;
@@ -245,6 +247,9 @@
}
LOGGER.log(Level.INFO, "Started NodeControllerService");
+ if (ncAppEntryPoint != null) {
+ ncAppEntryPoint.notifyStartupComplete();
+ }
}
private void startApplication() throws Exception {
@@ -252,10 +257,10 @@
String className = ncConfig.appNCMainClass;
if (className != null) {
Class<?> c = Class.forName(className);
- INCApplicationEntryPoint aep = (INCApplicationEntryPoint) c.newInstance();
+ ncAppEntryPoint = (INCApplicationEntryPoint) c.newInstance();
String[] args = ncConfig.appArgs == null ? new String[0] : ncConfig.appArgs
.toArray(new String[ncConfig.appArgs.size()]);
- aep.appMain(appCtx, args);
+ ncAppEntryPoint.start(appCtx, args);
}
}
diff --git a/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/edu/uci/ics/hyracks/examples/btree/helper/NCApplicationEntryPoint.java b/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/edu/uci/ics/hyracks/examples/btree/helper/NCApplicationEntryPoint.java
index 2a1b3af..a1dacd8 100644
--- a/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/edu/uci/ics/hyracks/examples/btree/helper/NCApplicationEntryPoint.java
+++ b/hyracks/hyracks-examples/btree-example/btreehelper/src/main/java/edu/uci/ics/hyracks/examples/btree/helper/NCApplicationEntryPoint.java
@@ -5,8 +5,18 @@
public class NCApplicationEntryPoint implements INCApplicationEntryPoint {
@Override
- public void appMain(INCApplicationContext ncAppCtx, String[] args) throws Exception {
+ public void start(INCApplicationContext ncAppCtx, String[] args) throws Exception {
RuntimeContext rCtx = new RuntimeContext(ncAppCtx);
ncAppCtx.setApplicationObject(rCtx);
}
+
+ @Override
+ public void notifyStartupComplete() throws Exception {
+
+ }
+
+ @Override
+ public void stop() throws Exception {
+
+ }
}
\ No newline at end of file
diff --git a/pregelix/pregelix-runtime/src/main/java/edu/uci/ics/pregelix/runtime/bootstrap/NCApplicationEntryPoint.java b/pregelix/pregelix-runtime/src/main/java/edu/uci/ics/pregelix/runtime/bootstrap/NCApplicationEntryPoint.java
index 31162f1..fbebc66 100644
--- a/pregelix/pregelix-runtime/src/main/java/edu/uci/ics/pregelix/runtime/bootstrap/NCApplicationEntryPoint.java
+++ b/pregelix/pregelix-runtime/src/main/java/edu/uci/ics/pregelix/runtime/bootstrap/NCApplicationEntryPoint.java
@@ -6,8 +6,18 @@
public class NCApplicationEntryPoint implements INCApplicationEntryPoint {
@Override
- public void appMain(INCApplicationContext ncAppCtx, String[] args) throws Exception {
+ public void start(INCApplicationContext ncAppCtx, String[] args) throws Exception {
RuntimeContext rCtx = new RuntimeContext(ncAppCtx);
ncAppCtx.setApplicationObject(rCtx);
}
+
+ @Override
+ public void notifyStartupComplete() throws Exception {
+
+ }
+
+ @Override
+ public void stop() throws Exception {
+
+ }
}
\ No newline at end of file