Author: burn
Date: Fri Feb  9 15:16:19 2018
New Revision: 1823666

URL: http://svn.apache.org/viewvc?rev=1823666&view=rev
Log:
UIMA-5551 Simplify pull-service configuration by replacing the config file with 
explicit -Ds

Removed:
    
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/ConfigurationProperties.java
Modified:
    
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/DuccServiceDriver.java
    
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/iface/ServiceDriver.java
    
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/HttpTaskTransportHandler.java
    
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/iface/TaskTransportHandler.java
    
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jp/DuccHttpClient.java

Modified: 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/DuccServiceDriver.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/DuccServiceDriver.java?rev=1823666&r1=1823665&r2=1823666&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/DuccServiceDriver.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/DuccServiceDriver.java
 Fri Feb  9 15:16:19 2018
@@ -90,7 +90,7 @@ public class DuccServiceDriver implement
                        protocolHandler.stop();
                }
        }
-       public void initialize(Properties properties) throws DriverException {
+       public String initialize(Properties properties) throws DriverException {
                if ( TransportType.HTTP.equals(transportType)) {
                        transport = 
                                        Transports.newHttpTransport();
@@ -101,10 +101,7 @@ public class DuccServiceDriver implement
                                protocolHandler.initialize(properties);
                                logger.log(Level.INFO, "Initializing transport 
...");
                                
transport.setTaskProtocolHandler(protocolHandler);
-                               transport.initialize(properties);
-                               
-                               start();
-                       
+                               return transport.initialize(properties);
                        } catch( TaskProtocolException e) {
                                throw new DriverException(e);
                        } catch( TaskTransportException e) {
@@ -113,6 +110,7 @@ public class DuccServiceDriver implement
                                throw new DriverException(e);
                        }
                }
+    return null;
        }
        public void test() throws Exception {
                AtomicInteger IdGenerator =
@@ -160,7 +158,7 @@ public class DuccServiceDriver implement
                        ServiceDriver driver = DuccServiceDriver.getInstance();
                        driver.setTaskAllocator(taskAllocator);
                        driver.initialize(properties);
-                       //driver.start();
+                       driver.start();
                //      ((DuccServiceDriver)driver).test();
                                
                } catch( Exception e) {

Modified: 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/iface/ServiceDriver.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/iface/ServiceDriver.java?rev=1823666&r1=1823665&r2=1823666&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/iface/ServiceDriver.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/iface/ServiceDriver.java
 Fri Feb  9 15:16:19 2018
@@ -29,10 +29,8 @@ public interface ServiceDriver extends L
        public static String Application = "driver.application.name";
        public static String Port = "driver.server.port";
        public static String MaxThreads = "driver.server.max.threads";
-       public static String Registry = "registry";
-       // Perhaps should move all these keys into the shared 
ConfigurationProperties?
 
-       public void initialize(Properties props) throws DriverException;
+       public String initialize(Properties props) throws DriverException;
        public TaskAllocatorCallbackListener getTaskAllocator();
        public void setTaskAllocator(TaskAllocatorCallbackListener 
taskAllocator);
 }

Modified: 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/HttpTaskTransportHandler.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/HttpTaskTransportHandler.java?rev=1823666&r1=1823665&r2=1823666&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/HttpTaskTransportHandler.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/HttpTaskTransportHandler.java
 Fri Feb  9 15:16:19 2018
@@ -32,8 +32,6 @@ import org.apache.uima.UIMAFramework;
 import org.apache.uima.ducc.common.utils.XStreamUtils;
 import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction;
 import org.apache.uima.ducc.container.net.iface.IMetaCasTransaction.Direction;
-import org.apache.uima.ducc.container.sd.ServiceRegistry;
-import org.apache.uima.ducc.container.sd.ServiceRegistry_impl;
 import org.apache.uima.ducc.container.sd.iface.ServiceDriver;
 import org.apache.uima.ducc.container.sd.task.error.TaskProtocolException;
 import org.apache.uima.ducc.container.sd.task.iface.TaskProtocolHandler;
@@ -90,7 +88,7 @@ public class HttpTaskTransportHandler im
                }
        }
 
-  public Server createServer(int httpPort, int maxThreads, String app, 
TaskProtocolHandler handler, String registryAddr) 
+  public Server createServer(int httpPort, int maxThreads, String app, 
TaskProtocolHandler handler) 
           throws Exception {
 
                // Server thread pool
@@ -117,40 +115,17 @@ public class HttpTaskTransportHandler im
 
                context.addServlet(new ServletHolder(new 
TaskHandlerServlet(handler)), "/"+app);
 
-    // Establish the URL we could register for our customers
-    String taskUrl = server.getURI().toString();
-    if (taskUrl.endsWith("/")) {
-      taskUrl = taskUrl.substring(0, taskUrl.length() - 1);
-    }
-    taskUrl += ":" + httpPort + "/" + app;
-    logger.log(Level.INFO, "Service Driver URL: " + taskUrl); // e.g. 
http://localhost:8888/test";);
-
-    // Register the task allocator's URL if a registry is specified
-    // The type of registry is determined by the registry class.
-    
-    String taskServerName = app;   // why not?
-    if (registryAddr != null) {
-      ServiceRegistry registry = ServiceRegistry_impl.getInstance();
-      if (registry.initialize(registryAddr)) {
-        registry.register(taskServerName, taskUrl, "");   // Will also create 
a shutdown hook to unregister
-        logger.log(Level.INFO,"Registered: " + taskServerName);
-      }
-    } else {
-      logger.log(Level.WARNING, "Registration skipped - registry=" + 
registryAddr + " server="+taskServerName);
-    }
-
                return server;
        }
 
        @Override
-       public void initialize(Properties properties) throws 
TaskTransportException {
+       public String initialize(Properties properties) throws 
TaskTransportException {
                // TODO Auto-generated method stub
                // Max cores
     int cores = Runtime.getRuntime().availableProcessors();
     String portString = (String) properties.get(ServiceDriver.Port);
     String maxThreadsString = (String) 
properties.get(ServiceDriver.MaxThreads);
     String appName = (String) properties.get(ServiceDriver.Application);
-    String registry = (String) properties.get(ServiceDriver.Registry);    // 
optional
 
                int maxThreads = cores;
                int httpPort = -1;
@@ -180,11 +155,20 @@ public class HttpTaskTransportHandler im
                }
                try {
                        // create and initialize Jetty Server
-                       server = createServer(httpPort, maxThreads, appName, 
taskProtocolHandler, registry);
+                       server = createServer(httpPort, maxThreads, appName, 
taskProtocolHandler);
                } catch (Exception e) {
                        throw new TaskTransportException(e);
                }
-
+    
+               // Establish the URL we could register for our customers
+    String taskUrl = server.getURI().toString();
+    if (taskUrl.endsWith("/")) {
+      taskUrl = taskUrl.substring(0, taskUrl.length() - 1);
+    }
+    taskUrl += ":" + httpPort + "/" + appName;
+    logger.log(Level.INFO, "Service Driver URL: " + taskUrl); // e.g. 
http://localhost:8888/test";);
+    
+    return taskUrl;
        }
 
 

Modified: 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/iface/TaskTransportHandler.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/iface/TaskTransportHandler.java?rev=1823666&r1=1823665&r2=1823666&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/iface/TaskTransportHandler.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/sd/task/transport/iface/TaskTransportHandler.java
 Fri Feb  9 15:16:19 2018
@@ -27,6 +27,6 @@ import org.apache.uima.ducc.container.sd
 
 public interface TaskTransportHandler extends Lifecycle {
        
-       public void initialize(Properties properties) throws 
TaskTransportException;
+       public String initialize(Properties properties) throws 
TaskTransportException;
        public void setTaskProtocolHandler(TaskProtocolHandler 
taskProtocolHandler);
 }

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=1823666&r1=1823665&r2=1823666&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  9 15:16:19 2018
@@ -51,12 +51,13 @@ import org.apache.uima.ducc.container.ne
 import org.apache.uima.ducc.container.net.impl.MetaCasTransaction;
 import org.apache.uima.ducc.container.net.impl.PerformanceMetrics;
 import org.apache.uima.ducc.container.net.impl.TransactionId;
-import org.apache.uima.ducc.container.sd.ConfigurationProperties;
 import org.apache.uima.ducc.container.sd.ServiceRegistry;
 import org.apache.uima.ducc.container.sd.ServiceRegistry_impl;
-import org.apache.uima.ducc.container.sd.iface.ServiceDriver;
 
 public class DuccHttpClient {
+  private final static String REGISTERED_DRIVER = "ducc.deploy.service.driver";
+  private final static String SERVICE_TYPE      = "ducc.deploy.service.type";
+  
        private DuccLogger logger = new DuccLogger(DuccHttpClient.class);
        private JobProcessComponent duccComponent;
        private BasicConnPool connPool = null;
@@ -73,7 +74,6 @@ public class DuccHttpClient {
        private int ClientMaxConnectionsPerHostPort = 0;
   private ServiceRegistry registry = null;
   private String taskServerName;
-  private Properties config = null;
        
   public DuccHttpClient(JobProcessComponent duccComponent) {
     this.duccComponent = duccComponent;
@@ -97,23 +97,30 @@ 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
+       // which must specify: <registry-location>?<registry-entry>
        public void initialize(String jdUrl) throws Exception {
 
          // If not specified get the url from the registry
          if (jdUrl == null || jdUrl.isEmpty()) {
-           config = ConfigurationProperties.getProperties();    // Holds 
registry details AND service.type
-           String registryLocn = config.getProperty(ServiceDriver.Registry);
-           taskServerName = config.getProperty(ServiceDriver.Application);
-           if (registryLocn != null && taskServerName != null) {
-             registry = ServiceRegistry_impl.getInstance();
-             if (!registry.initialize(registryLocn)) {
-               registry = null;
+           String registryAddr = null;
+           String registryUri = System.getProperty(REGISTERED_DRIVER);
+           if (registryUri != null) {
+             String[] parts = registryUri.split("\\?", 2);
+             if (parts.length == 2) {
+               registryAddr = parts[0];
+               taskServerName = parts[1];
              }
-           } 
-           if (registry == null) {
-             throw new RuntimeException("Failed to connect to registry at 
"+registryLocn+" to locate server "+taskServerName);
            }
-           logger.info("initialize", null, "Using registry at", registryLocn, 
"to locate server", taskServerName);
+           if (registryAddr == null) {
+             throw new RuntimeException("Missing or invalid system property " 
+ REGISTERED_DRIVER + ": " + registryUri);
+      }
+           registry = ServiceRegistry_impl.getInstance();
+           if (!registry.initialize(registryAddr)) {
+             throw new RuntimeException("Failed to connect to registry at 
"+registryAddr+" to locate server "+taskServerName);
+           }
+           logger.info("initialize", null, "Using registry at", registryAddr, 
"to locate server", taskServerName);
            jdUrl = getJdUrl();
          }
          this.jdUrl = jdUrl;
@@ -205,9 +212,9 @@ public class DuccHttpClient {
                return nn;
        }
        private String getProcessName() {
-         String pn = 
System.getenv(IDuccUser.EnvironmentVariable.DUCC_ID_PROCESS.value());
-         if (config != null && config.containsKey("service.type")) {
-           pn = config.getProperty("service.type");  // Indicates the type of 
service request
+         String pn = System.getProperty(SERVICE_TYPE);  // Indicates the type 
of service request
+         if (pn == null) {   // JP's use the ID set by the agent
+           pn = 
System.getenv(IDuccUser.EnvironmentVariable.DUCC_ID_PROCESS.value());
          }
                return pn;
        }


Reply via email to