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")); + } + } - } + } } }