You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by pd...@apache.org on 2006/10/04 19:23:06 UTC

svn commit: r452942 - in /incubator/servicemix/trunk/servicemix-script/src: main/java/org/apache/servicemix/script/ test/resources/

Author: pdodds
Date: Wed Oct  4 10:23:05 2006
New Revision: 452942

URL: http://svn.apache.org/viewvc?view=rev&rev=452942
Log:
Implements ScriptHelper and fixed issues with the Groovy testcase

Added:
    incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptHelper.java
Modified:
    incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java
    incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java
    incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb
    incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml

Modified: incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java?view=diff&rev=452942&r1=452941&r2=452942
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java (original)
+++ incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java Wed Oct  4 10:23:05 2006
@@ -26,15 +26,22 @@
  * @org.apache.xbean.XBean element="exchangeHelper" description="ServiceMix
  *                         Scripting Helper"
  */
-public class ScriptExchangeHelper {
+public class ScriptExchangeHelper implements ScriptHelper {
 
 	private ScriptExchangeProcessorEndpoint endpoint;
 
-	public ScriptExchangeHelper(ScriptExchangeProcessorEndpoint endpoint) {
+	/*
+	 * (non-Javadoc)
+	 * 
+	 * @see org.apache.servicemix.script.ScriptHelper#setScriptExchangeProcessorEndpoint(org.apache.servicemix.script.ScriptExchangeProcessorEndpoint)
+	 */
+	public void setScriptExchangeProcessorEndpoint(
+			ScriptExchangeProcessorEndpoint endpoint) {
 		this.endpoint = endpoint;
 	}
 
-	public void doneExchange(MessageExchange exchange) throws MessagingException {
+	public void doneExchange(MessageExchange exchange)
+			throws MessagingException {
 		endpoint.done(exchange);
 	}
 
@@ -43,7 +50,8 @@
 		endpoint.fail(exchange, exception);
 	}
 
-	public void sendExchange(MessageExchange exchange) throws MessagingException {
+	public void sendExchange(MessageExchange exchange)
+			throws MessagingException {
 		endpoint.send(exchange);
 	}
-}
+}
\ No newline at end of file

Modified: incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java?view=diff&rev=452942&r1=452941&r2=452942
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java (original)
+++ incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java Wed Oct  4 10:23:05 2006
@@ -16,16 +16,18 @@
  */
 package org.apache.servicemix.script;
 
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
 import javax.jbi.component.ComponentContext;
 import javax.jbi.management.DeploymentException;
 import javax.jbi.messaging.DeliveryChannel;
 import javax.jbi.messaging.ExchangeStatus;
-import javax.jbi.messaging.InOut;
 import javax.jbi.messaging.MessageExchange;
 import javax.jbi.messaging.MessageExchangeFactory;
 import javax.jbi.messaging.MessagingException;
 import javax.jbi.messaging.MessageExchange.Role;
-import javax.jbi.messaging.NormalizedMessage;
 import javax.jbi.servicedesc.ServiceEndpoint;
 
 import org.apache.servicemix.common.BaseLifeCycle;
@@ -46,6 +48,8 @@
 
 	private ExchangeProcessor implementation;
 
+	private List helpers = new ArrayList();
+
 	public void activate() throws Exception {
 		logger = this.serviceUnit.getComponent().getLogger();
 		ComponentContext ctx = getServiceUnit().getComponent()
@@ -76,6 +80,14 @@
 		send(me);
 	}
 
+	public List getHelpers() {
+		return helpers;
+	}
+
+	public ExchangeProcessor getImplementation() {
+		return implementation;
+	}
+
 	public ExchangeProcessor getProcessor() {
 		return this;
 	}
@@ -89,10 +101,6 @@
 		return Role.PROVIDER;
 	}
 
-	public ExchangeProcessor getImplementation() {
-		return implementation;
-	}
-
 	public void process(MessageExchange exchange) throws Exception {
 		if (implementation != null)
 			implementation.process(exchange);
@@ -110,8 +118,19 @@
 		}
 	}
 
+	public void setHelpers(List helpers) {
+		this.helpers = helpers;
+		for (Iterator iterator = helpers.iterator(); iterator.hasNext();) {
+			Object nextHelper = iterator.next();
+			if (nextHelper instanceof ScriptHelper) {
+				((ScriptHelper) nextHelper)
+						.setScriptExchangeProcessorEndpoint(this);
+			}
+		}
+	}
+
 	public void setImplementation(ExchangeProcessor implementation) {
-		this.implementation = implementation;		
+		this.implementation = implementation;
 	}
 
 	public void start() throws Exception {

Added: incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptHelper.java
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptHelper.java?view=auto&rev=452942
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptHelper.java (added)
+++ incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptHelper.java Wed Oct  4 10:23:05 2006
@@ -0,0 +1,8 @@
+package org.apache.servicemix.script;
+
+public interface ScriptHelper {
+
+	public abstract void setScriptExchangeProcessorEndpoint(
+			ScriptExchangeProcessorEndpoint endpoint);
+
+}
\ No newline at end of file

Modified: incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb?view=diff&rev=452942&r1=452941&r2=452942
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb (original)
+++ incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb Wed Oct  4 10:23:05 2006
@@ -13,16 +13,15 @@
  end
  
  def process(exchange)
-   print "Processing exchange in JRuby"
-   @exchangeHelper.sendExchange exchange
+   print "Processing exchange "
+   print exchange
+   print " using "
+   print @exchangeHelper
+   @exchangeHelper.sendExchange(exchange)
  end
 
  def stop()
    print "Stopping"
- end
- 
- def toString()
-   return "RubyExchangeProcessor"
  end
 
 end

Modified: incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml
URL: http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml?view=diff&rev=452942&r1=452941&r2=452942
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml (original)
+++ incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml Wed Oct  4 10:23:05 2006
@@ -20,51 +20,57 @@
 <beans xmlns:sm="http://servicemix.apache.org/config/1.0"
 	xmlns:script="http://org.apache.servicemix/script/1.0"
 	xmlns:lang="http://www.springframework.org/schema/lang"
-	xmlns:test="urn:test">
-
+	xmlns:test="urn:test">
+
 	<sm:container id="jbi" embedded="true" createMBeanServer="false">
 		<sm:activationSpecs>
 			<sm:activationSpec>
 				<sm:component>
-					<script:component>						
+					<script:component>
 						<script:endpoints>
 							<!-- Groovy Endpoint  -->
-							<script:exchangeProcessor id="groovyEndpoint"
+							<script:exchangeProcessor
 								service="test:groovy" endpoint="endpoint">
-								<property name="implementation" ref="groovyExchangeProcessor"/>
+								<property name="helpers">
+									<list>
+										<ref bean="groovyExchangeHelper" />
+									</list>
+								</property>
+								<property name="implementation"
+									ref="groovyExchangeProcessor" />
 							</script:exchangeProcessor>
-							
+
 							<!-- JRuby Endpoint  -->
-							<script:exchangeProcessor id="rubyEndpoint"
+							<script:exchangeProcessor
 								service="test:jruby" endpoint="endpoint">
-								<property name="implementation" ref="rubyExchangeProcessor"/>
+								<property name="helpers">
+									<list>
+										<ref bean="jrubyExchangeHelper" />
+									</list>
+								</property>
+								<property name="implementation"
+									ref="jrubyExchangeProcessor" />
 							</script:exchangeProcessor>
-						</script:endpoints>						
+						</script:endpoints>
 					</script:component>
 				</sm:component>
 			</sm:activationSpec>
 		</sm:activationSpecs>
 	</sm:container>
-	
-	<script:exchangeHelper id="groovyExchangeHelper">		
-		<constructor-arg ref="groovyEndpoint"/>
-	</script:exchangeHelper>
-	
-	<script:exchangeHelper id="rubyExchangeHelper">		
-		<constructor-arg ref="rubyEndpoint"/>
-	</script:exchangeHelper>
 
-	<lang:groovy
-		id="groovyExchangeProcessor"
+	<script:exchangeHelper id="groovyExchangeHelper" singleton="true" />
+
+	<script:exchangeHelper id="jrubyExchangeHelper" singleton="true" />
+
+	<lang:groovy id="groovyExchangeProcessor"
 		script-source="classpath:GroovyExchangeProcessor.groovy">
 		<lang:property name="exchangeHelper" ref="groovyExchangeHelper" />
 	</lang:groovy>
-	
-	<lang:jruby
-		id="rubyExchangeProcessor"
+
+	<lang:jruby id="jrubyExchangeProcessor"
 		script-interfaces="org.apache.servicemix.common.ExchangeProcessor"
 		script-source="classpath:RubyExchangeProcessor.rb">
-		<lang:property name="exchangeHelper" value="rubyExchangeHelper" />
-	</lang:jruby>
-
+		<lang:property name="exchangeHelper" ref="jrubyExchangeHelper" />
+	</lang:jruby>
+
 </beans>