Author: challngr
Date: Tue Jun 25 20:45:12 2013
New Revision: 1496633

URL: http://svn.apache.org/r1496633
Log:
UIMA-3011 Refactor default UIMA-AS pinger to CLI, and add 
service_ping_arguments support.

Added:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java
      - copied, changed from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ServiceStatistics.java
      - copied, changed from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
      - copied, changed from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/UimaAsPing.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
      - copied, changed from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/UimaAsServiceMonitor.java
Removed:
    
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/UimaAsServiceMonitor.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/UimaAsPing.java
Modified:
    uima/sandbox/uima-ducc/trunk/javadoc.xml
    uima/sandbox/uima-ducc/trunk/pom.xml
    uima/sandbox/uima-ducc/trunk/uima-ducc-examples/pom.xml
    
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/test/service/CustomPing.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/IServiceMeta.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServicePingMain.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/SmConstants.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java
    
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/ServiceDescription.java

Modified: uima/sandbox/uima-ducc/trunk/javadoc.xml
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/javadoc.xml?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/javadoc.xml (original)
+++ uima/sandbox/uima-ducc/trunk/javadoc.xml Tue Jun 25 20:45:12 2013
@@ -48,13 +48,13 @@
           </fileset>
 
           <fileset dir="uima-ducc-common/src/main/java">
-            <include name="**/AServicePing.java" />
-            <include name="**/ServiceStatistics.java" />
+            <include name="**/IServiceStatistics.java" />
             <include name="**/ADuccId.java" />
             <include name="**/IDuccId.java" />
           </fileset>
 
           <fileset dir="uima-ducc-cli/src/main/java">
+            <include name="**/AServicePing.java" />
             <include name="**/DuccJobSubmit.java" />
             <include name="**/DuccJobCancel.java" />
             <include name="**/DuccReservationCancel.java" />

Modified: uima/sandbox/uima-ducc/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/pom.xml?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/pom.xml (original)
+++ uima/sandbox/uima-ducc/trunk/pom.xml Tue Jun 25 20:45:12 2013
@@ -160,21 +160,21 @@
                                                        
<subpackages>org.apache.uima</subpackages>
 
                                                        <excludePackageNames>
-                              
org.apache.uima.ducc.cli.*:org.apache.uima.ducc.common.*:org.apache.uima.ducc.transport.*
+                              
org.apache.uima.ducc.cli.*:org.apache.uima.ducc.api.*:org.apache.uima.ducc.common.*:org.apache.uima.ducc.transport.*
                             </excludePackageNames>
 
                                                        <!-- add a few classes 
in impl packages that are directly used by 
                                                                user code -->
                                                        <additionalparam>
 
-                                                               
${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java
-                                                               
${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java
+                                                               
${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/IServiceStatistics.java
                                                                
${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/id/ADuccId.java
                                                                
${basedir}/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/id/IDuccId.java
 
                                                                
${basedir}/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceReply.java
                                                                
${basedir}/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java
 
+                                                               
${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java
                                                                
${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobCancel.java
                                                                
${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccJobSubmit.java
                                                                
${basedir}/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccManagedReservationCancel.java

Copied: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java
 (from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java)
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java?p2=uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java&p1=uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java&r1=1496118&r2=1496633&rev=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/AServicePing.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/AServicePing.java
 Tue Jun 25 20:45:12 2013
@@ -16,16 +16,25 @@
  * specific language governing permissions and limitations
  * under the License.
 */
-package org.apache.uima.ducc.common;
+package org.apache.uima.ducc.cli;
+
+import org.apache.uima.ducc.common.IServiceStatistics;
+
+/**
+ * Abstraction for service pinger.
+ */
 
 public abstract class AServicePing
 {
     /**
      * Called by the ping driver, to pass in useful things the pinger may want.
+     * @param arguments This is passed in from the service specification's
+     *                  service_ping_arguments string.
+     *
      * @param endpoint This is the name of the service endpoint, as passed in
      *                 at service registration.
      */
-    public abstract void init(String endpoint)  throws Exception;
+    public abstract void init(String arguments, String endpoint)  throws 
Exception;
 
     /**
      * Stop is called by the ping wrapper when it is being killed.  
Implementors may optionally
@@ -38,6 +47,6 @@ public abstract class AServicePing
      * @return This object contains the informaton the service manager and web 
server require
      *     for correct management and display of the service.
      */
-    public abstract ServiceStatistics getStatistics();
+    public abstract IServiceStatistics getStatistics();
     
 }

Copied: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ServiceStatistics.java
 (from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java)
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ServiceStatistics.java?p2=uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ServiceStatistics.java&p1=uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java&r1=1496118&r2=1496633&rev=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ServiceStatistics.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/ServiceStatistics.java
 Tue Jun 25 20:45:12 2013
@@ -1,13 +1,15 @@
-package org.apache.uima.ducc.common;
+package org.apache.uima.ducc.cli;
+
+import org.apache.uima.ducc.common.IServiceStatistics;
+
 
-import java.io.Serializable;
 
 /**
  * The ServiceStatics class is used to return service health, availability, 
and monitoring statistics
  * to the Service Manager.
  */
 public class  ServiceStatistics
-    implements Serializable
+    implements IServiceStatistics
 {
        private static final long serialVersionUID = 1L;
        private boolean alive = false;

Copied: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
 (from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/UimaAsPing.java)
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java?p2=uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java&p1=uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/UimaAsPing.java&r1=1496118&r2=1496633&rev=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/UimaAsPing.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsPing.java
 Tue Jun 25 20:45:12 2013
@@ -1,5 +1,8 @@
-package org.apache.uima.ducc.sm;
+package org.apache.uima.ducc.cli;
 
+import java.io.IOException;
+import java.io.StringReader;
+import java.io.StringWriter;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.HashMap;
@@ -8,19 +11,18 @@ import java.util.Map;
 import org.apache.uima.UIMAFramework;
 import org.apache.uima.aae.client.UimaAsynchronousEngine;
 import org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngine_impl;
-import org.apache.uima.ducc.common.AServicePing;
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.TcpStreamHandler;
-import org.apache.uima.ducc.common.UimaAsServiceMonitor;
 import org.apache.uima.ducc.common.utils.DuccLogger;
-import org.apache.uima.ducc.common.utils.SystemPropertyResolver;
+import org.apache.uima.ducc.common.utils.DuccProperties;
 import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Level;
 
+// 'q_thresh=nn,window=mm,broker_jmx=1100,meta_timeout=10000'
 public class UimaAsPing
     extends AServicePing
 {
-    static final int QUEUE_SIZE_WINDOW = 3;
+    int window = 3;
     int queue_threshold = 0;
 
     String ep;
@@ -35,20 +37,20 @@ public class UimaAsPing
     UimaAsServiceMonitor monitor;
     DuccLogger logger = null;
 
-    int[] queueSizeWindow = new int[QUEUE_SIZE_WINDOW];
+    int[] queueSizeWindow;
     int queueCursor = 0;
 
-    UimaAsPing()
+    public UimaAsPing()
     {
         this.logger = null;
     }
 
-    UimaAsPing(DuccLogger logger)
+    public UimaAsPing(DuccLogger logger)
     {
         this.logger = logger;
     }
 
-    public void init(String ep)
+    public void init(String args, String ep)
         throws Exception
     {
         this.ep = ep;
@@ -72,21 +74,40 @@ public class UimaAsPing
         broker_host = url.getHost();
         // not needed here fyi broker_port = url.getPort();
 
-        
-        String to = System.getProperty("ducc.sm.meta.ping.timeout");
-        meta_timeout = Integer.parseInt(to);
-
-        
-        broker_jmx_port = 
SystemPropertyResolver.getIntProperty("ducc.sm.meta.jmx.port", 1099);
-        this.monitor = new UimaAsServiceMonitor(endpoint, broker_host, 
broker_jmx_port);
-
-        queue_threshold = 
SystemPropertyResolver.getIntProperty("ducc.sm.max.queue.depth", 500);
-
+                
         
//UIMAFramework.getLogger(BaseUIMAAsynchronousEngineCommon_impl.class).setLevel(Level.OFF);
         
//UIMAFramework.getLogger(BaseUIMAAsynchronousEngine_impl.class).setLevel(Level.OFF);
         // there are a couple junky messages that slip by the above 
configurations.  turn the whole danged thing off.
         UIMAFramework.getLogger().setLevel(Level.OFF);
 
+        if ( args == null ) {
+            meta_timeout = 5000;
+            broker_jmx_port = 1099;
+            queue_threshold = 0;
+            window = 3;
+        } else {
+            // 'q_thresh=nn,window=mm,broker_jmx_port=1100,meta_timeout=10000'
+            // turn the argument string into properties
+            String[] as = args.split(",");
+            StringWriter sw = new StringWriter();
+            for ( String s : as ) sw.write(s + "\n");
+            StringReader sr = new StringReader(sw.toString());            
+            DuccProperties props = new DuccProperties();
+            try {
+                props.load(sr);
+            } catch (IOException e) {
+                // TODO Auto-generated catch block
+                e.printStackTrace();
+            }
+            meta_timeout = props.getIntProperty("meta_timeout", 5000);
+            broker_jmx_port = props.getIntProperty("broker_jmx_port", 1099);
+            queue_threshold = props.getIntProperty("queue_threshold", 0);
+            window = props.getIntProperty("window", 3);
+        }
+        queueSizeWindow = new int[window];
+        logger.debug("<ctr>", null, "INIT: meta_timeout", meta_timeout, 
"broker_jmx_port", broker_jmx_port, "queue_threshold", queue_threshold, 
"window", window);
+
+        this.monitor = new UimaAsServiceMonitor(endpoint, broker_host, 
broker_jmx_port);
     }
 
     public void stop()
@@ -103,7 +124,7 @@ public class UimaAsPing
         }
     }
 
-    void evaluatePing(UimaAsServiceMonitor mon, ServiceStatistics stats)
+    void evaluatePing(UimaAsServiceMonitor mon, IServiceStatistics stats)
     {
        String methodName = "evaluatePing";
         try {
@@ -112,14 +133,14 @@ public class UimaAsPing
             if ( queue_threshold > 0 ) {         // only do this if a 
threshold is set
                 // if the last 'n' q depths are > threshold, mark the service 
unhealthy
                 // primitive, but maybe an OK first guess
-                queueSizeWindow[queueCursor++ % QUEUE_SIZE_WINDOW] = 
(int)monitor.getQueueSize();
+                queueSizeWindow[queueCursor++ % window] = 
(int)monitor.getQueueSize();
                 int sum = 0;
-                for ( int i = 0; i < QUEUE_SIZE_WINDOW; i++ ) {
+                for ( int i = 0; i < window; i++ ) {
                     sum += queueSizeWindow[i];
                 }
-                sum = sum / QUEUE_SIZE_WINDOW;
+                sum = sum / window;
                 stats.setHealthy( sum < queue_threshold ? true : false);
-                // logger.debug(methodName, null, "EVAL: Q depth", 
monitor.getQueueSize(), "window", sum, "health", stats.isHealthy());
+                logger.debug(methodName, null, "EVAL: Q depth", 
monitor.getQueueSize(), "window", sum, "health", stats.isHealthy());
             } else {
                 stats.setHealthy(true);
             }
@@ -133,10 +154,10 @@ public class UimaAsPing
         }
     }
 
-    public ServiceStatistics getStatistics()
+    public IServiceStatistics getStatistics()
     {
         String methodName = "getStatistics";
-        ServiceStatistics statistics = new ServiceStatistics(false, false, 
"<NA>");
+        IServiceStatistics statistics = new ServiceStatistics(false, false, 
"<NA>");
 
         // Instantiate Uima AS Client
         BaseUIMAAsynchronousEngine_impl uimaAsEngine = new 
BaseUIMAAsynchronousEngine_impl();

Copied: 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
 (from r1496118, 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/UimaAsServiceMonitor.java)
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java?p2=uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java&p1=uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/UimaAsServiceMonitor.java&r1=1496118&r2=1496633&rev=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/UimaAsServiceMonitor.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/UimaAsServiceMonitor.java
 Tue Jun 25 20:45:12 2013
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
 */
-package org.apache.uima.ducc.common;
+package org.apache.uima.ducc.cli;
 
 import java.io.IOException;
 import java.text.DecimalFormat;
@@ -31,9 +31,9 @@ import javax.management.remote.JMXServic
 
 import org.apache.activemq.broker.jmx.BrokerViewMBean;
 import org.apache.activemq.broker.jmx.QueueViewMBean;
+import org.apache.uima.ducc.common.IServiceStatistics;
 
 public class UimaAsServiceMonitor
-    extends AServicePing
 {
 
     private String qname;
@@ -42,7 +42,7 @@ public class UimaAsServiceMonitor
     private JMXConnector jmxc;
     BrokerViewMBean brokerMBean;
     private QueueViewMBean monitoredQueue;
-    private ServiceStatistics qstats;
+    private IServiceStatistics qstats;
 
     double enqueueTime ; 
     long consumerCount ;
@@ -160,7 +160,7 @@ public class UimaAsServiceMonitor
                }
     }
 
-    public ServiceStatistics getStatistics()
+    public IServiceStatistics getStatistics()
     {
         try {
             collect();
@@ -243,7 +243,7 @@ public class UimaAsServiceMonitor
 
 
         while ( true ) {
-            ServiceStatistics qs = null;
+            IServiceStatistics qs = null;
             try {
                 qs = m.getStatistics();
             } catch (Throwable t) {

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-examples/pom.xml
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-examples/pom.xml?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-examples/pom.xml (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-examples/pom.xml Tue Jun 25 20:45:12 
2013
@@ -38,6 +38,12 @@
                        <version>${ducc.version}</version>
                </dependency>
 
+        <dependency>
+                       <groupId>org.apache.uima</groupId>
+                       <artifactId>uima-ducc-cli</artifactId>
+                       <version>${ducc.version}</version>
+               </dependency>
+
   </dependencies>  
 
   <!-- build>

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/test/service/CustomPing.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/test/service/CustomPing.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/test/service/CustomPing.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-examples/src/main/java/org/apache/uima/ducc/test/service/CustomPing.java
 Tue Jun 25 20:45:12 2013
@@ -4,8 +4,8 @@ import java.io.DataInputStream;
 import java.io.InputStream;
 import java.net.Socket;
 
-import org.apache.uima.ducc.common.AServicePing;
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.cli.AServicePing;
+import org.apache.uima.ducc.cli.ServiceStatistics;
 
 /**
  * This is designed for the simple sleeper "service" that does nothing other 
than
@@ -18,7 +18,7 @@ public class CustomPing
 {
     String host;
     String port;
-    public void init(String endpoint)
+    public void init(String arguments, String endpoint)
        throws Exception
     {
         String[] parts = endpoint.split(":");
@@ -71,7 +71,7 @@ public class CustomPing
     {
         try {
                        CustomPing cp = new CustomPing();
-                       cp.init(args[0]);
+                       cp.init(null, args[0]);
                        for ( int i = 0; i < 10; i++ ) {
                            ServiceStatistics stats = cp.getStatistics();
                            System.out.println(stats);

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/IServiceMeta.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/IServiceMeta.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/IServiceMeta.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/IServiceMeta.java
 Tue Jun 25 20:45:12 2013
@@ -18,13 +18,14 @@
 */
 package org.apache.uima.ducc.sm;
 
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.common.IServiceStatistics;
+
 
 
 interface IServiceMeta
     extends Runnable
 {
-    ServiceStatistics getServiceStatistics();
+    IServiceStatistics getServiceStatistics();
     public void run();
     public void stop();
 }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/PingDriver.java
 Tue Jun 25 20:45:12 2013
@@ -28,8 +28,9 @@ import java.net.ServerSocket;
 import java.net.Socket;
 import java.util.ArrayList;
 
-import org.apache.uima.ducc.common.AServicePing;
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.cli.AServicePing;
+import org.apache.uima.ducc.cli.UimaAsPing;
+import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccProperties;
 
@@ -62,6 +63,7 @@ class PingDriver
     String[] jvm_args;
     String endpoint;
     String ping_class;
+    String ping_arguments;
     String classpath;
     boolean ping_ok;
 
@@ -85,7 +87,7 @@ class PingDriver
     boolean internal_ping = true;    // if true, use default UIMA-AS pinger in 
thread inside SM propert
     AServicePing internal_pinger = null; // pinger used if internal_ping is 
true
 
-    ServiceStatistics service_statistics = null;
+    IServiceStatistics service_statistics = null;
 
     String user;
     String working_directory;
@@ -105,6 +107,7 @@ class PingDriver
         this.user              = meta_props.getStringProperty("user");
         String jvm_args_str    = 
job_props.getStringProperty("service_ping_jvm_args", "");
         this.ping_class        = 
job_props.getStringProperty("service_ping_class", null);
+        this.ping_arguments    = 
job_props.getStringProperty("service_ping_arguments", null);
         
         if ( (ping_class == null) || 
ping_class.equals(UimaAsPing.class.getName()) ) {
             internal_ping = true;
@@ -146,7 +149,7 @@ class PingDriver
         this.test_mode = true;
     }
 
-    public ServiceStatistics getServiceStatistics()
+    public IServiceStatistics getServiceStatistics()
     {
         return service_statistics;
     }
@@ -175,7 +178,7 @@ class PingDriver
 
     }
 
-    void handleStatistics(ServiceStatistics stats)
+    void handleStatistics(IServiceStatistics stats)
     {
         String methodName = "handleStatistics";
 
@@ -209,7 +212,7 @@ class PingDriver
        String methodName = "runAsThread";
         internal_pinger = new UimaAsPing(logger);
         try {
-            internal_pinger.init(endpoint);
+            internal_pinger.init(ping_arguments, endpoint);
         } catch ( Throwable t ) {
             logger.warn(methodName, sset.getId(), t);
             sset.pingExited();
@@ -274,6 +277,11 @@ class PingDriver
         arglist.add("--endpoint");
         arglist.add(endpoint);
         arglist.add("--port");
+        if( ping_arguments != null ) {
+            arglist.add("--arguments");
+            arglist.add(ping_arguments);
+        }
+
         arglist.add(Integer.toString(port));
         
         int i = 0;
@@ -404,7 +412,7 @@ class PingDriver
                     }
                     
                     // Try to read the response
-                    handleStatistics((ServiceStatistics) ois.readObject());
+                    handleStatistics((IServiceStatistics) ois.readObject());
 
                     // Wait a bit for the next one
                     try {

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceManagerComponent.java
 Tue Jun 25 20:45:12 2013
@@ -27,6 +27,7 @@ import java.util.Properties;
 import java.util.UUID;
 
 import org.apache.camel.CamelContext;
+import org.apache.uima.ducc.cli.UimaAsPing;
 import org.apache.uima.ducc.common.boot.DuccDaemonRuntimeProperties;
 import org.apache.uima.ducc.common.boot.DuccDaemonRuntimeProperties.DaemonName;
 import org.apache.uima.ducc.common.component.AbstractDuccComponent;

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServicePingMain.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServicePingMain.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServicePingMain.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServicePingMain.java
 Tue Jun 25 20:45:12 2013
@@ -31,8 +31,9 @@ import org.apache.commons.cli.OptionBuil
 import org.apache.commons.cli.Options;
 import org.apache.commons.cli.ParseException;
 import org.apache.commons.cli.PosixParser;
-import org.apache.uima.ducc.common.AServicePing;
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.cli.AServicePing;
+import org.apache.uima.ducc.cli.ServiceStatistics;
+import org.apache.uima.ducc.common.IServiceStatistics;
 
 
 /**
@@ -90,6 +91,14 @@ public class ServicePingMain
                           .create         ()
                           );
 
+               options.addOption(OptionBuilder
+                          .withLongOpt    (ServicePing.Port.decode())
+                          .withDescription(ServicePing.Port.description())
+                          .withArgName    (ServicePing.Port.argname())
+                          .hasArg         (true)
+                          .create         ()
+                          );
+
     }
 
     static void appendStackTrace(StringBuffer s, Throwable t)
@@ -126,7 +135,7 @@ public class ServicePingMain
     //
     // resolve the customMeta string inta a class if we can
     //
-    AServicePing resolve(String cl, String ep)
+    AServicePing resolve(String cl, String args, String ep)
     {
        print("ServicePingMain.resolve:", cl, "ep", ep);
        AServicePing pinger = null;
@@ -134,7 +143,7 @@ public class ServicePingMain
                        @SuppressWarnings("rawtypes")
                        Class cls = Class.forName(cl);
                        pinger = (AServicePing) cls.newInstance();
-                       pinger.init(ep);
+                       pinger.init(args, ep);
                } catch (Exception e) {
             //print(e);         // To the logs
             e.printStackTrace();
@@ -168,7 +177,7 @@ public class ServicePingMain
 
         CommandLineParser parser = new PosixParser();
         CommandLine commandLine = null;
-        ServiceStatistics default_statistics = new ServiceStatistics(false, 
false, "<N/A>");
+        IServiceStatistics default_statistics = new ServiceStatistics(false, 
false, "<N/A>");
 
                try {
                        commandLine = parser.parse(options, args);
@@ -177,6 +186,7 @@ public class ServicePingMain
             return;
                }
 
+        String arguments = 
commandLine.getOptionValue(ServicePing.Arguments.decode());
         String pingClass = 
commandLine.getOptionValue(ServicePing.Class.decode());
         String endpoint  = 
commandLine.getOptionValue(ServicePing.Endpoint.decode());
         String port      = 
commandLine.getOptionValue(ServicePing.Port.decode());
@@ -214,7 +224,7 @@ public class ServicePingMain
                        return;
                }        
 
-        AServicePing custom = resolve(pingClass, endpoint);
+        AServicePing custom = resolve(pingClass, arguments, endpoint);
         if ( custom == null ) {
             print("bad_pinger:", pingClass, endpoint);
             return;
@@ -241,7 +251,7 @@ public class ServicePingMain
 
             try {
                                if ( cmd[0] == 'P' ) {
-                    ServiceStatistics ss = custom.getStatistics();
+                    IServiceStatistics ss = custom.getStatistics();
                     if ( ss == null ) {
                         ss = default_statistics;
                     }

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/ServiceSet.java
 Tue Jun 25 20:45:12 2013
@@ -34,13 +34,12 @@ import java.util.Timer;
 import java.util.TimerTask;
 
 import org.apache.uima.UIMAFramework;
-import org.apache.uima.aae.client.UimaAsynchronousEngine;
-import org.apache.uima.adapter.jms.client.BaseUIMAAsynchronousEngine_impl;
 import org.apache.uima.ducc.cli.IServiceApi.RegistrationOption;
 import org.apache.uima.ducc.cli.IUiOptions.UiOption;
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.cli.UimaAsPing;
+import org.apache.uima.ducc.cli.UimaAsServiceMonitor;
+import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.TcpStreamHandler;
-import org.apache.uima.ducc.common.UimaAsServiceMonitor;
 import org.apache.uima.ducc.common.utils.DuccLogger;
 import org.apache.uima.ducc.common.utils.DuccProperties;
 import org.apache.uima.ducc.common.utils.id.ADuccId;
@@ -48,7 +47,6 @@ import org.apache.uima.ducc.common.utils
 import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
 import org.apache.uima.ducc.transport.event.sm.IServiceDescription;
 import org.apache.uima.ducc.transport.event.sm.ServiceDescription;
-import org.apache.uima.resource.ResourceInitializationException;
 import org.apache.uima.util.Level;
 
 
@@ -617,7 +615,7 @@ public class ServiceSet
         meta_props.put("service-statistics", "N/A");
         
         if ( serviceMeta != null ) {
-            ServiceStatistics ss = serviceMeta.getServiceStatistics();
+            IServiceStatistics ss = serviceMeta.getServiceStatistics();
             if ( ss != null ) {
                 meta_props.put("service-alive",      "" + ss.isAlive());
                 meta_props.put("service-healthy",    "" + ss.isHealthy());
@@ -1196,32 +1194,32 @@ public class ServiceSet
         }
     }
 
-    boolean ping()
-    {
-       //String methodName = "ping";
-        boolean answer = true;
-
-        // Instantiate Uima AS Client
-        BaseUIMAAsynchronousEngine_impl uimaAsEngine = new 
BaseUIMAAsynchronousEngine_impl();
-        Map<String, Object> appCtx = new HashMap<String, Object>();
-        appCtx.put(UimaAsynchronousEngine.ServerUri, broker);
-        appCtx.put(UimaAsynchronousEngine.Endpoint, endpoint);
-        appCtx.put(UimaAsynchronousEngine.GetMetaTimeout, 
ServiceManagerComponent.meta_ping_timeout);  // 500 ms should be enough to get 
GetMeta reply
-
-        try {
-            // this sends GetMeta request and blocks waiting for a reply
-            uimaAsEngine.initialize(appCtx);
-            // logger.info(methodName, null, "Dependent Service Available:", 
getKey());
-        } catch( ResourceInitializationException e) {
-            // either broker is down or service not available
-            // logger.error(methodName, null, "Remote service unavailable:", 
getKey());
-            answer = false;             
-        } finally {
-            uimaAsEngine.stop();
-        }
-
-        return answer;
-    }
+//    boolean ping()
+//    {
+//     //String methodName = "ping";
+//        boolean answer = true;
+//
+//        // Instantiate Uima AS Client
+//        BaseUIMAAsynchronousEngine_impl uimaAsEngine = new 
BaseUIMAAsynchronousEngine_impl();
+//        Map<String, Object> appCtx = new HashMap<String, Object>();
+//        appCtx.put(UimaAsynchronousEngine.ServerUri, broker);
+//        appCtx.put(UimaAsynchronousEngine.Endpoint, endpoint);
+//        appCtx.put(UimaAsynchronousEngine.GetMetaTimeout, 
ServiceManagerComponent.meta_ping_timeout);  // 500 ms should be enough to get 
GetMeta reply
+//
+//        try {
+//            //       this sends GetMeta request and blocks waiting for a 
reply
+//            uimaAsEngine.initialize(appCtx);
+//            // logger.info(methodName, null, "Dependent Service Available:", 
getKey());
+//        } catch( ResourceInitializationException e) {
+//            //       either broker is down or service not available
+//            // logger.error(methodName, null, "Remote service unavailable:", 
getKey());
+//            answer = false;             
+//        } finally {
+//            uimaAsEngine.stop();
+//        }
+//
+//        return answer;
+//    }
 
     /**
      * This assumes the caller has already verified that I'm a registered 
service.

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/SmConstants.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/SmConstants.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/SmConstants.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-sm/src/main/java/org/apache/uima/ducc/sm/SmConstants.java
 Tue Jun 25 20:45:12 2013
@@ -37,6 +37,12 @@ public interface SmConstants
     //
     public enum ServicePing
     {
+        Arguments { 
+            public String decode()      { return "arguments"; }
+            public String description() { return "(Optional) arg string for 
the pinger."; }
+            public String argname()     { return "string"; }
+        },            
+
         Class { 
             public String decode()      { return "class"; }
             public String description() { return "Class implementing 
AServicePing to use for the pinger."; }
@@ -68,6 +74,7 @@ public interface SmConstants
 
         public static ServicePing  encode(String value)
         {
+            if ( value.equals("arguments") )  return Arguments;
             if ( value.equals("class") )      return Class;
             if ( value.equals("endpoint") )   return Endpoint;
             if ( value.equals("port") )       return Port;

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/IServiceDescription.java
 Tue Jun 25 20:45:12 2013
@@ -21,7 +21,7 @@ package org.apache.uima.ducc.transport.e
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.utils.id.ADuccId;
 import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
 
@@ -111,9 +111,9 @@ public interface IServiceDescription
     /**
      * Internal to DUCC.
      */
-    public void setQueueStatistics(ServiceStatistics qstats);    
+    public void setQueueStatistics(IServiceStatistics qstats);    
 
-    public ServiceStatistics getQueueStatistics();
+    public IServiceStatistics getQueueStatistics();
     /**
      * Internal to DUCC.
      */
@@ -125,11 +125,11 @@ public interface IServiceDescription
      */
        public void setStopped(boolean stopped);
 
-       public ServiceStatistics getQstats();
+       public IServiceStatistics getQstats();
     /**
      * Internal to DUCC.
      */
-       public void setQstats(ServiceStatistics qstats);
+       public void setQstats(IServiceStatistics qstats);
 
        public boolean isDeregistered();
 

Modified: 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/ServiceDescription.java
URL: 
http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/ServiceDescription.java?rev=1496633&r1=1496632&r2=1496633&view=diff
==============================================================================
--- 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/ServiceDescription.java
 (original)
+++ 
uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/sm/ServiceDescription.java
 Tue Jun 25 20:45:12 2013
@@ -22,7 +22,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Map;
 
-import org.apache.uima.ducc.common.ServiceStatistics;
+import org.apache.uima.ducc.common.IServiceStatistics;
 import org.apache.uima.ducc.common.utils.id.ADuccId;
 import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
 
@@ -77,7 +77,7 @@ public class ServiceDescription
     private long linger;
     private Map<String, String> dependencies;
 
-    private ServiceStatistics qstats;
+    private IServiceStatistics qstats;
 
        public ADuccId getId() {
                return id;
@@ -164,12 +164,12 @@ public class ServiceDescription
                this.deregistered = d;
        }
        
-    public void setQueueStatistics(ServiceStatistics qstats)
+    public void setQueueStatistics(IServiceStatistics qstats)
     {
         this.qstats = qstats;
     }
 
-    public ServiceStatistics getQueueStatistics()
+    public IServiceStatistics getQueueStatistics()
     {
         return qstats;
     }
@@ -191,11 +191,11 @@ public class ServiceDescription
                this.stopped = stopped;
        }
 
-       public ServiceStatistics getQstats() {
+       public IServiceStatistics getQstats() {
                return qstats;
        }
 
-       public void setQstats(ServiceStatistics qstats) {
+       public void setQstats(IServiceStatistics qstats) {
                this.qstats = qstats;
        }
 


Reply via email to