Author: cwiklik
Date: Fri Jan 11 15:49:00 2019
New Revision: 1851066

URL: http://svn.apache.org/viewvc?rev=1851066&view=rev
Log:
UIMA-5954 Modified to generate DD if a given DD does not exist

Modified:
    
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/ServiceConfiguration.java
    
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java
    
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/service/wrapper/JUnitServiceWrapperTestCase.java
    
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/test/ae/NoOpAE.java

Modified: 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/ServiceConfiguration.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/ServiceConfiguration.java?rev=1851066&r1=1851065&r2=1851066&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/ServiceConfiguration.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/ServiceConfiguration.java
 Fri Jan 11 15:49:00 2019
@@ -19,6 +19,8 @@
 
 package org.apache.uima.ducc.ps.service;
 
+import java.util.List;
+
 import org.apache.uima.ducc.ps.service.errors.ServiceInitializationException;
 
 public class ServiceConfiguration {
@@ -249,12 +251,48 @@ public class ServiceConfiguration {
                                
Integer.valueOf(System.getProperty("ducc.process.thread.sleep.time"));
            }
                jpType = System.getProperty("ducc.deploy.JpType");
+               if ( System.getProperty("ducc.deploy.JpAeDescriptor") != null ) 
{
+                       
setAeDescriptor(System.getProperty("ducc.deploy.JpAeDescriptor"));
+               }
+               if ( System.getProperty("ducc.deploy.JobDirectory") != null ) {
+                       
setJobDirectory(System.getProperty("ducc.deploy.JobDirectory") );
+               }
+               if ( System.getProperty("ducc.deploy.JpFlowController") != null 
) {
+                       
setJpFlowController(System.getProperty("ducc.deploy.JpFlowController"));
+               }       
+           if ( System.getProperty("ducc.deploy.JpCmDescriptor") != null ) {
+                        
setCmDescriptor(System.getProperty("ducc.deploy.JpCmDescriptor"));
+               }
+               if ( System.getProperty("ducc.deploy.JpCcDescriptor") != null ) 
{
+                         
setCcDescriptor(System.getProperty("ducc.deploy.JpCcDescriptor"));
+        }
+               if ( System.getProperty("ducc.deploy.JpCmOverrides") != null ) {
+                       
setCmOverrides(System.getProperty("ducc.deploy.JpCmOverrides"));
+               }
+               if ( System.getProperty("ducc.deploy.JpAeOverrides") != null ) {
+                       
setAeOverrides(System.getProperty("ducc.deploy.JpAeOverrides"));
+               }
+               if ( System.getProperty("ducc.deploy.JpCcOverrides") != null ) {
+                       
setCcOverrides(System.getProperty("ducc.deploy.JpCcOverrides"));
+               }
+               if ( System.getProperty("ducc.job.id") != null ) {
+                       setJobId(System.getProperty("ducc.job.id"));
+               }
+/*
+               List<String> cmOverrides = 
getPropertyListString("ducc.deploy.JpCmOverrides");
+                 List<String> aeOverrides = 
getPropertyListString("ducc.deploy.JpAeOverrides"); 
+                 List<String> ccOverrides = 
getPropertyListString("ducc.deploy.JpCcOverrides");
+*/             
+               
                serviceJmxConnectURL = System.getProperty("ducc.jmx.port");
                customRegistryClass = 
System.getProperty("ducc.deploy.registry.class");
                customProcessorClass = 
System.getProperty("ducc.deploy.custom.processor.class");
                processType = 
System.getProperty("ducc.deploy.components");//=job-process
                duccHome = System.getenv("DUCC_HOME");
-               jobId = System.getenv("DUCC_JOBID");
+               if ( getJobId() == null ) {
+                       setJobId(System.getenv("DUCC_JOBID"));
+               }
+               
                duccProcessId = System.getenv("DUCC_PROCESSID");
                duccProcessUniqueId = System.getenv("DUCC_PROCESS_UNIQUEID");
                monitorPort = System.getenv("DUCC_STATE_UPDATE_PORT");

Modified: 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java?rev=1851066&r1=1851065&r2=1851066&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/main/java/org/apache/uima/ducc/ps/service/main/ServiceWrapper.java
 Fri Jan 11 15:49:00 2019
@@ -19,6 +19,7 @@
 package org.apache.uima.ducc.ps.service.main;
 
 
+import java.io.File;
 import java.lang.reflect.Constructor;
 import java.util.Objects;
 import java.util.concurrent.ExecutionException;
@@ -131,7 +132,12 @@ public class ServiceWrapper implements A
         * @return
         */
        private boolean isPiecesParts(ServiceConfiguration serviceConfiguration 
) {
-               return ( "uima".equals(serviceConfiguration.getJpType()) && 
serviceConfiguration.getAnalysisEngineDescriptorPath() == null);
+               return ( "uima".equals(serviceConfiguration.getJpType()) );
+       }
+       private boolean generateDD(ServiceConfiguration serviceConfiguration) {
+               return serviceConfiguration.getAnalysisEngineDescriptorPath() 
== null || 
+                               ( 
serviceConfiguration.getAnalysisEngineDescriptorPath().endsWith(".xml") &&
+                                 !new 
File(serviceConfiguration.getAnalysisEngineDescriptorPath()).canRead());
        }
        public void initialize(String[] args ) throws 
ServiceInitializationException, ServiceException {
                // collect -Ds and env vars
@@ -146,14 +152,19 @@ public class ServiceWrapper implements A
                logger.log(Level.INFO, "Deploying service with JMX enabled - 
clients can connect using jmx URL:"+serviceJmxConnectString);
                
serviceConfiguration.setServiceJmxConnectURL(serviceJmxConnectString);
                IServiceProcessor processor;
-               if ( isPiecesParts(serviceConfiguration)) {
-                       DeployableGeneration dg = new 
DeployableGeneration(serviceConfiguration);
-                       try {
-                               analysisEngineDescriptorPath = 
dg.generate(true);
-                               logger.log(Level.INFO, "Deploying UIMA based 
service using generated (pieces-parts) AE descriptor 
"+analysisEngineDescriptorPath);
-                       } catch( Exception e) {
-                               throw new ServiceException("Unable to generate 
AE descriptor from parts");
+               if ( isPiecesParts(serviceConfiguration) ) {
+                       if ( generateDD(serviceConfiguration)) {
+                               DeployableGeneration dg = new 
DeployableGeneration(serviceConfiguration);
+                               try {
+                                       analysisEngineDescriptorPath = 
dg.generate(true);
+                                       logger.log(Level.INFO, "Deploying UIMA 
based service using generated (pieces-parts) AE descriptor 
"+analysisEngineDescriptorPath);
+                               } catch( Exception e) {
+                                       throw new ServiceException("Unable to 
generate AE descriptor from parts");
+                               }
+                       } else {
+                               analysisEngineDescriptorPath = 
serviceConfiguration.getAnalysisEngineDescriptorPath();
                        }
+
                } else {
                        analysisEngineDescriptorPath = 
serviceConfiguration.getAnalysisEngineDescriptorPath();
                        if ( analysisEngineDescriptorPath != null ) {

Modified: 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/service/wrapper/JUnitServiceWrapperTestCase.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/service/wrapper/JUnitServiceWrapperTestCase.java?rev=1851066&r1=1851065&r2=1851066&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/service/wrapper/JUnitServiceWrapperTestCase.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/service/wrapper/JUnitServiceWrapperTestCase.java
 Fri Jan 11 15:49:00 2019
@@ -129,7 +129,50 @@ public class JUnitServiceWrapperTestCase
                        super.stopJetty();
                }
        }
+       @Test
+       public void testPullServiceWrapperDDGenerator() throws Exception {
+               System.out.println("-------------------------- 
testPullServiceWrapperDDGenerator ----------------------");;
 
+               //int scaleout = 2;
+               StateMonitor monitor = new StateMonitor();
+               monitor.start();
+               System.out.println("........... Monitor 
Port:"+System.getProperty("DUCC_STATE_UPDATE_PORT"));
+               super.startJetty(false);  // don't block
+               String analysisEngineDescriptor = "TestAAE.xml";
+               System.setProperty("ducc.deploy.JpType", "uima");
+
+               String tasURL = "http://localhost:"+super.getPort()+"/test";
+               try {
+                       System.setProperty("ducc.deploy.JdURL", tasURL);
+                       System.setProperty("ducc.deploy.JpThreadCount","4");
+                       System.setProperty("ducc.deploy.service.type", 
"NotesService");
+                       System.setProperty("ducc.deploy.JpType", "uima");
+                       
System.setProperty("ducc.deploy.JpAeDescriptor","NoOpAE");
+                       
System.setProperty("ducc.deploy.JobDirectory","/home/cwiklik/ducc/logs");
+                       
System.setProperty("ducc.deploy.JpFlowController","org.apache.uima.flow.FixedFlowController");
+                       
System.setProperty("ducc.process.log.dir","/home/cwiklik/ducc/logs/2/");
+                       System.setProperty("ducc.job.id","2");
+                       ServiceWrapper service = new ServiceWrapper();
+
+                       Timer fTimer = new Timer("testPullService Timer");
+                       // after 5secs stop the pull service
+                       fTimer.schedule(new MyTimerTask(service, fTimer), 
20000);
+                               
+                       service.initialize(new String[] 
{analysisEngineDescriptor});
+
+                       service.start();
+
+
+               } catch (ServiceInitializationException e) {
+                       throw e;
+               } catch (Exception e) {
+                       throw e;
+               } finally {
+                       monitor.stop();
+                       super.stopJetty();
+
+               }
+       }
        class MyTimerTask extends TimerTask {
                final ServiceWrapper service;
                final Timer fTimer;

Modified: 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/test/ae/NoOpAE.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/test/ae/NoOpAE.java?rev=1851066&r1=1851065&r2=1851066&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/test/ae/NoOpAE.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-pullservice/src/test/java/org/apache/uima/ducc/ps/test/ae/NoOpAE.java
 Fri Jan 11 15:49:00 2019
@@ -117,12 +117,15 @@ public class NoOpAE extends CasAnnotator
                String[] errors = errorSequence.split(",");
                synchronized(NoOpAE.class) {
                        for( String inx : errors) {
-                               long errorSeq = Long.parseLong(inx.trim());
-                               if ( errorSeq == val ) {
-                                       System.out.println(">>>> Error: 
errorSeq:"+errorSeq+" processCount:"+val);
-                               throw new AnalysisEngineProcessException(new 
RuntimeException("Simulated Exception"));
+                               if ( inx != null && inx.trim().length() > 0 ) {
+                                       long errorSeq = 
Long.parseLong(inx.trim());
+                                       if ( errorSeq == val ) {
+                                               System.out.println(">>>> Error: 
errorSeq:"+errorSeq+" processCount:"+val);
+                                       throw new 
AnalysisEngineProcessException(new RuntimeException("Simulated Exception"));
+                                       }
+                                       
                                }
-                       }
+               }
                }
     }
 


Reply via email to