You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by bu...@apache.org on 2018/02/16 15:17:30 UTC
svn commit: r1824507 - in /uima/uima-ducc/trunk:
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/
uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/
uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/con...
Author: burn
Date: Fri Feb 16 15:17:30 2018
New Revision: 1824507
URL: http://svn.apache.org/viewvc?rev=1824507&view=rev
Log:
UIMA-5732 Added DuccJobService:stop and updated DuccService:stop
Modified:
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java
uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/main/DuccJobService.java
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java?rev=1824507&r1=1824506&r2=1824507&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/component/AbstractDuccComponent.java Fri Feb 16 15:17:30 2018
@@ -24,21 +24,19 @@ import java.net.InetAddress;
import java.net.ServerSocket;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.RMIServerSocketFactory;
-import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.Properties;
import java.util.Set;
import java.util.Timer;
import java.util.TimerTask;
-import java.util.Map.Entry;
import javax.management.MBeanServer;
import javax.management.ObjectName;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
-import javax.management.remote.rmi.RMIConnectorServer;
import javax.net.ServerSocketFactory;
import org.apache.activemq.camel.component.ActiveMQComponent;
@@ -56,9 +54,9 @@ import org.apache.uima.ducc.common.main.
import org.apache.uima.ducc.common.utils.DuccLogger;
import org.apache.uima.ducc.common.utils.DuccProperties;
import org.apache.uima.ducc.common.utils.JdkEvaluator;
-import org.apache.uima.ducc.common.utils.Utils;
import org.apache.uima.ducc.common.utils.JdkEvaluator.JDKVendor;
import org.apache.uima.ducc.common.utils.JdkEvaluator.Vendors;
+import org.apache.uima.ducc.common.utils.Utils;
import org.apache.uima.ducc.common.utils.id.DuccId;
/**
Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java?rev=1824507&r1=1824506&r2=1824507&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/main/DuccService.java Fri Feb 16 15:17:30 2018
@@ -60,7 +60,7 @@ public class DuccService extends Abstrac
public static final String DUCC_PROPERTY_FILE="ducc.deploy.configuration";
public static final String DUCC_DEPLOY_COMPONENTS="ducc.deploy.components";
//private Investment investment = null;
- private Main main;
+ private Main camelMain;
private static DuccLogger globalLogger = null;
private ApplicationContext context;
Map<String,AbstractDuccComponent> duccComponents = null;
@@ -147,9 +147,9 @@ public class DuccService extends Abstrac
public void boot(String[] args) throws Exception {
String methodName = "boot";
// create a Main instance
- main = new Main();
+ camelMain = new Main();
// enable hangup support so you can press ctrl + c to terminate the JVM
- main.enableHangupSupport();
+ camelMain.enableHangupSupport();
// Load ducc properties file and enrich System properties. It supports
// overrides for entries in ducc properties file. Any key in the ducc
// property file can be overriden with -D<key>=<value>
@@ -183,7 +183,7 @@ public class DuccService extends Abstrac
getDuccLogger().info(methodName, null,"Starting Camel. Use ctrl + c to terminate the JVM.\n");
// run until you terminate the JVM
getDuccLogger().info(methodName, null, "Starting Camel. Use ctrl + c to terminate the JVM.\n");
- main.start();
+ camelMain.start();
}
public AbstractDuccComponent getComponentInstance(String componentKey) {
// Extract all Ducc components from Spring container
@@ -259,14 +259,20 @@ public class DuccService extends Abstrac
}
public void stop() throws Exception {
- if ( main.isStarted() ) {
- List<CamelContext> ctxList = main.getCamelContexts();
+ AbstractDuccComponent duccComponent = getComponentByInstanceType(IJobProcessor.class);
+ if ( duccComponent instanceof IJobProcessor ) {
+ duccComponent.stop();
+ getDuccLogger().info("stop", null, "Stopped JobComponent");
+ }
+ if ( camelMain.isStarted() ) {
+ List<CamelContext> ctxList = camelMain.getCamelContexts();
for( CamelContext ctx : ctxList ) {
ctx.stop();
}
- main.stop();
- getDuccLogger().shutdown();
+ camelMain.stop();
+ getDuccLogger().info("stop", null, "Stopped main");
}
+ getDuccLogger().shutdown();
}
private static void setLoggerComponent() {
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java?rev=1824507&r1=1824506&r2=1824507&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java Fri Feb 16 15:17:30 2018
@@ -55,7 +55,7 @@ import org.apache.uima.ducc.container.sd
import org.apache.uima.ducc.container.sd.ServiceRegistry_impl;
public class DuccHttpClient {
- private final static String REGISTERED_DRIVER = "ducc.deploy.service.driver";
+ private final static String REGISTERED_DRIVER = "ducc.deploy.registered.driver";
private final static String SERVICE_TYPE = "ducc.deploy.service.type";
private DuccLogger logger = new DuccLogger(DuccHttpClient.class);
@@ -97,8 +97,8 @@ public class DuccHttpClient {
return address;
}
- // If the client URL has been provided use it (JD/JP case)
- // Otherwise look it up in the registry using the entry in -Dducc.deploy.service.driver
+ // If the client URL provided use it (JD/JP case)
+ // Otherwise in the registry lookup "ducc.deploy.registered.driver"
// which must specify: <registry-location>?<registry-entry>
public void initialize(String jdUrl) throws Exception {
Modified: uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/main/DuccJobService.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/main/DuccJobService.java?rev=1824507&r1=1824506&r2=1824507&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/main/DuccJobService.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-user/src/main/java/org/apache/uima/ducc/user/common/main/DuccJobService.java Fri Feb 16 15:17:30 2018
@@ -38,6 +38,9 @@ import org.apache.uima.ducc.user.jp.ifac
public class DuccJobService {
boolean DEBUG = false;
private Investment investment = null;
+ private Method stopMethod;
+ private Object duccContainerInstance;
+ private Logger logger = Logger.getLogger(DuccJobService.class.getName());
public static URLClassLoader create(String classPath)
throws MalformedURLException {
@@ -109,9 +112,9 @@ public class DuccJobService {
Method setProcessorMethod = duccServiceClass.getMethod("setProcessor", Object.class, String[].class);
Method registerInvestmentInstanceMethod = duccServiceClass.getMethod("registerInvestmentInstance", Object.class);
Method startMethod = duccServiceClass.getMethod("start");
+ stopMethod = duccServiceClass.getMethod("stop");
// Establish user's logger early to prevent the DUCC code from accidentally doing so
- Logger logger = Logger.getLogger(DuccJobService.class.getName());
logger.log(Level.INFO, ">>>>>>>>> Booting Ducc Container");
HashMap<String, String> savedPropsMap = hideLoggingProperties(); // Ensure DUCC doesn't try to use the user's logging setup
@@ -119,7 +122,7 @@ public class DuccJobService {
// Construct & initialize Ducc fenced container.
// It calls component's Configuration class
Thread.currentThread().setContextClassLoader(ucl);
- Object duccContainerInstance = duccServiceClass.newInstance();
+ duccContainerInstance = duccServiceClass.newInstance();
bootMethod.invoke(duccContainerInstance, (Object) args);
logger.log(Level.INFO, "<<<<<<<< Ducc Container booted");
@@ -164,6 +167,18 @@ public class DuccJobService {
}
+ /*
+ * Terminate the service connection
+ */
+ public void stop() {
+ try {
+ stopMethod.invoke(duccContainerInstance);
+ } catch( Throwable t) {
+ logger.log(Level.SEVERE, "Stop failed");
+ t.printStackTrace();
+ }
+ }
+
public static HashMap<String,String> hideLoggingProperties() {
String[] propsToSave = { "log4j.configuration",
"java.util.logging.config.file",