Repository: camel Updated Branches: refs/heads/camel-2.16.x 47c9c416b -> 1cc925e76
CAMEL-9488: Camel script - Add missing languages. Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/66991413 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/66991413 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/66991413 Branch: refs/heads/camel-2.16.x Commit: 669914139b8d34723bcf7851f6b2f27255508b18 Parents: 47c9c41 Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Jan 6 19:06:17 2016 +0100 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Thu Mar 17 09:33:24 2016 +0100 ---------------------------------------------------------------------- .../component/language/LanguageEndpoint.java | 2 +- .../builder/script/JavaScriptLanguage.java | 46 ++++++++++++++++++ .../camel/builder/script/PhpLanguage.java | 46 ++++++++++++++++++ .../camel/builder/script/PythonLanguage.java | 46 ++++++++++++++++++ .../camel/builder/script/RubyLanguage.java | 46 ++++++++++++++++++ .../org/apache/camel/language/javaScript | 18 +++++++ .../services/org/apache/camel/language/php | 18 +++++++ .../services/org/apache/camel/language/python | 18 +++++++ .../services/org/apache/camel/language/ruby | 18 +++++++ .../LanguageECMAScriptAsJavaScriptTest.java | 51 -------------------- 10 files changed, 257 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java index 9bacf5b..b69bc58 100644 --- a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java +++ b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java @@ -47,7 +47,7 @@ public class LanguageEndpoint extends ResourceEndpoint { private Language language; private Expression expression; private boolean contentResolvedFromResource; - @UriPath(enums = "bean,constant,el,exchangeProperty,file,groovy,header,jsonpath,jxpath,mvel,ognl,ref,simple,spel,sql,terser,tokenize,xpath,xquery,xtokenize") @Metadata(required = "true") + @UriPath(enums = "bean,constant,el,exchangeProperty,file,groovy,header,javascript,jsonpath,jxpath,mvel,ognl,php,python,ref,ruby,simple,spel,sql,terser,tokenize,xpath,xquery,xtokenize") @Metadata(required = "true") private String languageName; // resourceUri is optional in the language endpoint @UriPath(description = "Path to the resource, or a reference to lookup a bean in the Registry to use as the resource") @Metadata(required = "false") http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/java/org/apache/camel/builder/script/JavaScriptLanguage.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/java/org/apache/camel/builder/script/JavaScriptLanguage.java b/components/camel-script/src/main/java/org/apache/camel/builder/script/JavaScriptLanguage.java new file mode 100644 index 0000000..eafbe22 --- /dev/null +++ b/components/camel-script/src/main/java/org/apache/camel/builder/script/JavaScriptLanguage.java @@ -0,0 +1,46 @@ +/** + * 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 + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> + * 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.builder.script; + +import org.apache.camel.Expression; +import org.apache.camel.Predicate; +import org.apache.camel.spi.Language; +import org.apache.camel.support.LanguageSupport; + +public class JavaScriptLanguage extends LanguageSupport { + + @Override + public Predicate createPredicate(String predicate) { + Language language = getCamelContext().resolveLanguage("js"); + if (language != null) { + return language.createPredicate(predicate); + } else { + return null; + } + } + + @Override + public Expression createExpression(String expression) { + Language language = getCamelContext().resolveLanguage("js"); + if (language != null) { + return language.createExpression(expression); + } else { + return null; + } + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/java/org/apache/camel/builder/script/PhpLanguage.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/java/org/apache/camel/builder/script/PhpLanguage.java b/components/camel-script/src/main/java/org/apache/camel/builder/script/PhpLanguage.java new file mode 100644 index 0000000..be2a5ce --- /dev/null +++ b/components/camel-script/src/main/java/org/apache/camel/builder/script/PhpLanguage.java @@ -0,0 +1,46 @@ +/** + * 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 + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> + * 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.builder.script; + +import org.apache.camel.Expression; +import org.apache.camel.Predicate; +import org.apache.camel.spi.Language; +import org.apache.camel.support.LanguageSupport; + +public class PhpLanguage extends LanguageSupport { + + @Override + public Predicate createPredicate(String predicate) { + Language language = getCamelContext().resolveLanguage("php"); + if (language != null) { + return language.createPredicate(predicate); + } else { + return null; + } + } + + @Override + public Expression createExpression(String expression) { + Language language = getCamelContext().resolveLanguage("php"); + if (language != null) { + return language.createExpression(expression); + } else { + return null; + } + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/java/org/apache/camel/builder/script/PythonLanguage.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/java/org/apache/camel/builder/script/PythonLanguage.java b/components/camel-script/src/main/java/org/apache/camel/builder/script/PythonLanguage.java new file mode 100644 index 0000000..9dfb288 --- /dev/null +++ b/components/camel-script/src/main/java/org/apache/camel/builder/script/PythonLanguage.java @@ -0,0 +1,46 @@ +/** + * 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 + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> + * 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.builder.script; + +import org.apache.camel.Expression; +import org.apache.camel.Predicate; +import org.apache.camel.spi.Language; +import org.apache.camel.support.LanguageSupport; + +public class PythonLanguage extends LanguageSupport { + + @Override + public Predicate createPredicate(String predicate) { + Language language = getCamelContext().resolveLanguage("python"); + if (language != null) { + return language.createPredicate(predicate); + } else { + return null; + } + } + + @Override + public Expression createExpression(String expression) { + Language language = getCamelContext().resolveLanguage("python"); + if (language != null) { + return language.createExpression(expression); + } else { + return null; + } + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/java/org/apache/camel/builder/script/RubyLanguage.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/java/org/apache/camel/builder/script/RubyLanguage.java b/components/camel-script/src/main/java/org/apache/camel/builder/script/RubyLanguage.java new file mode 100644 index 0000000..5f95a88 --- /dev/null +++ b/components/camel-script/src/main/java/org/apache/camel/builder/script/RubyLanguage.java @@ -0,0 +1,46 @@ +/** + * 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 + * <p/> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p/> + * 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.builder.script; + +import org.apache.camel.Expression; +import org.apache.camel.Predicate; +import org.apache.camel.spi.Language; +import org.apache.camel.support.LanguageSupport; + +public class RubyLanguage extends LanguageSupport { + + @Override + public Predicate createPredicate(String predicate) { + Language language = getCamelContext().resolveLanguage("jruby"); + if (language != null) { + return language.createPredicate(predicate); + } else { + return null; + } + } + + @Override + public Expression createExpression(String expression) { + Language language = getCamelContext().resolveLanguage("jruby"); + if (language != null) { + return language.createExpression(expression); + } else { + return null; + } + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/javaScript ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/javaScript b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/javaScript new file mode 100644 index 0000000..8051107 --- /dev/null +++ b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/javaScript @@ -0,0 +1,18 @@ +# +# 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. +# + +class=org.apache.camel.builder.script.JavaScriptLanguage \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/php ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/php b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/php new file mode 100644 index 0000000..f708b18 --- /dev/null +++ b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/php @@ -0,0 +1,18 @@ +# +# 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. +# + +class=org.apache.camel.builder.script.PhpLanguage \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/python ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/python b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/python new file mode 100644 index 0000000..01db3cb --- /dev/null +++ b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/python @@ -0,0 +1,18 @@ +# +# 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. +# + +class=org.apache.camel.builder.script.PythonLanguage \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/ruby ---------------------------------------------------------------------- diff --git a/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/ruby b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/ruby new file mode 100644 index 0000000..0a8efcd --- /dev/null +++ b/components/camel-script/src/main/resources/META-INF/services/org/apache/camel/language/ruby @@ -0,0 +1,18 @@ +# +# 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. +# + +class=org.apache.camel.builder.script.RubyLanguage \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/66991413/components/camel-script/src/test/java/org/apache/camel/builder/script/LanguageECMAScriptAsJavaScriptTest.java ---------------------------------------------------------------------- diff --git a/components/camel-script/src/test/java/org/apache/camel/builder/script/LanguageECMAScriptAsJavaScriptTest.java b/components/camel-script/src/test/java/org/apache/camel/builder/script/LanguageECMAScriptAsJavaScriptTest.java deleted file mode 100644 index 0c214ab..0000000 --- a/components/camel-script/src/test/java/org/apache/camel/builder/script/LanguageECMAScriptAsJavaScriptTest.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * 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.builder.script; - -import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.component.mock.MockEndpoint; -import org.apache.camel.test.junit4.CamelTestSupport; -import org.junit.Ignore; -import org.junit.Test; - -/** - * Tests a routing expression using ECMAScript which will be resolved as java script - */ -@Ignore("May fail on CI servers") -public class LanguageECMAScriptAsJavaScriptTest extends CamelTestSupport { - - @Test - public void testSendMatchingMessage() throws Exception { - MockEndpoint mock = getMockEndpoint("mock:result"); - mock.expectedBodiesReceived(7, 9); - - sendBody("direct:start", 3); - sendBody("direct:start", 4); - - assertMockEndpointsSatisfied(); - } - - protected RouteBuilder createRouteBuilder() throws Exception { - return new RouteBuilder() { - public void configure() throws Exception { - from("direct:start") - .to("language:ECMAScript:classpath:myJavascript.js") - .to("mock:result"); - } - }; - } -}