Author: pdodds
Date: Tue Oct  3 20:12:32 2006
New Revision: 452705

URL: http://svn.apache.org/viewvc?view=rev&rev=452705
Log:
Refactored to use just the ExchangeProcessor interface and updated to include 
the Ruby testcases

Added:
    
incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java
    incubator/servicemix/trunk/servicemix-script/src/main/resources/
    incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/
    
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/DISCLAIMER
    
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/LICENSE
    
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/NOTICE
Removed:
    
incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessor.java
Modified:
    incubator/servicemix/trunk/servicemix-script/pom.xml
    
incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeProcessorEndpoint.java
    
incubator/servicemix/trunk/servicemix-script/src/test/java/org/apache/servicemix/script/ScriptComponentTest.java
    
incubator/servicemix/trunk/servicemix-script/src/test/resources/GroovyExchangeProcessor.groovy
    
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/pom.xml
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/pom.xml?view=diff&rev=452705&r1=452704&r2=452705
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/pom.xml (original)
+++ incubator/servicemix/trunk/servicemix-script/pom.xml Tue Oct  3 20:12:32 
2006
@@ -1,98 +1,110 @@
 <?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.

+       

+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0";

+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";

+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
+       <modelVersion>4.0.0</modelVersion>
 
-    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.
+       <parent>
+               <groupId>org.apache.servicemix</groupId>
+               <artifactId>servicemix</artifactId>
+               <version>3.1-incubating-SNAPSHOT</version>
+       </parent>
 
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/maven-v4_0_0.xsd";>
-  <modelVersion>4.0.0</modelVersion>
-  
-  <parent>
-    <groupId>org.apache.servicemix</groupId>
-    <artifactId>servicemix</artifactId>
-    <version>3.1-incubating-SNAPSHOT</version>
-  </parent>
-  
-  <groupId>org.apache.servicemix</groupId>
-  <artifactId>servicemix-script</artifactId>
-  <packaging>jbi-component</packaging>
-  
-  <name>ServiceMix :: Scripting Service Engine</name>    
-       
-  <dependencies>
-  
-    <dependency>
-      <groupId>org.apache.servicemix</groupId>
-      <artifactId>servicemix-shared</artifactId>           
-    </dependency>
-    <dependency>
-      <groupId>org.apache.servicemix</groupId>
-      <artifactId>servicemix-core</artifactId>      
-      <scope>provided</scope>
-    </dependency>

-    <dependency>

-      <groupId>org.springframework</groupId>

-      <artifactId>spring</artifactId>      

-    </dependency>

-    <dependency>

-      <groupId>groovy</groupId>

-      <artifactId>groovy-all-1.0-jsr</artifactId>

-      <scope>test</scope>

-    </dependency>

-    <!-- <dependency>

-      <groupId>org.jruby</groupId>

-      <artifactId>jruby</artifactId>

-      <version>0.8.9</version>

-    </dependency> -->
-    
-    <dependency>
-      <groupId>junit</groupId>
-      <artifactId>junit</artifactId>
-      <version>3.8.1</version>
-      <scope>test</scope>
-    </dependency>
-  </dependencies>
-  <build>
-    <plugins>
-      <plugin>
-        <groupId>org.apache.servicemix.tooling</groupId>
-        <artifactId>jbi-maven-plugin</artifactId>   
-        <version>${servicemix-version}</version>     
-        <extensions>true</extensions>
-        <configuration>
-          <type>service-engine</type>
-          <component>org.apache.servicemix.MyComponent</component>
-        </configuration>
-      </plugin>
-      <plugin>
-        <groupId>org.apache.xbean</groupId>
-        <artifactId>maven-xbean-plugin</artifactId>
-        <version>${xbean-version}</version>
-        <executions>
-          <execution>
-            <configuration>
-              <namespace>http://org.apache.servicemix/script/1.0</namespace>
-            </configuration>
-            <goals>
-              <goal>mapping</goal>
-            </goals>
-          </execution>
-        </executions>
-      </plugin>
-    </plugins>
-  </build>
+       <groupId>org.apache.servicemix</groupId>
+       <artifactId>servicemix-script</artifactId>
+       <packaging>jbi-component</packaging>
+
+       <name>ServiceMix :: Scripting Service Engine</name>
+
+       <dependencies>
+
+               <dependency>
+                       <groupId>org.apache.servicemix</groupId>
+                       <artifactId>servicemix-shared</artifactId>
+               </dependency>
+               <dependency>
+                       <groupId>org.apache.servicemix</groupId>
+                       <artifactId>servicemix-core</artifactId>
+                       <scope>provided</scope>
+               </dependency>

+               <dependency>

+                       <groupId>org.springframework</groupId>

+                       <artifactId>spring</artifactId>

+               </dependency>

+               <dependency>

+                       <groupId>groovy</groupId>

+                       <artifactId>groovy-all-1.0-jsr</artifactId>

+                       <scope>test</scope>

+               </dependency>

+               <dependency>

+                       <groupId>org.jruby</groupId>

+                       <artifactId>jruby</artifactId>

+                       <version>0.8.3</version>

+                       <scope>test</scope>

+               </dependency>

+               <dependency>

+                       <groupId>cglib</groupId>

+                       <artifactId>cglib-nodep</artifactId>

+                       <version>2.1.3</version>

+                       <scope>test</scope>

+               </dependency>
+
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>3.8.1</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
+       <build>
+               <plugins>
+                       <plugin>
+                               <groupId>org.apache.servicemix.tooling</groupId>
+                               <artifactId>jbi-maven-plugin</artifactId>
+                               <version>${servicemix-version}</version>
+                               <extensions>true</extensions>
+                               <configuration>
+                                       <type>service-engine</type>
+                                       <component>
+                                               
org.apache.servicemix.MyComponent
+                                       </component>
+                               </configuration>
+                       </plugin>
+                       <plugin>
+                               <groupId>org.apache.xbean</groupId>
+                               <artifactId>maven-xbean-plugin</artifactId>
+                               <version>${xbean-version}</version>
+                               <executions>
+                                       <execution>
+                                               <configuration>
+                                                       <namespace>
+                                                               
http://org.apache.servicemix/script/1.0
+                                                       </namespace>
+                                               </configuration>
+                                               <goals>
+                                                       <goal>mapping</goal>
+                                               </goals>
+                                       </execution>
+                               </executions>
+                       </plugin>
+               </plugins>
+       </build>
 </project>

Added: 
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=auto&rev=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java
 (added)
+++ 
incubator/servicemix/trunk/servicemix-script/src/main/java/org/apache/servicemix/script/ScriptExchangeHelper.java
 Tue Oct  3 20:12:32 2006
@@ -0,0 +1,49 @@
+/*
+ * 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.
+ */
+package org.apache.servicemix.script;
+
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.MessagingException;
+
+/**
+ * This helper object can be injected into your scripts to allow to quick 
access
+ * to basic JBI operations
+ * 
+ * @org.apache.xbean.XBean element="exchangeHelper" description="ServiceMix
+ *                         Scripting Helper"
+ */
+public class ScriptExchangeHelper {
+
+       private ScriptExchangeProcessorEndpoint endpoint;
+
+       public ScriptExchangeHelper(ScriptExchangeProcessorEndpoint endpoint) {
+               this.endpoint = endpoint;
+       }
+
+       public void done(MessageExchange exchange) throws MessagingException {
+               endpoint.done(exchange);
+       }
+
+       public void fail(MessageExchange exchange, Exception exception)
+                       throws MessagingException {
+               endpoint.fail(exchange, exception);
+       }
+
+       public void send(MessageExchange exchange) throws MessagingException {
+               endpoint.send(exchange);
+       }
+}

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=452705&r1=452704&r2=452705
==============================================================================
--- 
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
 Tue Oct  3 20:12:32 2006
@@ -44,7 +44,7 @@
 
        private MessageExchangeFactory exchangeFactory;
 
-       private ScriptExchangeProcessor script;
+       private ExchangeProcessor implementation;
 
        public void activate() throws Exception {
                logger = this.serviceUnit.getComponent().getLogger();
@@ -89,13 +89,13 @@
                return Role.PROVIDER;
        }
 
-       public ScriptExchangeProcessor getScript() {
-               return script;
+       public ExchangeProcessor getImplementation() {
+               return implementation;
        }
 
        public void process(MessageExchange exchange) throws Exception {
-               if (script != null)
-                       script.process(exchange);
+               if (implementation != null)
+                       implementation.process(exchange);
 
        }
 
@@ -110,20 +110,19 @@
                }
        }
 
-       public void setScript(ScriptExchangeProcessor script) {
-               this.script = script;
-               script.setScriptExchangeProcessorEndpoint(this);
+       public void setImplementation(ExchangeProcessor implementation) {
+               this.implementation = implementation;           
        }
 
        public void start() throws Exception {
-               if (script != null)
-                       script.start();
+               if (implementation != null)
+                       implementation.start();
        }
 
        public void stop() {
-               if (script != null) {
+               if (implementation != null) {
                        try {
-                               script.stop();
+                               implementation.stop();
                        } catch (Exception e) {
                                e.printStackTrace();
                        }

Added: 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/DISCLAIMER
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/DISCLAIMER?view=auto&rev=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/DISCLAIMER
 (added)
+++ 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/DISCLAIMER
 Tue Oct  3 20:12:32 2006
@@ -0,0 +1,6 @@
+Apache ServiceMix is an effort undergoing incubation at the Apache Software 
Foundation (ASF), sponsored by the Geronimo PMC. 

+Incubation is required of all newly accepted projects until a further review 
indicates that the infrastructure, 

+communications, and decision making process have stabilized in a manner 
consistent with other successful ASF projects. 

+

+While incubation status is not necessarily a reflection of the completeness or 
stability of the code, it does 

+indicate that the project has yet to be fully endorsed by the ASF.


Added: 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/LICENSE
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/LICENSE?view=auto&rev=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/LICENSE
 (added)
+++ 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/LICENSE
 Tue Oct  3 20:12:32 2006
@@ -0,0 +1,203 @@
+

+                                 Apache License

+                           Version 2.0, January 2004

+                        http://www.apache.org/licenses/

+

+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

+

+   1. Definitions.

+

+      "License" shall mean the terms and conditions for use, reproduction,

+      and distribution as defined by Sections 1 through 9 of this document.

+

+      "Licensor" shall mean the copyright owner or entity authorized by

+      the copyright owner that is granting the License.

+

+      "Legal Entity" shall mean the union of the acting entity and all

+      other entities that control, are controlled by, or are under common

+      control with that entity. For the purposes of this definition,

+      "control" means (i) the power, direct or indirect, to cause the

+      direction or management of such entity, whether by contract or

+      otherwise, or (ii) ownership of fifty percent (50%) or more of the

+      outstanding shares, or (iii) beneficial ownership of such entity.

+

+      "You" (or "Your") shall mean an individual or Legal Entity

+      exercising permissions granted by this License.

+

+      "Source" form shall mean the preferred form for making modifications,

+      including but not limited to software source code, documentation

+      source, and configuration files.

+

+      "Object" form shall mean any form resulting from mechanical

+      transformation or translation of a Source form, including but

+      not limited to compiled object code, generated documentation,

+      and conversions to other media types.

+

+      "Work" shall mean the work of authorship, whether in Source or

+      Object form, made available under the License, as indicated by a

+      copyright notice that is included in or attached to the work

+      (an example is provided in the Appendix below).

+

+      "Derivative Works" shall mean any work, whether in Source or Object

+      form, that is based on (or derived from) the Work and for which the

+      editorial revisions, annotations, elaborations, or other modifications

+      represent, as a whole, an original work of authorship. For the purposes

+      of this License, Derivative Works shall not include works that remain

+      separable from, or merely link (or bind by name) to the interfaces of,

+      the Work and Derivative Works thereof.

+

+      "Contribution" shall mean any work of authorship, including

+      the original version of the Work and any modifications or additions

+      to that Work or Derivative Works thereof, that is intentionally

+      submitted to Licensor for inclusion in the Work by the copyright owner

+      or by an individual or Legal Entity authorized to submit on behalf of

+      the copyright owner. For the purposes of this definition, "submitted"

+      means any form of electronic, verbal, or written communication sent

+      to the Licensor or its representatives, including but not limited to

+      communication on electronic mailing lists, source code control systems,

+      and issue tracking systems that are managed by, or on behalf of, the

+      Licensor for the purpose of discussing and improving the Work, but

+      excluding communication that is conspicuously marked or otherwise

+      designated in writing by the copyright owner as "Not a Contribution."

+

+      "Contributor" shall mean Licensor and any individual or Legal Entity

+      on behalf of whom a Contribution has been received by Licensor and

+      subsequently incorporated within the Work.

+

+   2. Grant of Copyright License. Subject to the terms and conditions of

+      this License, each Contributor hereby grants to You a perpetual,

+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

+      copyright license to reproduce, prepare Derivative Works of,

+      publicly display, publicly perform, sublicense, and distribute the

+      Work and such Derivative Works in Source or Object form.

+

+   3. Grant of Patent License. Subject to the terms and conditions of

+      this License, each Contributor hereby grants to You a perpetual,

+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable

+      (except as stated in this section) patent license to make, have made,

+      use, offer to sell, sell, import, and otherwise transfer the Work,

+      where such license applies only to those patent claims licensable

+      by such Contributor that are necessarily infringed by their

+      Contribution(s) alone or by combination of their Contribution(s)

+      with the Work to which such Contribution(s) was submitted. If You

+      institute patent litigation against any entity (including a

+      cross-claim or counterclaim in a lawsuit) alleging that the Work

+      or a Contribution incorporated within the Work constitutes direct

+      or contributory patent infringement, then any patent licenses

+      granted to You under this License for that Work shall terminate

+      as of the date such litigation is filed.

+

+   4. Redistribution. You may reproduce and distribute copies of the

+      Work or Derivative Works thereof in any medium, with or without

+      modifications, and in Source or Object form, provided that You

+      meet the following conditions:

+

+      (a) You must give any other recipients of the Work or

+          Derivative Works a copy of this License; and

+

+      (b) You must cause any modified files to carry prominent notices

+          stating that You changed the files; and

+

+      (c) You must retain, in the Source form of any Derivative Works

+          that You distribute, all copyright, patent, trademark, and

+          attribution notices from the Source form of the Work,

+          excluding those notices that do not pertain to any part of

+          the Derivative Works; and

+

+      (d) If the Work includes a "NOTICE" text file as part of its

+          distribution, then any Derivative Works that You distribute must

+          include a readable copy of the attribution notices contained

+          within such NOTICE file, excluding those notices that do not

+          pertain to any part of the Derivative Works, in at least one

+          of the following places: within a NOTICE text file distributed

+          as part of the Derivative Works; within the Source form or

+          documentation, if provided along with the Derivative Works; or,

+          within a display generated by the Derivative Works, if and

+          wherever such third-party notices normally appear. The contents

+          of the NOTICE file are for informational purposes only and

+          do not modify the License. You may add Your own attribution

+          notices within Derivative Works that You distribute, alongside

+          or as an addendum to the NOTICE text from the Work, provided

+          that such additional attribution notices cannot be construed

+          as modifying the License.

+

+      You may add Your own copyright statement to Your modifications and

+      may provide additional or different license terms and conditions

+      for use, reproduction, or distribution of Your modifications, or

+      for any such Derivative Works as a whole, provided Your use,

+      reproduction, and distribution of the Work otherwise complies with

+      the conditions stated in this License.

+

+   5. Submission of Contributions. Unless You explicitly state otherwise,

+      any Contribution intentionally submitted for inclusion in the Work

+      by You to the Licensor shall be under the terms and conditions of

+      this License, without any additional terms or conditions.

+      Notwithstanding the above, nothing herein shall supersede or modify

+      the terms of any separate license agreement you may have executed

+      with Licensor regarding such Contributions.

+

+   6. Trademarks. This License does not grant permission to use the trade

+      names, trademarks, service marks, or product names of the Licensor,

+      except as required for reasonable and customary use in describing the

+      origin of the Work and reproducing the content of the NOTICE file.

+

+   7. Disclaimer of Warranty. Unless required by applicable law or

+      agreed to in writing, Licensor provides the Work (and each

+      Contributor provides its Contributions) on an "AS IS" BASIS,

+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or

+      implied, including, without limitation, any warranties or conditions

+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A

+      PARTICULAR PURPOSE. You are solely responsible for determining the

+      appropriateness of using or redistributing the Work and assume any

+      risks associated with Your exercise of permissions under this License.

+

+   8. Limitation of Liability. In no event and under no legal theory,

+      whether in tort (including negligence), contract, or otherwise,

+      unless required by applicable law (such as deliberate and grossly

+      negligent acts) or agreed to in writing, shall any Contributor be

+      liable to You for damages, including any direct, indirect, special,

+      incidental, or consequential damages of any character arising as a

+      result of this License or out of the use or inability to use the

+      Work (including but not limited to damages for loss of goodwill,

+      work stoppage, computer failure or malfunction, or any and all

+      other commercial damages or losses), even if such Contributor

+      has been advised of the possibility of such damages.

+

+   9. Accepting Warranty or Additional Liability. While redistributing

+      the Work or Derivative Works thereof, You may choose to offer,

+      and charge a fee for, acceptance of support, warranty, indemnity,

+      or other liability obligations and/or rights consistent with this

+      License. However, in accepting such obligations, You may act only

+      on Your own behalf and on Your sole responsibility, not on behalf

+      of any other Contributor, and only if You agree to indemnify,

+      defend, and hold each Contributor harmless for any liability

+      incurred by, or claims asserted against, such Contributor by reason

+      of your accepting any such warranty or additional liability.

+

+   END OF TERMS AND CONDITIONS

+

+   APPENDIX: How to apply the Apache License to your work.

+

+      To apply the Apache License to your work, attach the following

+      boilerplate notice, with the fields enclosed by brackets "[]"

+      replaced with your own identifying information. (Don't include

+      the brackets!)  The text should be enclosed in the appropriate

+      comment syntax for the file format. We also recommend that a

+      file or class name and description of purpose be included on the

+      same "printed page" as the copyright notice for easier

+      identification within third-party archives.

+

+   Copyright [yyyy] [name of copyright owner]

+

+   Licensed 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.

+


Added: 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/NOTICE
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/NOTICE?view=auto&rev=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/NOTICE 
(added)
+++ 
incubator/servicemix/trunk/servicemix-script/src/main/resources/META-INF/NOTICE 
Tue Oct  3 20:12:32 2006
@@ -0,0 +1,8 @@
+   =========================================================================

+   ==  NOTICE file for use with the Apache License, Version 2.0,          ==

+   ==  in this case for the Apache ServiceMix distribution.               ==

+   =========================================================================

+

+   This product contains software developed by

+   The Apache Software Foundation (http://www.apache.org/).

+


Modified: 
incubator/servicemix/trunk/servicemix-script/src/test/java/org/apache/servicemix/script/ScriptComponentTest.java
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/test/java/org/apache/servicemix/script/ScriptComponentTest.java?view=diff&rev=452705&r1=452704&r2=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/test/java/org/apache/servicemix/script/ScriptComponentTest.java
 (original)
+++ 
incubator/servicemix/trunk/servicemix-script/src/test/java/org/apache/servicemix/script/ScriptComponentTest.java
 Tue Oct  3 20:12:32 2006
@@ -48,10 +48,10 @@
         client.done(me);
     }
     
-    /*public void testRuby() throws Exception {
+    public void testRuby() throws Exception {
         DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
         InOut me = client.createInOutExchange();
-        me.setService(new QName("urn:test", "ruby"));
+        me.setService(new QName("urn:test", "jruby"));
         me.getInMessage().setContent(new StringSource("<hello>world</hello>"));
         client.sendSync(me);
         if (me.getStatus() == ExchangeStatus.ERROR) {
@@ -65,7 +65,7 @@
         }
         System.err.println(new 
SourceTransformer().toString(me.getOutMessage().getContent()));
         client.done(me);
-    }*/
+    }
     
     protected AbstractXmlApplicationContext createBeanFactory() {
         return new ClassPathXmlApplicationContext("spring.xml");

Modified: 
incubator/servicemix/trunk/servicemix-script/src/test/resources/GroovyExchangeProcessor.groovy
URL: 
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-script/src/test/resources/GroovyExchangeProcessor.groovy?view=diff&rev=452705&r1=452704&r2=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/test/resources/GroovyExchangeProcessor.groovy
 (original)
+++ 
incubator/servicemix/trunk/servicemix-script/src/test/resources/GroovyExchangeProcessor.groovy
 Tue Oct  3 20:12:32 2006
@@ -1,22 +1,25 @@
-import org.apache.servicemix.script.ScriptExchangeProcessor;

+import org.apache.servicemix.common.ExchangeProcessor;

 import javax.jbi.messaging.MessageExchange;

 import javax.jbi.messaging.NormalizedMessage;

 import org.apache.servicemix.jbi.jaxp.StringSource;

+import org.apache.servicemix.script.ScriptExchangeHelper;

 import org.apache.servicemix.jbi.jaxp.SourceTransformer;

 

-class GroovyExchangeProcessor extends ScriptExchangeProcessor {

+class GroovyExchangeProcessor implements ExchangeProcessor {

+

+    @Property ScriptExchangeHelper exchangeHelper;

 

        def void start() {

            println "Starting";

        }

 

-    def void process(javax.jbi.messaging.MessageExchange exchange) {

+    def void process(MessageExchange exchange) {

        def inputMessage = new 
SourceTransformer().toString(exchange.getInMessage().getContent());

        println "Hello, I got an input message "+inputMessage;

        NormalizedMessage out = exchange.createMessage();

         out.setContent(new StringSource("<world>hello</world>"));

         exchange.setMessage(out, "out");

-        send(exchange);        

+        exchangeHelper.send(exchange);         

     }

     

     def void stop() {


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=452705&r1=452704&r2=452705
==============================================================================
--- 
incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb
 (original)
+++ 
incubator/servicemix/trunk/servicemix-script/src/test/resources/RubyExchangeProcessor.rb
 Tue Oct  3 20:12:32 2006
@@ -1,19 +1,20 @@
 require 'java'

 

-include_class 'org.apache.servicemix.script.ScriptExchangeProcessor'

-include_class 'javax.jbi.messaging.MessageExchange'

-include_class 'javax.jbi.messaging.NormalizedMessage'

-include_class 'org.apache.servicemix.jbi.jaxp.StringSource'

-include_class 'org.apache.servicemix.jbi.jaxp.SourceTransformer'

+include_class 'org.apache.servicemix.common.ExchangeProcessor'

 

-class RubyExchangeProcessor < 
org.apache.servicemix.script.ScriptExchangeProcessor

+class RubyExchangeProcessor < ExchangeProcessor

+

+ def setExchangeHelper(exchangeHelper)

+  @@exchangeHelper = exchangeHelper

+ end

 

  def start()

    print "Starting"

  end

  

- def process(javax.jbi.messaging.MessageExchange me)

-   print "Processing "+me

+ def process(messageExchange)

+   print "Processing exchange in JRuby"

+   @@exchangeHelper.send messageExchange

  end

 

  def stop()


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=452705&r1=452704&r2=452705
==============================================================================
--- incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml 
(original)
+++ incubator/servicemix/trunk/servicemix-script/src/test/resources/spring.xml 
Tue Oct  3 20:12:32 2006
@@ -29,31 +29,42 @@
                                        <script:component>                      
                        
                                                <script:endpoints>

                                                        <!-- Groovy Endpoint  
-->
-                                                       
<script:exchangeProcessor

+                                                       
<script:exchangeProcessor id="groovyEndpoint"

                                                                
service="test:groovy" endpoint="endpoint">

-                                                               <property 
name="script" ref="groovyExchangeProcessor"/>

+                                                               <property 
name="implementation" ref="groovyExchangeProcessor"/>

                                                        
</script:exchangeProcessor>

                                                        

                                                        <!-- JRuby Endpoint  -->

-                                                       <!-- 
<script:exchangeProcessor

+                                                       
<script:exchangeProcessor id="rubyEndpoint"

                                                                
service="test:jruby" endpoint="endpoint">

-                                                               <property 
name="script" ref="rubyExchangeProcessor"/>

-                                                       
</script:exchangeProcessor>-->
+                                                               <property 
name="implementation" ref="rubyExchangeProcessor"/>

+                                                       
</script:exchangeProcessor>
                                                </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-source="classpath:GroovyExchangeProcessor.groovy">

+               <lang:property name="exchangeHelper" ref="groovyExchangeHelper" 
/>

        </lang:groovy>

        

-       <!-- <lang:jruby

+       <lang:jruby

                id="rubyExchangeProcessor"

+               
script-interfaces="org.apache.servicemix.common.ExchangeProcessor"

                script-source="classpath:RubyExchangeProcessor.rb">

-       </lang:jruby> -->
+               <lang:property name="exchangeHelper" value="rubyExchangeHelper" 
/>

+       </lang:jruby>
 
 </beans>


Reply via email to