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

svn commit: r816570 - in /incubator/uima/uima-as/trunk: uima-as-docbooks/src/docbook/uima_async_scaleout/ uimaj-as-camel/src/main/java/org/apache/uima/camel/

Author: joern
Date: Fri Sep 18 10:01:53 2009
New Revision: 816570

URL: http://svn.apache.org/viewvc?rev=816570&view=rev
Log:
UIMA-1579 The cas pool size of the camel uima driver must be configurable

Modified:
    incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.camel.driver.xml
    incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsEndpoint.java
    incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsProducer.java

Modified: incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.camel.driver.xml
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.camel.driver.xml?rev=816570&r1=816569&r2=816570&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.camel.driver.xml (original)
+++ incubator/uima/uima-as/trunk/uima-as-docbooks/src/docbook/uima_async_scaleout/async.camel.driver.xml Fri Sep 18 10:01:53 2009
@@ -63,9 +63,11 @@
     <para>The Asynchronous Scaleout Camel Driver is configured with a configuration string. The 
     configuration string must contain the broker location and name of the JMS queue used to
     communicate with UIMA AS. It has the following format
-    <programlisting>uimadriver:brokerURL?queue="nameofqueue" </programlisting>
+    <programlisting>uimadriver:brokerURL?queue=nameofqueue&casPoolSize=n</programlisting>
     which could for example be specified as
     <programlisting>uimadriver:tcp://localhost:61616?queue=TextAnalysisQueue</programlisting>.
+    The casPoolSize parameter is optional but if it is present n must be an integer
+    which is larger than zero, otherwise the UIMA AS default will be used.
     </para>
   </section>
   <section id="ugr.async.camel.driver.sample">

Modified: incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsEndpoint.java?rev=816570&r1=816569&r2=816570&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsEndpoint.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsEndpoint.java Fri Sep 18 10:01:53 2009
@@ -34,6 +34,7 @@
 
 	private String brokerAddress;
 	private String queue;
+	private Integer casPoolSize;
 	
 	public UimaAsEndpoint(String uri, String brokerAddress, 
     		UimaAsComponent component) {
@@ -46,6 +47,20 @@
     public void configureProperties(Map options) {
     	super.configureProperties(options);
     	queue = (String) options.remove("queue");
+    	
+    	if (options.containsKey("casPoolSize")) {
+    		String casPoolSizeString = (String) options.remove("casPoolSize");
+    		try {
+    			casPoolSize = Integer.parseInt(casPoolSizeString);
+    			if (casPoolSize < 1) {
+    				System.out.println("Warning casPoolSize must be larger than zero, fallback to default!");
+    				casPoolSize = null;
+    			}
+    		}
+    		catch (NumberFormatException e) {
+    			System.out.println("Warning cas pool size is invalid, fallback to default!");
+    		}
+    	}
     }
     
 	public Consumer<Exchange> createConsumer(Processor arg0) throws Exception {
@@ -53,7 +68,7 @@
 	}
 
 	public Producer<Exchange> createProducer() throws Exception {
-		return new UimaAsProducer(brokerAddress, queue, this);
+		return new UimaAsProducer(brokerAddress, queue, casPoolSize, this);
 	}
 
 	public boolean isSingleton() {

Modified: incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsProducer.java
URL: http://svn.apache.org/viewvc/incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsProducer.java?rev=816570&r1=816569&r2=816570&view=diff
==============================================================================
--- incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsProducer.java (original)
+++ incubator/uima/uima-as/trunk/uimaj-as-camel/src/main/java/org/apache/uima/camel/UimaAsProducer.java Fri Sep 18 10:01:53 2009
@@ -118,7 +118,7 @@
    */
   private final Map<String, ExchangeAsyncCallbackPair> intermediateMap;
 
-  public UimaAsProducer(String brokerAddress, String queue, Endpoint<Exchange> endpoint)
+  public UimaAsProducer(String brokerAddress, String queue, Integer casPoolSize, Endpoint<Exchange> endpoint)
           throws Exception {
     super(endpoint);
 
@@ -131,8 +131,10 @@
     Map<String, Object> appCtx = new HashMap<String, Object>();
     appCtx.put(UimaAsynchronousEngine.ServerUri, brokerAddress);
     appCtx.put(UimaAsynchronousEngine.Endpoint, queue);
-    appCtx.put(UimaAsynchronousEngine.CasPoolSize, 15);
-
+    if (casPoolSize != null) {
+    	appCtx.put(UimaAsynchronousEngine.CasPoolSize, casPoolSize.intValue());
+    }
+    
     try {
       uimaAsEngine.initialize(appCtx);
     } catch (ResourceInitializationException e) {