You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by js...@apache.org on 2007/09/12 13:56:21 UTC

svn commit: r574897 - in /activemq/camel/trunk/components/camel-groovy: ./ src/main/java/org/apache/camel/groovy/ src/test/java/org/apache/camel/groovy/ src/test/resources/org/apache/camel/groovy/example/

Author: jstrachan
Date: Wed Sep 12 04:56:19 2007
New Revision: 574897

URL: http://svn.apache.org/viewvc?rev=574897&view=rev
Log:
improved groovy support - which depends on GROOVY-2116 being applied

Added:
    activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java   (with props)
Removed:
    activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyNodeFactory.java
    activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteType.java
Modified:
    activemq/camel/trunk/components/camel-groovy/pom.xml
    activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteBuilder.java
    activemq/camel/trunk/components/camel-groovy/src/test/java/org/apache/camel/groovy/GroovyTest.java
    activemq/camel/trunk/components/camel-groovy/src/test/resources/org/apache/camel/groovy/example/GroovyRoutes.groovy

Modified: activemq/camel/trunk/components/camel-groovy/pom.xml
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-groovy/pom.xml?rev=574897&r1=574896&r2=574897&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-groovy/pom.xml (original)
+++ activemq/camel/trunk/components/camel-groovy/pom.xml Wed Sep 12 04:56:19 2007
@@ -47,7 +47,7 @@
       <artifactId>spring</artifactId>
     </dependency>
     <dependency>
-      <groupId>groovy</groupId>
+      <groupId>org.codehaus.groovy</groupId>
       <artifactId>groovy-all</artifactId>
     </dependency>
 

Added: activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java?rev=574897&view=auto
==============================================================================
--- activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java (added)
+++ activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java Wed Sep 12 04:56:19 2007
@@ -0,0 +1,57 @@
+/**
+ *
+ * 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.camel.groovy;
+
+import groovy.lang.Closure;
+import org.apache.camel.Exchange;
+import org.apache.camel.impl.ExpressionSupport;
+import org.apache.camel.model.ChoiceType;
+import org.apache.camel.model.FilterType;
+import org.apache.camel.model.ProcessorType;
+
+/**
+ * @version $Revision: 1.1 $
+ */
+public class CamelGroovyMethods {
+
+    public static FilterType filter(ProcessorType self, Closure filter) {
+        return self.filter(toExpression(filter));
+    }
+
+    public static ChoiceType when(ChoiceType self, Closure filter) {
+        return self.when(toExpression(filter));
+    }
+
+    public static ExpressionSupport toExpression(final Closure filter) {
+        return new ExpressionSupport<Exchange>() {
+            protected String assertionFailureMessage(Exchange exchange) {
+                return filter.toString();
+            }
+
+            public Object evaluate(Exchange exchange) {
+                return filter.call(exchange);
+            }
+
+            @Override
+            public String toString() {
+                return "Groovy[" + filter + "]";
+            }
+        };
+    }
+
+}

Propchange: activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/CamelGroovyMethods.java
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteBuilder.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteBuilder.java?rev=574897&r1=574896&r2=574897&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteBuilder.java (original)
+++ activemq/camel/trunk/components/camel-groovy/src/main/java/org/apache/camel/groovy/GroovyRouteBuilder.java Wed Sep 12 04:56:19 2007
@@ -19,28 +19,15 @@
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.RouteType;
-import org.apache.camel.model.RoutesType;
 
 /**
  * @version $Revision: 1.1 $
  */
 public abstract class GroovyRouteBuilder extends RouteBuilder {
     public GroovyRouteBuilder() {
-        init();
     }
 
     public GroovyRouteBuilder(CamelContext context) {
         super(context);
-        init();
-    }
-
-    private void init() {
-        setRouteCollection(new RoutesType() {
-            @Override
-            protected RouteType createRoute() {
-                return new GroovyRouteType();
-            }
-        });
     }
 }

Modified: activemq/camel/trunk/components/camel-groovy/src/test/java/org/apache/camel/groovy/GroovyTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-groovy/src/test/java/org/apache/camel/groovy/GroovyTest.java?rev=574897&r1=574896&r2=574897&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-groovy/src/test/java/org/apache/camel/groovy/GroovyTest.java (original)
+++ activemq/camel/trunk/components/camel-groovy/src/test/java/org/apache/camel/groovy/GroovyTest.java Wed Sep 12 04:56:19 2007
@@ -18,10 +18,15 @@
 package org.apache.camel.groovy;
 
 import groovy.lang.GroovyClassLoader;
+import groovy.lang.MetaClassRegistry;
+import groovy.lang.MetaClass;
+import groovy.lang.Closure;
+import groovy.lang.ProxyMetaClass;
 import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
+import org.apache.camel.model.ProcessorType;
 
 /**
  * @version $Revision: 1.1 $
@@ -52,6 +57,14 @@
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext answer = super.createCamelContext();
+
+/*
+        MetaClassRegistry metaClassRegistry = MetaClassRegistry.getInstance(MetaClassRegistry.LOAD_DEFAULT);
+        MetaClass metaClass = metaClassRegistry.getMetaClass(ProcessorType.class);
+        metaClass = new ProxyMetaClass(metaClassRegistry, ProcessorType.class, metaClass);
+        metaClass.addNewInstanceMethod(CamelGroovyMethods.class.getMethod("filter", ProcessorType.class, Closure.class));
+        metaClassRegistry.setMetaClass(ProcessorType.class, metaClass);
+*/
 
         GroovyClassLoader classLoader = new GroovyClassLoader();
         Class<?> type = classLoader.loadClass(groovyBuilderClass);

Modified: activemq/camel/trunk/components/camel-groovy/src/test/resources/org/apache/camel/groovy/example/GroovyRoutes.groovy
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-groovy/src/test/resources/org/apache/camel/groovy/example/GroovyRoutes.groovy?rev=574897&r1=574896&r2=574897&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-groovy/src/test/resources/org/apache/camel/groovy/example/GroovyRoutes.groovy (original)
+++ activemq/camel/trunk/components/camel-groovy/src/test/resources/org/apache/camel/groovy/example/GroovyRoutes.groovy Wed Sep 12 04:56:19 2007
@@ -1,12 +1,14 @@
-package org.apache.camel.groovy.example;
+package org.apache.camel.groovy.example
 
-import org.apache.camel.groovy.GroovyRouteBuilder
+import org.apache.camel.groovy.GroovyRouteBuilder;
 
 class GroovyRoutes extends GroovyRouteBuilder {
-    protected void configure() {
 
-        from("direct:a").filter { e ->
-          e.in.headers.foo == "bar"
-        }.to("mock:results")
-    }
+  void configure() {
+
+    from("direct:a").filter {e ->
+      e.in.headers.foo == "bar"
+    }.to("mock:results")
+
+  }
 }