Author: davsclaus
Date: Sun Sep 21 11:30:03 2008
New Revision: 697576
URL: http://svn.apache.org/viewvc?rev=697576&view=rev
Log:
CAMEL-926: beanShell added to script builder and fixed groovy unit test
Modified:
activemq/camel/trunk/components/camel-script/pom.xml
activemq/camel/trunk/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/GroovyScriptRouteTest.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/JavaScriptExpressionTest.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/Jsr223Test.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyExpressionTest.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/JavaScriptLanguageTest.java
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
Modified: activemq/camel/trunk/components/camel-script/pom.xml
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/pom.xml?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-script/pom.xml (original)
+++ activemq/camel/trunk/components/camel-script/pom.xml Sun Sep 21 11:30:03
2008
@@ -20,154 +20,173 @@
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0">
- <modelVersion>4.0.0</modelVersion>
+ <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-parent</artifactId>
- <version>1.5-SNAPSHOT</version>
- </parent>
-
- <artifactId>camel-script</artifactId>
- <packaging>bundle</packaging>
- <name>Camel :: Script</name>
- <description>Camel Script support</description>
-
- <properties>
-
<camel.osgi.export.pkg>org.apache.camel.builder.script.*</camel.osgi.export.pkg>
- </properties>
-
- <repositories>
- <!-- SMX Repository is more up to date than LogicBlaze repo -->
- <repository>
- <id>servicemix.apache.svn</id>
- <name>ServiceMix Repository</name>
- <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
- </repository>
- <repository>
- <id>codehause.mule-deps</id>
- <name>Codehause Mule Dependencies Repository</name>
- <url>http://dist.codehaus.org/mule/dependencies/maven2</url>
- </repository>
- </repositories>
-
- <dependencies>
-
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-core</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.springframework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring-version}</version>
- </dependency>
-
- <!-- ServiceMix Repo Script Engines -->
- <dependency>
- <groupId>com.sun.script</groupId>
- <artifactId>groovy-engine</artifactId>
- <version>20080611</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.sun.script</groupId>
- <artifactId>js-engine</artifactId>
- <version>20080611</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.sun.script</groupId>
- <artifactId>jython-engine</artifactId>
- <version>20080611</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>com.sun.script</groupId>
- <artifactId>jruby-engine</artifactId>
- <version>20080611</version>
- <scope>test</scope>
- </dependency>
-
- <!-- testing -->
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-core</artifactId>
- <type>test-jar</type>
- <optional>true</optional>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.apache.camel</groupId>
- <artifactId>camel-spring</artifactId>
- <scope>test</scope>
- <optional>true</optional>
- </dependency>
-
- <dependency>
- <groupId>rhino</groupId>
- <artifactId>js</artifactId>
- <version>1.6R7</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.python</groupId>
- <artifactId>jython</artifactId>
- <version>2.2.1</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>org.codehaus.groovy</groupId>
- <artifactId>groovy-all</artifactId>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>javax.script</groupId>
- <artifactId>script-api</artifactId>
- <version>1.0</version>
- </dependency>
-
- <dependency>
- <groupId>org.jruby</groupId>
- <artifactId>jruby</artifactId>
- <version>1.1.4</version>
- <scope>test</scope>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
- <build>
- <plugins>
- <plugin>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <forkMode>pertest</forkMode>
- <childDelegation>false</childDelegation>
- <useFile>true</useFile>
- <includes>
- <include>**/*Test.*</include>
- </includes>
- </configuration>
- </plugin>
- </plugins>
- </build>
+ <parent>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-parent</artifactId>
+ <version>1.5-SNAPSHOT</version>
+ </parent>
+
+ <artifactId>camel-script</artifactId>
+ <packaging>bundle</packaging>
+ <name>Camel :: Script</name>
+ <description>Camel Script support</description>
+
+ <properties>
+
<camel.osgi.export.pkg>org.apache.camel.builder.script.*</camel.osgi.export.pkg>
+ </properties>
+
+ <repositories>
+ <!-- SMX Repository is more up to date than LogicBlaze repo -->
+ <repository>
+ <id>servicemix.apache.svn</id>
+ <name>ServiceMix Repository</name>
+ <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
+ </repository>
+ <repository>
+ <id>codehause.mule-deps</id>
+ <name>Codehause Mule Dependencies Repository</name>
+ <url>http://dist.codehaus.org/mule/dependencies/maven2</url>
+ </repository>
+ </repositories>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-core</artifactId>
+ <version>${spring-version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.script</groupId>
+ <artifactId>script-api</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ </dependency>
+
+ <!-- ServiceMix Repo Script Engines -->
+ <dependency>
+ <groupId>com.sun.script</groupId>
+ <artifactId>groovy-engine</artifactId>
+ <version>20080611</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.script</groupId>
+ <artifactId>js-engine</artifactId>
+ <version>20080611</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.script</groupId>
+ <artifactId>jython-engine</artifactId>
+ <version>20080611</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.script</groupId>
+ <artifactId>jruby-engine</artifactId>
+ <version>20080611</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>com.sun.script</groupId>
+ <artifactId>bsh-engine</artifactId>
+ <version>20080611</version>
+ <scope>test</scope>
+ </dependency>
+
+ <!-- testing -->
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-core</artifactId>
+ <type>test-jar</type>
+ <optional>true</optional>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.camel</groupId>
+ <artifactId>camel-spring</artifactId>
+ <scope>test</scope>
+ <optional>true</optional>
+ </dependency>
+
+ <dependency>
+ <groupId>rhino</groupId>
+ <artifactId>js</artifactId>
+ <version>1.6R7</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.python</groupId>
+ <artifactId>jython</artifactId>
+ <version>2.2.1</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jruby</groupId>
+ <artifactId>jruby</artifactId>
+ <version>1.1.4</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.beanshell</groupId>
+ <artifactId>bsh</artifactId>
+ <version>2.0b4</version>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>log4j</groupId>
+ <artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <forkMode>pertest</forkMode>
+ <childDelegation>false</childDelegation>
+ <useFile>true</useFile>
+ <includes>
+ <include>**/*Test.*</include>
+ </includes>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
Modified:
activemq/camel/trunk/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/main/java/org/apache/camel/builder/script/ScriptBuilder.java
Sun Sep 21 11:30:03 2008
@@ -156,6 +156,49 @@
return new ScriptBuilder(language, new UrlResource(scriptURL));
}
+ // Beanshell
+ //
-------------------------------------------------------------------------
+
+ /**
+ * Creates a script builder for the BeanShell script contents
+ *
+ * @param scriptText the script text to be evaluted
+ * @return the builder
+ */
+ public static ScriptBuilder beanShell(String scriptText) {
+ return new ScriptBuilder("beanshell", scriptText);
+ }
+
+ /**
+ * Creates a script builder for the BeanShell script [EMAIL PROTECTED]
Resource}
+ *
+ * @param scriptResource the resource used to load the script
+ * @return the builder
+ */
+ public static ScriptBuilder beanShell(Resource scriptResource) {
+ return new ScriptBuilder("beanshell", scriptResource);
+ }
+
+ /**
+ * Creates a script builder for the BeanShell script [EMAIL PROTECTED]
File}
+ *
+ * @param scriptFile the file used to load the script
+ * @return the builder
+ */
+ public static ScriptBuilder beanShell(File scriptFile) {
+ return new ScriptBuilder("beanshell", new
FileSystemResource(scriptFile));
+ }
+
+ /**
+ * Creates a script builder for the BeanShell script [EMAIL PROTECTED] URL}
+ *
+ * @param scriptURL the URL used to load the script
+ * @return the builder
+ */
+ public static ScriptBuilder beanShell(URL scriptURL) {
+ return new ScriptBuilder("beanshell", new UrlResource(scriptURL));
+ }
+
// Groovy
//
-------------------------------------------------------------------------
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/GroovyScriptRouteTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/GroovyScriptRouteTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/GroovyScriptRouteTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/GroovyScriptRouteTest.java
Sun Sep 21 11:30:03 2008
@@ -18,7 +18,7 @@
import org.apache.camel.ContextTestSupport;
import org.apache.camel.builder.RouteBuilder;
-import static org.apache.camel.builder.script.ScriptBuilder.groovy;
+import org.apache.camel.component.mock.MockEndpoint;
/**
* Unit test for a Groovy script based on end-user question.
@@ -26,19 +26,19 @@
public class GroovyScriptRouteTest extends ContextTestSupport {
public void testGroovyScript() throws Exception {
- //TODO: fix me
- //MockEndpoint mock = getMockEndpoint("mock:result");
- //mock.expectedHeaderReceived("foo", "Hello World");
+ MockEndpoint mock = getMockEndpoint("mock:result");
+ mock.expectedBodiesReceived("Hello World");
+ mock.expectedHeaderReceived("foo", "Hello World");
- //template.sendBodyAndHeader("seda:a", "Hello World", "foo", "London");
+ template.sendBodyAndHeader("seda:a", "Hello World", "foo", "London");
- //mock.assertIsSatisfied();
+ mock.assertIsSatisfied();
}
protected RouteBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
public void configure() throws Exception {
- from("seda:a").setHeader("foo",
groovy("request.body")).to("mock:result");
+
from("seda:a").setHeader("foo").groovy("request.body").to("mock:result");
}
};
}
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/JavaScriptExpressionTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/JavaScriptExpressionTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/JavaScriptExpressionTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/JavaScriptExpressionTest.java
Sun Sep 21 11:30:03 2008
@@ -20,7 +20,6 @@
import java.util.Map;
import org.apache.camel.ContextTestSupport;
-import org.apache.camel.Endpoint;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
@@ -28,8 +27,9 @@
* Tests a routing expression using JavaScript
*/
public class JavaScriptExpressionTest extends ContextTestSupport {
+
public void testSendMatchingMessage() throws Exception {
- // Currently, this test fails because the JavaScript expression in
createRouteBuilder
+ // TODO Currently, this test fails because the JavaScript expression
in createRouteBuilder
// below returns false
// To fix that, we need to figure out how to get the expression to
return the right value
MockEndpoint mock = getMockEndpoint("mock:result");
@@ -42,7 +42,7 @@
sendBody("direct:start", "hello", headers);
assertEquals("Should get the message header here",
mock.getExchanges().get(0).getIn().getHeader("foo"), "bar");
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
public void testSendNonMatchingMessage() throws Exception {
@@ -53,7 +53,7 @@
headers.put("foo", "foo");
sendBody("direct:start", "hello", headers);
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
protected RouteBuilder createRouteBuilder() throws Exception {
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/Jsr223Test.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/Jsr223Test.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/Jsr223Test.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/Jsr223Test.java
Sun Sep 21 11:30:03 2008
@@ -17,7 +17,6 @@
package org.apache.camel.builder.script;
import javax.script.ScriptEngine;
-import javax.script.ScriptEngineFactory;
import javax.script.ScriptEngineManager;
import junit.framework.TestCase;
@@ -26,7 +25,8 @@
* @version $Revision$
*/
public class Jsr223Test extends TestCase {
- private static String [] scriptNames = {"groovy", "js", "python", "ruby",
"javascript"};
+ private static String [] scriptNames = {"beanshell", "groovy", "js",
"python", "ruby", "javascript"};
+
public void testLanguageNames() throws Exception {
ScriptEngineManager manager = new ScriptEngineManager();
for (String scriptName : scriptNames) {
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/PythonExpressionTest.java
Sun Sep 21 11:30:03 2008
@@ -26,6 +26,7 @@
* Tests a routing expression using Python
*/
public class PythonExpressionTest extends ContextTestSupport {
+
public void testSendMatchingMessage() throws Exception {
getMockEndpoint("mock:result").expectedMessageCount(1);
getMockEndpoint("mock:unmatched").expectedMessageCount(0);
@@ -34,7 +35,7 @@
headers.put("foo", "bar");
sendBody("direct:start", "hello", headers);
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
public void testSendNonMatchingMessage() throws Exception {
@@ -45,7 +46,7 @@
headers.put("foo", "foo");
sendBody("direct:start", "hello", headers);
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
protected RouteBuilder createRouteBuilder() throws Exception {
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyExpressionTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyExpressionTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyExpressionTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/builder/script/RubyExpressionTest.java
Sun Sep 21 11:30:03 2008
@@ -26,6 +26,7 @@
* Tests a routing expression using Ruby
*/
public class RubyExpressionTest extends ContextTestSupport {
+
public void testSendMatchingMessage() throws Exception {
getMockEndpoint("mock:result").expectedMessageCount(1);
getMockEndpoint("mock:unmatched").expectedMessageCount(0);
@@ -34,7 +35,7 @@
headers.put("foo", "bar");
sendBody("direct:start", "hello", headers);
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
public void testSendNonMatchingMessage() throws Exception {
@@ -45,7 +46,7 @@
headers.put("foo", "foo");
sendBody("direct:start", "hello", headers);
- assertMockEndpointsSatisifed();
+ assertMockEndpointsSatisfied();
}
protected RouteBuilder createRouteBuilder() throws Exception {
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/JavaScriptLanguageTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/JavaScriptLanguageTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/JavaScriptLanguageTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/JavaScriptLanguageTest.java
Sun Sep 21 11:30:03 2008
@@ -22,11 +22,11 @@
* @version $Revision$
*/
public class JavaScriptLanguageTest extends LanguageTestSupport {
+
public void testLanguageExpressions() throws Exception {
assertExpression("exchange.getIn()", "Message: <hello
id='m123'>world!</hello>");
assertExpression("exchange.getIn().body", "<hello
id='m123'>world!</hello>");
assertExpression("request.headers.get('foo')", "abc");
-
}
protected String getLanguageName() {
Modified:
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
URL:
http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java?rev=697576&r1=697575&r2=697576&view=diff
==============================================================================
---
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
(original)
+++
activemq/camel/trunk/components/camel-script/src/test/java/org/apache/camel/language/script/PythonLanguageTest.java
Sun Sep 21 11:30:03 2008
@@ -22,6 +22,7 @@
* @version $Revision$
*/
public class PythonLanguageTest extends LanguageTestSupport {
+
public void testLanguageExpressions() throws Exception {
assertExpression("exchange.in.headers", "{foo=abc, bar=123}");
assertExpression("exchange.in", "Message: <hello
id='m123'>world!</hello>");