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>