You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2014/12/01 15:09:10 UTC

svn commit: r1642685 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-container: ./ src/main/java/org/apache/uima/ducc/container/dd/ src/main/java/org/apache/uima/ducc/container/dd/classload/ src/main/java/org/apache/uima/ducc/container/jd/ src/main/java/o...

Author: degenaro
Date: Mon Dec  1 14:09:10 2014
New Revision: 1642685

URL: http://svn.apache.org/r1642685
Log:
UIMA-4069 Redesign of JD toward the main goal of classpath separation for container (system) code.

DD generation from pieces-parts by JD, including JUnit testing.

Added:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml   (with props)
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml   (with props)
Modified:
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/pom.xml
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java
    uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/helper/Utilities.java

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/pom.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/pom.xml?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/pom.xml (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/pom.xml Mon Dec  1 14:09:10 2014
@@ -232,6 +232,8 @@
                              <target> 
                                 <copy file="${basedir}/target/uimaj/apache-uima/lib/uima-core.jar" tofile="${basedir}/target/test-classes/uimaj-core.jar"/>
                                 <copy file="${basedir}/target/uima-as/apache-uima-as-${org.apache.uima.as.version}/lib/uimaj-as-core.jar" tofile="${basedir}/target/test-classes/uimaj-as-core.jar"/>
+                                <copy file="${basedir}/target/uima-as/apache-uima-as-${org.apache.uima.as.version}/lib/xmlbeans.jar" tofile="${basedir}/target/test-classes/xmlbeans.jar"/>
+                                <copy file="${basedir}/target/uima-as/apache-uima-as-${org.apache.uima.as.version}/apache-activemq/lib/spring-core-3.0.7.RELEASE.jar" tofile="${basedir}/target/test-classes/spring-core.jar"/>
                                 <copy file="../uima-ducc-user/target/uima-ducc-user-${version}.jar" tofile="${basedir}/target/test-classes/uima-ducc-user.jar"/>
                              </target> 
                            </configuration> 

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java Mon Dec  1 14:09:10 2014
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.dd;
+
+public class DdException extends Exception {
+
+	private static final long serialVersionUID = 1L;
+	
+	public DdException(String text) {
+		super(text);
+	}
+	
+	public DdException(Exception e) {
+		super(e);
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java Mon Dec  1 14:09:10 2014
@@ -0,0 +1,120 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/package org.apache.uima.ducc.container.dd;
+
+import java.util.List;
+
+import org.apache.uima.ducc.common.utils.QuotedOptions;
+import org.apache.uima.ducc.container.common.FlagsExtendedHelper;
+import org.apache.uima.ducc.container.common.logger.IComponent;
+import org.apache.uima.ducc.container.common.logger.ILogger;
+import org.apache.uima.ducc.container.common.logger.Logger;
+import org.apache.uima.ducc.container.dd.classload.ProxyDDException;
+import org.apache.uima.ducc.container.dd.classload.ProxyDDGenerate;
+
+public class DdManager {
+
+	private static Logger logger = Logger.getLogger(DdManager.class, IComponent.Id.JD.name());
+
+	private String dd = null;
+	
+	private ProxyDDGenerate pddg = null;
+	
+	public DdManager() throws DdException {
+		initialize();
+	}
+	
+	private void initialize() throws DdException {
+		FlagsExtendedHelper feh = FlagsExtendedHelper.getInstance();
+		initialize(
+			feh.getJobDirectory(),
+			feh.getJobId(),
+			feh.getJpDdName(),
+			feh.getJpDdDescription(),
+			convert2Integer(feh.getJpDdThreadCount()),
+			feh.getJpDdBrokerURL(),
+			feh.getJpDdBrokerEndpoint(),
+			feh.getJpAeDescriptor(), 
+			convert2List(feh.getJpAeOverrides()), 
+			feh.getJpCcDescriptor(), 
+			convert2List(feh.getJpCcOverrides()),
+			feh.getJpCmDescriptor(),
+			convert2List(feh.getJpCmOverrides()),
+			feh.getJpDd());
+	}
+	
+	public void initialize(
+			String jobDirectory,
+			String jobId,
+			String ddName,
+			String ddDescription,
+			Integer ddThreadCount,
+			String ddBrokerURL,
+			String ddBrokerEndpoint,
+			String aeDescriptor, 
+			List<String> aeOverrides, 
+			String ccDescriptor, 
+			List<String> ccOverrides,
+			String cmDescriptor,
+			List<String> cmOverrides,
+			String dd) throws DdException {
+		String location = "initialize";
+		try {
+			if(dd == null) {
+				pddg = new ProxyDDGenerate();
+				String value = pddg.generate(jobDirectory, jobId, ddName, ddDescription, ddThreadCount, ddBrokerURL, ddBrokerEndpoint, cmDescriptor, cmOverrides, aeDescriptor, aeOverrides, ccDescriptor, ccOverrides);
+				setDD(value);
+			}
+			else {
+				setDD(dd);
+			}
+			
+		}
+		catch(ProxyDDException e) {
+			logger.error(location, ILogger.null_id, e);
+			throw new DdException(e);
+		}
+	}
+	
+	private List<String> convert2List(String input) {
+		List<String> list = null;
+		if(input != null) {
+			list = QuotedOptions.tokenizeList(input, true);
+		}
+		return list;
+	}
+	
+	private Integer convert2Integer(String input) {
+		Integer retVal = null;
+		if(input == null) {
+			retVal = new Integer(1);
+		}
+		else {
+			retVal = Integer.parseInt(input);
+		}
+		return retVal;
+	}
+	
+	public String getDD() {
+		return dd;
+	}
+	
+	private void setDD(String value) {
+		dd = value;
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/DdManager.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java Mon Dec  1 14:09:10 2014
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.dd.classload;
+
+public class ProxyDDException extends Exception {
+
+	private static final long serialVersionUID = 1L;
+	
+	public ProxyDDException(String text) {
+		super(text);
+	}
+	
+	public ProxyDDException(Exception e) {
+		super(e);
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDException.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java Mon Dec  1 14:09:10 2014
@@ -0,0 +1,200 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+*/
+package org.apache.uima.ducc.container.dd.classload;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.Method;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.List;
+
+import org.apache.uima.ducc.common.utils.DuccLogger;
+import org.apache.uima.ducc.container.common.FlagsExtendedHelper;
+import org.apache.uima.ducc.container.common.MessageBuffer;
+import org.apache.uima.ducc.container.common.Standardize;
+import org.apache.uima.ducc.container.common.classloader.PrivateClassLoader;
+import org.apache.uima.ducc.container.common.logger.IComponent;
+import org.apache.uima.ducc.container.common.logger.ILogger;
+import org.apache.uima.ducc.container.common.logger.Logger;
+
+public class ProxyDDGenerate {
+
+	private static Logger logger = Logger.getLogger(ProxyDDGenerate.class, IComponent.Id.JD.name());
+	
+	private URLClassLoader urlClassLoader = null;
+
+	private String[] requiredClasses = { 
+			"org.apache.uima.ducc.user.dd.iface.DDException", 
+			"org.apache.uima.ducc.user.dd.iface.DDGenerate",
+			"org.apache.uima.ducc.user.dd.iface.IDDGenerate",
+			// implied:
+			//"org.springframework.util.Assert",
+			//"org.apache.xmlbeans.XmlBeans",
+			};
+	
+	public ProxyDDGenerate() throws ProxyDDException {
+		initialize();
+	}
+	
+	private void show(String text) {
+		String location = "show";
+		logger.info(location, ILogger.null_id, text);
+		System.out.println(text);
+	}
+	
+	private void show(String name, String value) {
+		show(name+"="+value);
+	}
+	
+	private void show(String name, Integer value) {
+		show(name+"="+value.toString());
+	}
+	
+	private void show(String name, List<String> value) {
+		if(value == null) {
+			show(name+"="+value);
+		}
+		else {
+			show(name+"="+value.toString());
+		}
+	}
+	
+	public String generate(
+			String directory, 
+			String id,
+			String ddName,
+			String ddDescription,
+			Integer ddThreadCount,
+			String ddBrokerURL,
+			String ddEndpoint,
+			String cmDescriptor,
+			List<String> cmOverrides, 
+			String aeDescriptor, 
+			List<String> aeOverrides, 
+			String ccDescriptor,
+			List<String> ccOverrides
+			) throws ProxyDDException
+	{
+		String retVal = null;
+		try {
+			show("directory", directory);
+			show("id", id);
+			show("ddName", ddName);
+			show("ddDescription", ddDescription);
+			show("ddThreadCount", ddThreadCount);
+			show("ddBrokerURL", ddBrokerURL);
+			show("ddEndpoint", ddEndpoint);
+			show("cmDescriptor", cmDescriptor);
+			show("cmOverrides", cmOverrides);
+			show("aeDescriptor", aeDescriptor);
+			show("aeOverrides", aeOverrides);
+			show("ccDescriptor", ccDescriptor);
+			show("ccOverrides", ccOverrides);
+			Class<?> clazz = urlClassLoader.loadClass("org.apache.uima.ducc.user.dd.iface.DDGenerate");
+			Constructor<?> constructor = clazz.getConstructor();
+			Object instance = constructor.newInstance();
+			Class<?>[] parameterTypes = { 
+					String.class,	// directory
+					String.class,	// id
+					String.class,	// ddName
+					String.class,	// ddDescription
+					Integer.class,	// ddThreadCount
+					String.class,	// ddBrokerURL
+					String.class,	// ddEndpoint
+					String.class,	// cmDescriptor
+					List.class,		// cmOverrides
+					String.class,	// aeDescriptor
+					List.class,		// aeOverrides
+					String.class,	// ccDescriptor
+					List.class,		// ccOverrides
+			};
+			Method method = clazz.getMethod("generate", parameterTypes);
+			Object[] args = { 
+					directory, 
+					id, 
+					ddName, 
+					ddDescription, 
+					ddThreadCount, 
+					ddBrokerURL, 
+					ddEndpoint,
+					cmDescriptor,
+					cmOverrides,
+					aeDescriptor,
+					aeOverrides,
+					ccDescriptor,
+					ccOverrides
+					};
+			String dd = (String) method.invoke(instance, args);
+			show("generated deployment descriptor", dd);
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+			throw new ProxyDDException(e.toString());
+		}
+		return retVal;
+	}
+	
+	private void initialize() throws ProxyDDException {
+		FlagsExtendedHelper feh = FlagsExtendedHelper.getInstance();
+		String userClasspath = feh.getUserClasspath();
+		urlClassLoader = createClassLoader(userClasspath);
+		validate();
+	}
+	
+	private URLClassLoader createClassLoader(String userClasspath) {
+		String location = "createClassLoader";
+		URLClassLoader retVal = null;
+		try {
+			retVal = PrivateClassLoader.create(userClasspath);
+		}
+		catch(Exception e) {
+			logger.error(location, ILogger.null_id, e);
+		}
+		return retVal;
+	}
+	
+	private void validate() throws ProxyDDException {
+		for(String className : requiredClasses) {
+			loadClass(className);
+		}
+	}
+	
+	private void loadClass(String className) throws ProxyDDException {
+		String location = "loadClass";
+		try {
+			MessageBuffer mb1 = new MessageBuffer();
+			mb1.append(Standardize.Label.loading.get()+className);
+			logger.debug(location, ILogger.null_id, mb1.toString());
+			URL[] urls = urlClassLoader.getURLs();
+			for(URL url : urls) {
+				logger.trace(location, ILogger.null_id, url);
+			}
+			Class<?> loadedClass = urlClassLoader.loadClass(className);
+			MessageBuffer mb2 = new MessageBuffer();
+			mb2.append(Standardize.Label.loaded.get()+loadedClass.getName());
+			logger.trace(location, ILogger.null_id, mb2.toString());
+		} 
+		catch (Exception e) {
+			DuccLogger duccLogger = DuccLogger.getLogger(ProxyDDGenerate.class, "JD");
+			duccLogger.error(location, null, e);
+			logger.error(location, ILogger.null_id, e);
+			throw new ProxyDDException(e);
+		}
+	}
+}

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/dd/classload/ProxyDDGenerate.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/JobDriver.java Mon Dec  1 14:09:10 2014
@@ -24,6 +24,7 @@ import org.apache.uima.ducc.container.co
 import org.apache.uima.ducc.container.common.logger.IComponent;
 import org.apache.uima.ducc.container.common.logger.ILogger;
 import org.apache.uima.ducc.container.common.logger.Logger;
+import org.apache.uima.ducc.container.dd.DdManager;
 import org.apache.uima.ducc.container.jd.cas.CasManager;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverErrorHandler;
 import org.apache.uima.ducc.container.jd.mh.IMessageHandler;
@@ -62,7 +63,8 @@ public class JobDriver {
 	private IWorkItemStatistics wis = null;
 	private CasManager cm = null;
 	private ProxyJobDriverErrorHandler pjdeh = null;
-	private IMessageHandler mh = new MessageHandler();
+	private IMessageHandler mh = null; // new MessageHandler();
+	private DdManager ddManager = null;
 	
 	private JdState jdState = null;
 	
@@ -80,6 +82,7 @@ public class JobDriver {
 			wis = new WorkItemStatistics();
 			cm = new CasManager();
 			pjdeh = new ProxyJobDriverErrorHandler();
+			ddManager = new DdManager();
 			mh = new MessageHandler();
 		}
 		catch(Exception e) {
@@ -112,6 +115,10 @@ public class JobDriver {
 		return mh;
 	}
 	
+	public DdManager getDdManager() {
+		return ddManager;
+	}
+	
 	public JdState getJdState() {
 		synchronized(jdState) {
 			return jdState;

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/classload/ProxyJobDriverCollectionReader.java Mon Dec  1 14:09:10 2014
@@ -197,7 +197,7 @@ public class ProxyJobDriverCollectionRea
 			logger.debug(location, ILogger.null_id, mb1.toString());
 			URL[] urls = urlClassLoader.getURLs();
 			for(URL url : urls) {
-				logger.debug(location, ILogger.null_id, url);
+				logger.trace(location, ILogger.null_id, url);
 			}
 			Class<?> loadedClass = urlClassLoader.loadClass(className);
 			MessageBuffer mb2 = new MessageBuffer();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/MessageHandler.java Mon Dec  1 14:09:10 2014
@@ -31,6 +31,7 @@ import org.apache.uima.ducc.container.co
 import org.apache.uima.ducc.container.common.logger.Logger;
 import org.apache.uima.ducc.container.common.logger.id.Id;
 import org.apache.uima.ducc.container.common.logger.id.Transform;
+import org.apache.uima.ducc.container.dd.DdManager;
 import org.apache.uima.ducc.container.jd.JobDriver;
 import org.apache.uima.ducc.container.jd.JobDriverHelper;
 import org.apache.uima.ducc.container.jd.cas.CasManager;
@@ -83,7 +84,9 @@ public class MessageHandler implements I
 			CasManagerStats cms = cm.getCasManagerStats();
 			IWorkItemStatistics wis = jd.getWorkItemStatistics();
 			IRunningWorkItemStatistics rwis = RunningWorkItemStatistics.getCurrent();
+			DdManager ddManager = jd.getDdManager();
 			oi.setJobId(jd.getJobId());
+			oi.setJpDd(ddManager.getDD());
 			oi.setWorkItemCrTotal(cms.getCrTotal());
 			oi.setWorkItemCrFetches(cms.getCrGets());
 			oi.setWorkItemJpGets(gets.get());

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/iface/IOperatingInfo.java Mon Dec  1 14:09:10 2014
@@ -25,6 +25,9 @@ public interface IOperatingInfo extends 
 
 	public void setJobId(String value);
 	public String getJobId();
+
+	public void setJpDd(String value);
+	public String getJpDd();
 	
 	public void setWorkItemCrTotal(int value);
 	public int getWorkItemCrTotal();

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/main/java/org/apache/uima/ducc/container/jd/mh/impl/OperatingInfo.java Mon Dec  1 14:09:10 2014
@@ -29,6 +29,8 @@ public class OperatingInfo implements IO
 
 	private String jobId = null;
 	
+	private String jpDd = null;
+	
 	private int crTotal = 0;
 	private int crFetches = 0;
 	private int jpGets = 0;
@@ -262,4 +264,14 @@ public class OperatingInfo implements IO
 		return activeWorkItemInfo;
 	}
 
+	@Override
+	public void setJpDd(String value) {
+		jpDd = value;
+	}
+
+	@Override
+	public String getJpDd() {
+		return jpDd;
+	}
+
 }

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestClassLoading.java Mon Dec  1 14:09:10 2014
@@ -27,9 +27,11 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.net.URL;
 import java.net.URLClassLoader;
+import java.util.List;
 
 import org.apache.uima.ducc.common.container.FlagsHelper;
 import org.apache.uima.ducc.container.common.classloader.PrivateClassLoader;
+import org.apache.uima.ducc.container.dd.classload.ProxyDDGenerate;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverCollectionReader;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverDirective;
 import org.apache.uima.ducc.container.jd.classload.ProxyJobDriverErrorHandler;
@@ -113,6 +115,79 @@ public class TestClassLoading extends AT
 		}
 	}
 	
+	private void delete(File directory) {
+		try {
+			for(File file : directory.listFiles()) {
+				debug("delete: "+file.getName());
+				file.delete();
+			}
+			debug("delete: "+directory.getName());
+			directory.delete();
+		}
+		catch(Exception e) {
+			//e.printStackTrace();
+		}
+	}
+	
+	@Test
+	public void test_04() {
+		if(isDisabled(this.getClass().getName())) {
+			return;
+		}
+		try {
+			String userClasspath = Utilities.getInstance().getUserCP();
+			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
+			ProxyDDGenerate pddGenerate = new ProxyDDGenerate();
+			//
+			URL url = this.getClass().getResource("/");
+			File root = new File(url.getFile());
+			String name = root.getAbsolutePath();
+			debug(name);
+			assertTrue(root.isDirectory());
+			String nameWorking = name+File.separator+"working";
+			File working = new File(nameWorking);
+			delete(working);
+			working.mkdir();
+			//
+			String directory = working.getAbsolutePath();
+			String id = "12345";
+			String ddName = "name";
+			String ddDescription = "description";
+			Integer ddThreadCount = new Integer(1);
+			String ddBrokerURL = "brokerURL";
+			String ddEndpoint = "endpoint";
+			String cmDescriptor = null;
+			List<String> cmOverrides = null;
+			//String aeDescriptor = "org.apache.uima.ducc.test.randomsleep.FixedSleepAE";
+			String aeDescriptor = "FixedSleepAE";
+			List<String> aeOverrides = null;
+			String ccDescriptor = null;
+			List<String> ccOverrides = null;
+			String dd = pddGenerate.generate(
+					directory, 
+					id, 
+					ddName, 
+					ddDescription,
+					ddThreadCount,
+					ddBrokerURL, 
+					ddEndpoint, 
+					cmDescriptor, 
+					cmOverrides, 
+					aeDescriptor, 
+					aeOverrides, 
+					ccDescriptor, 
+					ccOverrides
+					);
+			debug(dd);
+			//
+			delete(working);
+		}
+		catch(Exception e) {
+			e.printStackTrace();
+			fail("Exception");
+		}
+	}
+	
   @Test
   public void test_loader() throws URISyntaxException, IOException {
 

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/TestMessageHandler.java Mon Dec  1 14:09:10 2014
@@ -104,10 +104,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_01");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -150,10 +160,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_02a");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -205,10 +225,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_2b");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -257,10 +287,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_03");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -339,10 +379,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_04");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -425,10 +475,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_05a");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			JobDriver.createInstance();
@@ -488,10 +548,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_05b");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			//
@@ -572,10 +642,20 @@ public class TestMessageHandler extends 
 		}
 		announce("test_06");
 		try {
-			URL urlXml = this.getClass().getResource("/CR100.xml");
-			File file = new File(urlXml.getFile());
-			String crXml = file.getAbsolutePath();
-			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), crXml);
+			URL urlXml = null;
+			File file = null;
+			String path = null;
+			//
+			urlXml = this.getClass().getResource("/CR100.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.CollectionReaderXml.pname(), path);
+			//
+			urlXml = this.getClass().getResource("/DDSleepDescriptor.xml");
+			file = new File(urlXml.getFile());
+			path = file.getAbsolutePath();
+			System.setProperty(FlagsHelper.Name.JpDd.pname(), path);
+			//
 			String userClasspath = Utilities.getInstance().getUserCP();
 			System.setProperty(FlagsHelper.Name.UserClasspath.pname(), userClasspath);
 			//

Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/helper/Utilities.java
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/helper/Utilities.java?rev=1642685&r1=1642684&r2=1642685&view=diff
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/helper/Utilities.java (original)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/java/org/apache/uima/ducc/container/jd/test/helper/Utilities.java Mon Dec  1 14:09:10 2014
@@ -36,6 +36,7 @@ public class Utilities {
 		retVal = url.getFile();
 		return retVal;
 	}
+	
 	private Utilities() {
 		userCP = 
 			resource("/") +
@@ -47,10 +48,32 @@ public class Utilities {
 			resource("/uimaj-core.jar") +
 			":" +
 			resource("/xstream-1.3.1.jar") +
+			":" +
+			resource("/spring-core.jar") +
+			":" +
+			resource("/xmlbeans.jar") +
 			""
 			;
 	}
+	
 	public String getUserCP() {
 		return userCP;
 	}
+	
+	public String getUserCP(boolean value) {
+		String retVal = userCP;
+		if(value) {
+			listToConsole(userCP);
+		}
+		return retVal;
+	}
+	
+	public void listToConsole(String userCP) {
+		if(userCP != null) {
+			String[] segments = userCP.split(":");
+			for(String segment : segments) {
+				System.out.println(segment);
+			}
+		}
+	}
 }

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml Mon Dec  1 14:09:10 2014
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+	<!--
+	 ***************************************************************
+	 * Licensed to the Apache Software Foundation (ASF) under one
+	 * or more contributor license agreements.  See the NOTICE file
+	 * distributed with this work for additional information
+	 * regarding copyright ownership.  The ASF licenses this file
+	 * to you under the Apache License, Version 2.0 (the
+	 * "License"); you may not use this file except in compliance
+	 * with the License.  You may obtain a copy of the License at
+         *
+	 *   http://www.apache.org/licenses/LICENSE-2.0
+	 * 
+	 * Unless required by applicable law or agreed to in writing,
+	 * software distributed under the License is distributed on an
+	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	 * KIND, either express or implied.  See the License for the
+	 * specific language governing permissions and limitations
+	 * under the License.
+	 ***************************************************************
+   -->
+
+<!-- NOTE: this has to be specified as a file path relative to the working directory
+           or as an absolute path in the job submission as process_DD -->
+
+<analysisEngineDeploymentDescription xmlns="http://uima.apache.org/resourceSpecifier">
+  
+  <name>Top Level TAE</name>
+  <description></description>
+  
+  <deployment protocol="jms" provider="activemq">
+    <casPool numberOfCASes="5" initialFsHeapSize="2000"/>
+    <service>
+      <inputQueue endpoint="TopLevelTaeQueue" brokerURL="${DefaultBrokerURL}" prefetch="1"/>
+      <topDescriptor>
+        <import name="org.apache.uima.ducc.test.randomsleep.DDSleepAggregate"/>
+      </topDescriptor>
+      <analysisEngine>
+        <delegates>
+        
+          <analysisEngine key="SleepMultiplier">
+	        <casMultiplier poolSize="5"/> 
+          </analysisEngine>
+
+          <analysisEngine key="AnalysisEngine">
+            <scaleout numberOfInstances="4" />
+          </analysisEngine>
+
+        </delegates>
+      </analysisEngine>
+    </service>
+  </deployment>
+  
+</analysisEngineDeploymentDescription>

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/DDSleepDescriptor.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml
URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml?rev=1642685&view=auto
==============================================================================
--- uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml (added)
+++ uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml Mon Dec  1 14:09:10 2014
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+	<!--
+	 ***************************************************************
+	 * Licensed to the Apache Software Foundation (ASF) under one
+	 * or more contributor license agreements.  See the NOTICE file
+	 * distributed with this work for additional information
+	 * regarding copyright ownership.  The ASF licenses this file
+	 * to you under the Apache License, Version 2.0 (the
+	 * "License"); you may not use this file except in compliance
+	 * with the License.  You may obtain a copy of the License at
+         *
+	 *   http://www.apache.org/licenses/LICENSE-2.0
+	 * 
+	 * Unless required by applicable law or agreed to in writing,
+	 * software distributed under the License is distributed on an
+	 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	 * KIND, either express or implied.  See the License for the
+	 * specific language governing permissions and limitations
+	 * under the License.
+	 ***************************************************************
+   -->
+   
+<!-- AE that employs CAS indirection inside aggregate. -->
+
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+	<frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+	<primitive>true</primitive>
+	<annotatorImplementationName>org.apache.uima.ducc.test.randomsleep.FixedSleepAE</annotatorImplementationName>
+	<analysisEngineMetaData>
+		<name>DefaultAE</name>
+		<description>Receives CASes with modified index; does nothing (echos).</description>
+		<version>1.0</version>
+		<vendor>The Apache Software Foundation</vendor>
+		
+		<configurationParameters>
+    		<configurationParameter>
+      			<name>DebugLevel</name>
+      			<description>Debug Level</description>
+      			<type>String</type>
+      			<multiValued>false</multiValued>
+      			<mandatory>false</mandatory>
+    		</configurationParameter>
+    	</configurationParameters>
+   	 	<configurationParameterSettings>
+    	</configurationParameterSettings>
+		
+		<typeSystemDescription>
+          <imports>
+            <import name="org.apache.uima.examples.SourceDocumentInformation"/>
+          </imports>
+        </typeSystemDescription>
+		<!--
+		Capabilities: Inputs, Outputs, and Preconditions
+		-->
+		<capabilities>
+          	<capability>
+          		<inputs/>
+          		<outputs>
+          			<type allAnnotatorFeatures="true">org.apache.uima.examples.SourceDocumentInformation</type>
+          		</outputs>
+          	</capability>
+        </capabilities>
+		<operationalProperties>
+			<modifiesCas>true</modifiesCas>
+			<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+			<outputsNewCASes>false</outputsNewCASes>
+		</operationalProperties>
+	</analysisEngineMetaData>
+</analysisEngineDescription>

Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-container/src/test/resources/FixedSleepAE.xml
------------------------------------------------------------------------------
    svn:eol-style = native