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")
+
+ }
}