You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by ea...@apache.org on 2008/09/22 18:42:38 UTC

svn commit: r697893 - in /incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src: main/java/org/apache/uima/adapter/jms/activemq/ main/java/org/apache/uima/adapter/jms/client/ test/java/org/apache/uima/ee/test/ test/java/org/apache/uima/ee/test/uti...

Author: eae
Date: Mon Sep 22 09:42:38 2008
New Revision: 697893

URL: http://svn.apache.org/viewvc?rev=697893&view=rev
Log:
uima-1140 Commit Jerry's three UIMA-1140 patches

Added:
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_ComplexAggregateWithInnerAggregateCM.xml
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml
Modified:
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsInputChannel.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/SpringContainerDeployer.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaEEAdminSpringContext.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/TestUimaASExtended.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/BaseTestSupport.java
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWith1MillionDocs.xml
    incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsInputChannel.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsInputChannel.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsInputChannel.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsInputChannel.java Mon Sep 22 09:42:38 2008
@@ -628,7 +628,9 @@
 					getController().beginProcess(requestType);
 				}
 
-				
+	      UIMAFramework.getLogger(CLASS_NAME).logrb(Level.FINEST, CLASS_NAME.getName(),
+                "onMessage", JmsConstants.JMS_LOG_RESOURCE_BUNDLE, "UIMAJMS_new_msg_in__FINEST",
+                new Object[] { getController().getComponentName(), msgFrom, command, messageType, casRefId });
 				if ( handler != null )
 				{
 					handler.handle( messageContext );
@@ -636,7 +638,10 @@
 			}
 			else
 			{
-				controller.getErrorHandlerChain().handle(new InvalidMessageException(), HandlerBase.populateErrorContext( messageContext ), controller);			
+			  if ( !isStaleMessage(aMessage))
+			  {
+	        controller.getErrorHandlerChain().handle(new InvalidMessageException(), HandlerBase.populateErrorContext( messageContext ), controller);      
+			  }
 			}
 		
 		}
@@ -788,5 +793,8 @@
 	{
 		return stopped;
 	}
-
+  public int getConcurrentConsumerCount()
+  {
+    return messageListener.getConcurrentConsumers();
+  }
 }

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/JmsOutputChannel.java Mon Sep 22 09:42:38 2008
@@ -493,7 +493,6 @@
 						{
 							serviceInfo.setReplyQueueName(replyQueueName);
 							serviceInfo.setServiceKey(delegateKey);
-							System.out.println("Service:"+delegateKey+" Directed to Reply To:"+replyQueueName);
 						}
 					}
 				}
@@ -503,7 +502,6 @@
 					if (serviceInfo != null )
 					{
 						serviceInfo.setReplyQueueName(controllerInputEndpoint);
-						System.out.println("Aggregate Service Reply Queue:"+getAnalysisEngineController().getComponentName()+" Reply To:"+controllerInputEndpoint);
 					}
 				}
 			}
@@ -677,7 +675,22 @@
 	            UIMAFramework.getLogger(CLASS_NAME).logrb(Level.FINE, CLASS_NAME.getName(),
 	                    "sendReply", JmsConstants.JMS_LOG_RESOURCE_BUNDLE, "UIMAJMS_sending_reply_with_sequence__FINE",
 	                    new Object[] { anEndpoint.getEndpoint(), entry.getCasReferenceId(), entry.getCasSequence() });
-				sendCasToCollocatedDelegate(false, entry.getInputCasReferenceId(), entry.getCasReferenceId(), anEndpoint, false, entry.getCasSequence());
+
+	            if ( getAnalysisEngineController() instanceof AggregateAnalysisEngineController && getAnalysisEngineController().isCasMultiplier() )
+	            {
+	              if ( ((AggregateAnalysisEngineController)getAnalysisEngineController()).getMessageOrigin(entry.getInputCasReferenceId()) != null)
+	              {
+	                sendCasToCollocatedDelegate(false, entry.getInputCasReferenceId(), entry.getCasReferenceId(), anEndpoint, false, entry.getCasSequence());
+	              }
+	              else
+	              {
+	                sendCasToCollocatedDelegate(false, entry.getCasReferenceId(), null, anEndpoint, false, 0);
+	              }
+	            }
+	            else
+	            {
+                sendCasToCollocatedDelegate(false, entry.getInputCasReferenceId(), entry.getCasReferenceId(), anEndpoint, false, entry.getCasSequence());
+	            }
 			}
 		}
 		catch( ServiceShutdownException e)
@@ -1153,7 +1166,7 @@
 		aMessage.setIntProperty(AsynchAEMessage.MessageType, AsynchAEMessage.Response); 
 		aMessage.setIntProperty(AsynchAEMessage.Command, aCommand); 
 		aMessage.setStringProperty(AsynchAEMessage.MessageFrom, serviceInputEndpoint);
-	
+		
 		if (anEndpoint.isRemote())
 		{
 			aMessage.setStringProperty(UIMAMessage.ServerURI, getServerURI());

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/SpringContainerDeployer.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/SpringContainerDeployer.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/SpringContainerDeployer.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/SpringContainerDeployer.java Mon Sep 22 09:42:38 2008
@@ -98,6 +98,25 @@
 		} 
 		return factory;
 	}
+	
+	private int getConcurrentConsumerCount( ApplicationContext ctx )
+	{
+    String[] listenerBeanIds = ctx.getBeanNamesForType(org.apache.uima.adapter.jms.activemq.UimaDefaultMessageListenerContainer.class);
+    String beanId = null;
+    int concurrentConsumerCount = -1;
+    for( int i=0; i < listenerBeanIds.length; i++)
+    {
+      UimaDefaultMessageListenerContainer lsnr = (UimaDefaultMessageListenerContainer)ctx.getBean(listenerBeanIds[i]);
+      if ( lsnr.getDestinationName().startsWith("asynAggr_retQ"))
+      {
+        return lsnr.getConcurrentConsumers();
+      }
+    } 
+	  
+    return -1;
+	  
+	}
+	
 	private void initializeTopLevelController( AnalysisEngineController cntlr, ApplicationContext ctx) 
 	throws Exception
 	{
@@ -181,7 +200,13 @@
 
 				}
 			}
-
+			int concurrentConsumerCountOnReplies = getConcurrentConsumerCount(ctx);
+			// Configure and initialize vm transport in the top level aggregate.
+			// The aggregate will initialize all delegates with the vm transport.
+			if ( System.getProperty("UseVmTransport") != null )
+			{
+	      ((AggregateAnalysisEngineController) cntlr).initializeVMTransport(concurrentConsumerCountOnReplies);
+			}
 			// Complete initialization of the aggregate by sending
 			// getMeta requests to
 			// all remote delegates (if any). Collocated delegates

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaEEAdminSpringContext.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaEEAdminSpringContext.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaEEAdminSpringContext.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/activemq/UimaEEAdminSpringContext.java Mon Sep 22 09:42:38 2008
@@ -72,6 +72,27 @@
 	{
 		return springContainer;
 	}
+
+	public int getConcurrentConsumerCount( String anEndpointName )
+	{
+    try
+    {
+      if ( anEndpointName != null && anEndpointName.trim().length() > 0 && springContainer.isActive() && listenerMap.containsKey(anEndpointName))
+      {
+        ListenerEntry listenerEntry = null;
+        
+        listenerEntry =((ListenerEntry)listenerMap.get(anEndpointName));
+        if ( listenerEntry != null && listenerEntry.isStopped() == false )
+        {
+              UimaDefaultMessageListenerContainer listenerContainer = 
+                listenerEntry.getListenerContainer();
+              return listenerContainer.getConcurrentConsumers();
+        }
+      }       
+    }
+    catch( Exception e) {}
+	  return -1;
+	}
 	/**
 	 * Stops a listener thread on a given endpoint
 	 */

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/main/java/org/apache/uima/adapter/jms/client/BaseUIMAAsynchronousEngine_impl.java Mon Sep 22 09:42:38 2008
@@ -1,4 +1,3 @@
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -132,7 +131,6 @@
 	/**
 	 * Initialize JMS Message with properties relevant to Process CAS request.
 	 */
-	
 	protected void setCASMessage(String aCasReferenceId, CAS aCAS, TextMessage msg) throws ResourceProcessException
 	{
 		try{

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/TestUimaASExtended.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/TestUimaASExtended.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/TestUimaASExtended.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/TestUimaASExtended.java Mon Sep 22 09:42:38 2008
@@ -44,6 +44,7 @@
 import org.apache.uima.aae.client.UimaASStatusCallbackListener;
 import org.apache.uima.aae.client.UimaAsynchronousEngine;
 import org.apache.uima.aae.controller.Endpoint;
+import org.apache.uima.aae.error.MessageTimeoutException;
 import org.apache.uima.aae.error.ServiceShutdownException;
 import org.apache.uima.adapter.jms.JmsConstants;
 import org.apache.uima.adapter.jms.activemq.JmsOutputChannel;
@@ -159,7 +160,7 @@
 		deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator.xml");
 		deployService(eeUimaEngine, relativePath+"/Deploy_AggregateAnnotator.xml");
 		super.setExpectingServiceShutdown();
-		runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 0, EXCEPTION_LATCH);
+		runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 0, PROCESS_LATCH);
 	}
 	/**
 	 * Tests a simple Aggregate with one remote Delegate and collocated Cas Multiplier
@@ -173,9 +174,39 @@
 		deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator.xml");
 		deployService(eeUimaEngine, relativePath+"/Deploy_AggregateUsingRemoteTempQueue.xml");
 		runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 1, PROCESS_LATCH);
+		
 	}
 
-  /**
+	/**
+	 * Tests a simple Aggregate with one remote Delegate and collocated Cas Multiplier
+	 * 
+	 * @throws Exception
+	 */
+	public void testProcessAggregateServiceWith1000Docs() throws Exception
+	{
+		System.out.println("-------------- testProcessAggregateServiceWith1000Docs -------------");
+		BaseUIMAAsynchronousEngine_impl eeUimaEngine = new BaseUIMAAsynchronousEngine_impl();
+		deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator.xml");
+		deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator.xml");
+		deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator.xml");
+		deployService(eeUimaEngine, relativePath+"/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml");
+//		deployService(eeUimaEngine, relativePath+"/Deploy_AggregateAnnotatorWith1MillionDocs.xml");
+		runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 1, PROCESS_LATCH);
+		
+	}
+
+	
+	 public void testProcessAggregateWithInnerAggregateCM() throws Exception
+	  {
+	    System.out.println("-------------- testProcessAggregateWithInnerAggregateCM() -------------");
+	    BaseUIMAAsynchronousEngine_impl eeUimaEngine = new BaseUIMAAsynchronousEngine_impl();
+	    System.setProperty(JmsConstants.SessionTimeoutOverride, "2500000");
+	    deployService(eeUimaEngine, relativePath+"/Deploy_ComplexAggregateWithInnerAggregateCM.xml");
+	    super.setExpectingServiceShutdown();
+	    runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 1, PROCESS_LATCH);
+	  }
+
+   /**
    * Tests exception thrown in the Uima EE Client when the Collection Reader is added after
    * the uima ee client is initialized
    * 
@@ -444,6 +475,9 @@
     Map<String, Object> appCtx = buildContext( String.valueOf(broker.getMasterConnectorURI()), "TopLevelTaeQueue" );
     // Set an explicit process timeout so one of the 1st parallels is disabled but 2nd parallel flow continues.
     appCtx.put(UimaAsynchronousEngine.Timeout, 20000 );
+    addExceptionToignore(org.apache.uima.aae.error.UimaEEServiceException.class);
+    addExceptionToignore(org.apache.uima.aae.error.UimaASProcessCasTimeout.class);
+    
     runTest(appCtx, eeUimaEngine, null, null, 1, PROCESS_LATCH);
   }
 
@@ -655,6 +689,7 @@
     Map<String, Object> appCtx = buildContext( String.valueOf(broker.getMasterConnectorURI()), "TopLevelTaeQueue" );
     // Set an explicit CPC timeout as exceptions thrown in the 2nd annotator's CPC don't reach the client.
     appCtx.put(UimaAsynchronousEngine.CpcTimeout, 20000 );
+    addExceptionToignore(org.apache.uima.aae.error.UimaEEServiceException.class);
     runTest(appCtx,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 1, PROCESS_LATCH); //PC_LATCH);
   }
 
@@ -667,6 +702,7 @@
     deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotatorWithException.xml");
     deployService(eeUimaEngine, relativePath+"/Deploy_NoOpAnnotator2.xml");
     deployService(eeUimaEngine, relativePath+"/Deploy_AggregateWithParallelFlowDisableOnDelegateFailure.xml");
+    addExceptionToignore(org.apache.uima.aae.error.UimaEEServiceException.class);
     runTest(null,eeUimaEngine,String.valueOf(broker.getMasterConnectorURI()),"TopLevelTaeQueue", 1, PROCESS_LATCH); //PC_LATCH);
   }
 

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/BaseTestSupport.java
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/BaseTestSupport.java?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/BaseTestSupport.java (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/java/org/apache/uima/ee/test/utils/BaseTestSupport.java Mon Sep 22 09:42:38 2008
@@ -20,6 +20,7 @@
 package org.apache.uima.ee.test.utils;
 
 import java.net.URL;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
@@ -66,7 +67,8 @@
 	protected boolean expectingServiceShutdownException = false;
 	protected long expectedProcessTime = 0;
 	boolean serviceShutdownException = false;
-
+	List<Class> exceptionsToIgnore = new ArrayList<Class>();
+	
 	protected String deployService(BaseUIMAAsynchronousEngine_impl eeUimaEngine, String aDeploymentDescriptorPath) throws Exception
 	{
 		Map<String, Object> appCtx = new HashMap();
@@ -77,6 +79,27 @@
 		return containerId;
 	}
 
+	protected void addExceptionToignore( Class anExceptionToIgnore)
+	{
+	  exceptionsToIgnore.add( anExceptionToIgnore );
+	}
+	
+	protected boolean ignoreException( Class<?> anException )
+	{
+	  if ( anException == null )
+	  {
+	    return true;
+	  }
+	  for( int i=0; i < exceptionsToIgnore.size(); i++)
+	  {
+	    String name = anException.getName();
+	    if ( name.equals( exceptionsToIgnore.get(i).getName()) )
+	    {
+	      return true;
+	    }
+	  }
+	  return false;
+	}
 	protected void initialize(BaseUIMAAsynchronousEngine_impl eeUimaEngine, Map<String, Object> appCtx) throws Exception
 	{
 		eeUimaEngine.addStatusCallbackListener(this);
@@ -497,10 +520,11 @@
 	 * is received. The reply contains either the CAS or an exception that occurred 
 	 * while processing the CAS.
 	 */
-	public void entityProcessComplete(CAS aCAS, EntityProcessStatus aProcessStatus)
+	public synchronized void entityProcessComplete(CAS aCAS, EntityProcessStatus aProcessStatus)
 	{
 		String casReferenceId="";
 		String parentCasReferenceId="";
+		boolean expectedException = false;
 		if ( aProcessStatus instanceof UimaASProcessStatus )
 		{
 			casReferenceId = 
@@ -523,7 +547,11 @@
 				{
 					serviceShutdownException = true;
 				}
-				if ( !expectingServiceShutdownException )
+				else if ( ignoreException( e.getClass()))
+				{
+				  expectedException = true;
+				}
+				if ( !expectedException && !expectingServiceShutdownException )
 				{
 					e.printStackTrace();
 				}
@@ -538,7 +566,11 @@
 			}
 			else if (processCountLatch != null)
 			{
-				if ( !(serviceShutdownException && expectingServiceShutdownException) )
+			  
+			  
+			  
+			  
+				if ( !expectedException && !(serviceShutdownException && expectingServiceShutdownException) )
 				{
 				unexpectedException = true;
 				System.out.println(" ... when expecting normal completion!");

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWith1MillionDocs.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWith1MillionDocs.xml?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWith1MillionDocs.xml (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWith1MillionDocs.xml Mon Sep 22 09:42:38 2008
@@ -33,19 +33,19 @@
       <topDescriptor>
         <import location="../descriptors/analysis_engine/SimpleTestAggregateWith1MillionDocs.xml"/>
       </topDescriptor>
-      <analysisEngine>
+      <analysisEngine inputQueueScaleout="3" internalReplyQueueScaleout="5">
         <delegates>
         
           <analysisEngine key="TestMultiplier">
 	        <casMultiplier poolSize="5"/> 
           </analysisEngine>
 
-          <remoteAnalysisEngine key="NoOp">
+          <remoteAnalysisEngine key="NoOp" remoteReplyQueueScaleout="3">
 	                  <inputQueue endpoint="NoOpAnnotatorQueue" brokerURL="tcp://localhost:8118"/>
 	                  <serializer method="xmi"/>
                       <asyncAggregateErrorConfiguration>
                             <getMetadataErrors maxRetries="3" timeout="5000" errorAction="continue" />
-                            <processCasErrors maxRetries="0" timeout="5000" thresholdCount="1" thresholdAction="terminate" />
+                            <processCasErrors maxRetries="0" timeout="5000" thresholdCount="1" thresholdAction="continue" />
                       </asyncAggregateErrorConfiguration>
           </remoteAnalysisEngine>
 

Modified: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml?rev=697893&r1=697892&r2=697893&view=diff
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml (original)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_AggregateAnnotatorWithInternalCM1000Docs.xml Mon Sep 22 09:42:38 2008
@@ -33,7 +33,7 @@
       <topDescriptor>
         <import location="../descriptors/analysis_engine/SimpleTestAggregateWith1000DocCM.xml"/>
       </topDescriptor>
-      <analysisEngine>
+      <analysisEngine internalReplyQueueScaleout="3">
         <delegates>
         
           <analysisEngine key="TestMultiplier">

Added: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_ComplexAggregateWithInnerAggregateCM.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_ComplexAggregateWithInnerAggregateCM.xml?rev=697893&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_ComplexAggregateWithInnerAggregateCM.xml (added)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/deployment/Deploy_ComplexAggregateWithInnerAggregateCM.xml Mon Sep 22 09:42:38 2008
@@ -0,0 +1,57 @@
+<?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.
+   ***************************************************************
+   -->
+
+<analysisEngineDeploymentDescription xmlns="http://uima.apache.org/resourceSpecifier">
+  
+  <name>Top Level TAE</name>
+  <description></description>
+  
+  <deployment protocol="jms" provider="activemq">
+    <casPool numberOfCASes="5"/>
+    <service>
+      <inputQueue endpoint="TopLevelTaeQueue" brokerURL="tcp://localhost:8118" prefetch="1"/>
+      <topDescriptor>
+        <import location="../descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml"/>
+      </topDescriptor>
+      <analysisEngine>
+        <delegates>
+        
+          <analysisEngine key="TestMultiplier">
+	        <casMultiplier poolSize="5"/> 
+          </analysisEngine>
+
+          <analysisEngine key="MeetingDetectorAggregate" async="true">
+            <casMultiplier poolSize="25" initialFsHeapSize="20000"/>
+            <asyncAggregateErrorConfiguration>
+              <getMetadataErrors maxRetries="0" timeout="60000" errorAction="terminate"/>
+              <processCasErrors maxRetries="0" timeout="0" continueOnRetryFailure="false" thresholdCount="0" thresholdWindow="0" thresholdAction="terminate"/>
+              <collectionProcessCompleteErrors timeout="0" additionalErrorAction="terminate"/>
+            </asyncAggregateErrorConfiguration>
+          </analysisEngine>
+			
+        </delegates>
+      </analysisEngine>
+    </service>
+  </deployment>
+  
+</analysisEngineDeploymentDescription>

Added: incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml
URL: http://svn.apache.org/viewvc/incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml?rev=697893&view=auto
==============================================================================
--- incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml (added)
+++ incubator/uima/sandbox/trunk/uima-as/uimaj-as-activemq/src/test/resources/descriptors/analysis_engine/ComplexAggregateWithInnerAggregateCM.xml Mon Sep 22 09:42:38 2008
@@ -0,0 +1,72 @@
+<?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.
+	 ***************************************************************
+   -->
+   
+<analysisEngineDescription xmlns="http://uima.apache.org/resourceSpecifier">
+  <frameworkImplementation>org.apache.uima.java</frameworkImplementation>
+  <primitive>false</primitive>
+  <delegateAnalysisEngineSpecifiers>
+    
+    <delegateAnalysisEngine key="TestMultiplier">
+      <import location="../multiplier/SimpleCasGenerator.xml"/>
+    </delegateAnalysisEngine>
+
+
+    <delegateAnalysisEngine key="MeetingDetectorAggregate">
+      <import location="SimpleTestAggregateCasMultiplier.xml"/>
+    </delegateAnalysisEngine>
+  </delegateAnalysisEngineSpecifiers>
+  <analysisEngineMetaData>
+    <name>Complex Top Level Aggregate TAE</name>
+    <description>Detects Meetings and Room Numbers</description>
+    <configurationParameters/>
+    <configurationParameterSettings/>
+    <flowConstraints>
+      <fixedFlow>
+      
+        <node>TestMultiplier</node>
+        <node>MeetingDetectorAggregate</node>
+      
+      </fixedFlow>
+    </flowConstraints>
+    <capabilities>
+      <capability>
+        <inputs/>
+        <outputs>
+          <type allAnnotatorFeatures="true">org.apache.uima.tutorial.Meeting</type>
+          <type allAnnotatorFeatures="true">org.apache.uima.tutorial.RoomNumber</type>
+          <type allAnnotatorFeatures="true">org.apache.uima.tutorial.DateAnnot</type>
+          <type allAnnotatorFeatures="true">org.apache.uima.tutorial.TimeAnnot</type>
+        
+        </outputs>
+        <languagesSupported>
+          <language>en</language>
+        </languagesSupported>
+      </capability>
+    </capabilities>
+	<operationalProperties>
+		<modifiesCas>true</modifiesCas>
+		<multipleDeploymentAllowed>true</multipleDeploymentAllowed>
+		<outputsNewCASes>false</outputsNewCASes>
+	</operationalProperties>
+  </analysisEngineMetaData>
+</analysisEngineDescription>