First crack at todos in CAMEL-7997
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a344ba76 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a344ba76 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a344ba76 Branch: refs/heads/master Commit: a344ba760aa6eac7030e654cd9ec48ebc1366d8b Parents: 12f85a7 Author: Jyrki Ruuskanen <yur...@kotikone.fi> Authored: Mon Nov 10 20:52:06 2014 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Nov 11 15:48:51 2014 +0100 ---------------------------------------------------------------------- .../apache/camel/scr/AbstractCamelRunner.java | 16 ++- .../java/org/apache/camel/scr/ScrHelper.java | 108 ------------------- .../apache/camel/scr/internal/ScrHelper.java | 108 +++++++++++++++++++ .../camel/scr/AbstractCamelRunnerTest.java | 8 ++ tooling/archetypes/camel-archetype-scr/pom.xml | 5 +- .../META-INF/maven/archetype-metadata.xml | 3 - .../main/resources/archetype-resources/pom.xml | 60 +++-------- .../src/main/java/__className__.java | 38 +++---- .../main/java/internal/__className__Route.java | 20 ---- .../src/test/java/__className__Test.java | 25 +---- .../camel-scr-example/archetype.properties | 1 - 11 files changed, 168 insertions(+), 224 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java ---------------------------------------------------------------------- diff --git a/components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java b/components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java index e4d6e93..9d583e1 100644 --- a/components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java +++ b/components/camel-scr/src/main/java/org/apache/camel/scr/AbstractCamelRunner.java @@ -54,9 +54,8 @@ public abstract class AbstractCamelRunner implements Runnable { public static final String PROPERTY_PREFIX = "camel.scr.properties.prefix"; // Configured fields - // TODO: can we make these private and have getter/setter - public String camelContextId = "camel-runner-default"; - public volatile boolean active; + private String camelContextId = "camel-runner-default"; + private boolean active = false; protected Logger log = LoggerFactory.getLogger(getClass()); protected ModelCamelContext context; @@ -85,7 +84,7 @@ public abstract class AbstractCamelRunner implements Runnable { createCamelContext(bundleContext, props); // Configure fields from properties - configure(context, this, log); + configure(context, this, log, true); setupCamelContext(bundleContext, camelContextId); } @@ -236,11 +235,18 @@ public abstract class AbstractCamelRunner implements Runnable { } public static <T> T configure(final CamelContext context, final T target, final Logger log) { + return configure(context, target, log, false); + } + + public static <T> T configure(final CamelContext context, final T target, final Logger log, final boolean deep) { Class clazz = target.getClass(); log.debug("Configuring {}", clazz.getName()); Collection<Field> fields = new ArrayList<Field>(); fields.addAll(Arrays.asList(clazz.getDeclaredFields())); - fields.addAll(Arrays.asList(clazz.getFields())); + if (deep) { + fields.addAll(Arrays.asList(clazz.getFields())); + fields.addAll(Arrays.asList(clazz.getSuperclass().getDeclaredFields())); + } for (Field field : fields) { try { String propertyValue = context.resolvePropertyPlaceholders("{{" + field.getName() + "}}"); http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/components/camel-scr/src/main/java/org/apache/camel/scr/ScrHelper.java ---------------------------------------------------------------------- diff --git a/components/camel-scr/src/main/java/org/apache/camel/scr/ScrHelper.java b/components/camel-scr/src/main/java/org/apache/camel/scr/ScrHelper.java deleted file mode 100644 index d01d460..0000000 --- a/components/camel-scr/src/main/java/org/apache/camel/scr/ScrHelper.java +++ /dev/null @@ -1,108 +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.scr; - -import java.io.File; -import java.util.HashMap; -import java.util.Iterator; -import java.util.Map; -import javax.xml.XMLConstants; -import javax.xml.namespace.NamespaceContext; -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.xpath.XPath; -import javax.xml.xpath.XPathConstants; -import javax.xml.xpath.XPathExpression; -import javax.xml.xpath.XPathExpressionException; -import javax.xml.xpath.XPathFactory; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.w3c.dom.Document; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -/** - * Helper class. - */ -public final class ScrHelper { - - private static final Logger LOG = LoggerFactory.getLogger(ScrHelper.class); - - private ScrHelper() { - } - - public static Map<String, String> getScrProperties(String componentName) throws Exception { - return getScrProperties(String.format("target/classes/OSGI-INF/%s.xml", componentName), componentName); - } - - public static Map<String, String> getScrProperties(String xmlLocation, String componentName) throws Exception { - Map<String, String> result = new HashMap<String, String>(); - final Document dom = readXML(new File(xmlLocation)); - final XPath xPath = XPathFactory.newInstance(XPathFactory.DEFAULT_OBJECT_MODEL_URI, "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl", null).newXPath(); - xPath.setNamespaceContext(new NamespaceContext() { - @Override - public String getNamespaceURI(String prefix) { - switch (prefix) { - case "scr": - try { - XPathExpression scrNamespace = xPath.compile("/*/namespace::*[name()='scr']"); - Node node = (Node) scrNamespace.evaluate(dom, XPathConstants.NODE); - return node.getNodeValue(); - } catch (XPathExpressionException e) { - // ignore - LOG.debug("Error evaluating xpath to obtain namespace prefix. This exception is ignored and using namespace: http://www.osgi.org/xmlns/scr/v1.1.0", e); - - } - return "http://www.osgi.org/xmlns/scr/v1.1.0"; - default: - // noop - } - return XMLConstants.NULL_NS_URI; - } - - @Override - public String getPrefix(String namespaceURI) { - return null; - } - - @Override - public Iterator getPrefixes(String namespaceURI) { - return null; - } - }); - - String propertyListExpression = String.format("/components/scr:component[@name='%s']/property", componentName); - XPathExpression propertyList = xPath.compile(propertyListExpression); - XPathExpression propertyName = xPath.compile("@name"); - XPathExpression propertyValue = xPath.compile("@value"); - NodeList nodes = (NodeList) propertyList.evaluate(dom, XPathConstants.NODESET); - for (int i = 0; i < nodes.getLength(); i++) { - Node node = nodes.item(i); - result.put((String) propertyName.evaluate(node, XPathConstants.STRING), (String) propertyValue.evaluate(node, XPathConstants.STRING)); - } - return result; - } - - private static Document readXML(File xml) throws Exception { - DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); - builderFactory.setNamespaceAware(true); - DocumentBuilder builder = builderFactory.newDocumentBuilder(); - return builder.parse(xml); - } - -} http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/components/camel-scr/src/main/java/org/apache/camel/scr/internal/ScrHelper.java ---------------------------------------------------------------------- diff --git a/components/camel-scr/src/main/java/org/apache/camel/scr/internal/ScrHelper.java b/components/camel-scr/src/main/java/org/apache/camel/scr/internal/ScrHelper.java new file mode 100644 index 0000000..40a4770 --- /dev/null +++ b/components/camel-scr/src/main/java/org/apache/camel/scr/internal/ScrHelper.java @@ -0,0 +1,108 @@ +/** + * 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.scr.internal; + +import java.io.File; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import javax.xml.XMLConstants; +import javax.xml.namespace.NamespaceContext; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpression; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.w3c.dom.Document; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +/** + * Helper class. + */ +public final class ScrHelper { + + private static final Logger LOG = LoggerFactory.getLogger(ScrHelper.class); + + private ScrHelper() { + } + + public static Map<String, String> getScrProperties(String componentName) throws Exception { + return getScrProperties(String.format("target/classes/OSGI-INF/%s.xml", componentName), componentName); + } + + public static Map<String, String> getScrProperties(String xmlLocation, String componentName) throws Exception { + Map<String, String> result = new HashMap<String, String>(); + final Document dom = readXML(new File(xmlLocation)); + final XPath xPath = XPathFactory.newInstance(XPathFactory.DEFAULT_OBJECT_MODEL_URI, "com.sun.org.apache.xpath.internal.jaxp.XPathFactoryImpl", null).newXPath(); + xPath.setNamespaceContext(new NamespaceContext() { + @Override + public String getNamespaceURI(String prefix) { + switch (prefix) { + case "scr": + try { + XPathExpression scrNamespace = xPath.compile("/*/namespace::*[name()='scr']"); + Node node = (Node) scrNamespace.evaluate(dom, XPathConstants.NODE); + return node.getNodeValue(); + } catch (XPathExpressionException e) { + // ignore + LOG.debug("Error evaluating xpath to obtain namespace prefix. This exception is ignored and using namespace: http://www.osgi.org/xmlns/scr/v1.1.0", e); + + } + return "http://www.osgi.org/xmlns/scr/v1.1.0"; + default: + // noop + } + return XMLConstants.NULL_NS_URI; + } + + @Override + public String getPrefix(String namespaceURI) { + return null; + } + + @Override + public Iterator getPrefixes(String namespaceURI) { + return null; + } + }); + + String propertyListExpression = String.format("/components/scr:component[@name='%s']/property", componentName); + XPathExpression propertyList = xPath.compile(propertyListExpression); + XPathExpression propertyName = xPath.compile("@name"); + XPathExpression propertyValue = xPath.compile("@value"); + NodeList nodes = (NodeList) propertyList.evaluate(dom, XPathConstants.NODESET); + for (int i = 0; i < nodes.getLength(); i++) { + Node node = nodes.item(i); + result.put((String) propertyName.evaluate(node, XPathConstants.STRING), (String) propertyValue.evaluate(node, XPathConstants.STRING)); + } + return result; + } + + private static Document readXML(File xml) throws Exception { + DocumentBuilderFactory builderFactory = DocumentBuilderFactory.newInstance(); + builderFactory.setNamespaceAware(true); + DocumentBuilder builder = builderFactory.newDocumentBuilder(); + return builder.parse(xml); + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/components/camel-scr/src/test/java/org/apache/camel/scr/AbstractCamelRunnerTest.java ---------------------------------------------------------------------- diff --git a/components/camel-scr/src/test/java/org/apache/camel/scr/AbstractCamelRunnerTest.java b/components/camel-scr/src/test/java/org/apache/camel/scr/AbstractCamelRunnerTest.java index b6d9cbd..7d61846 100644 --- a/components/camel-scr/src/test/java/org/apache/camel/scr/AbstractCamelRunnerTest.java +++ b/components/camel-scr/src/test/java/org/apache/camel/scr/AbstractCamelRunnerTest.java @@ -27,6 +27,7 @@ import org.junit.runners.JUnit4; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -46,6 +47,13 @@ public class AbstractCamelRunnerTest { } @Test + public void testDeepConfigure() throws Exception { + ConcreteCamelRunner integration = new ConcreteCamelRunner(); + integration.activate(null, integration.getDefaultProperties()); + assertEquals("Overriding camelContextId failed (deep configure)", integration.getDefaultProperties().get("camelContextId"), integration.getContext().getName()); + } + + @Test public void testActivateDeactivate() { ConcreteCamelRunner integration = new ConcreteCamelRunner(); try { http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/pom.xml ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/pom.xml b/tooling/archetypes/camel-archetype-scr/pom.xml index d362b2e..164fccd 100644 --- a/tooling/archetypes/camel-archetype-scr/pom.xml +++ b/tooling/archetypes/camel-archetype-scr/pom.xml @@ -29,12 +29,11 @@ <groupId>org.apache.camel.archetypes</groupId> <artifactId>camel-archetype-scr</artifactId> <name>Camel :: Archetypes :: OSGi Service Component Runtime bundle</name> - <description>Creates a new Camel SCR bundle project for Red Hat JBoss Fuse 6.1.</description> + <description>Creates a new Camel SCR bundle project for Karaf</description> <packaging>maven-archetype</packaging> <properties> - <jboss-fuse-version>6.1.0.redhat-379</jboss-fuse-version> - <target-camel-version>2.12.0.redhat-610379</target-camel-version> + <target-camel-version>${project.version}</target-camel-version> </properties> <build> http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/main/resources-filtered/META-INF/maven/archetype-metadata.xml ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/main/resources-filtered/META-INF/maven/archetype-metadata.xml b/tooling/archetypes/camel-archetype-scr/src/main/resources-filtered/META-INF/maven/archetype-metadata.xml index c8e6ae3..20b2b96 100644 --- a/tooling/archetypes/camel-archetype-scr/src/main/resources-filtered/META-INF/maven/archetype-metadata.xml +++ b/tooling/archetypes/camel-archetype-scr/src/main/resources-filtered/META-INF/maven/archetype-metadata.xml @@ -32,9 +32,6 @@ </requiredProperty> <requiredProperty key="groupId"/> <requiredProperty key="className"/> - <requiredProperty key="jboss-fuse-version"> - <defaultValue>${jboss-fuse-version}</defaultValue> - </requiredProperty> <requiredProperty key="target-camel-version"> <defaultValue>${target-camel-version}</defaultValue> </requiredProperty> http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/pom.xml ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/pom.xml b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/pom.xml index e380f46..abc6b21 100644 --- a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/pom.xml +++ b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/pom.xml @@ -44,6 +44,7 @@ This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archet <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <camel-version>${target-camel-version}</camel-version> </properties> <distributionManagement> @@ -59,47 +60,27 @@ This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archet </snapshotRepository> </distributionManagement> - <repositories> - <repository> - <id>fusesource.m2</id> - <name>JBoss FS Public Repository Group</name> - <url>https://repo.fusesource.com/nexus/content/groups/public</url> - <layout>default</layout> - <releases> - <enabled>true</enabled> - <updatePolicy>never</updatePolicy> - </releases> - <snapshots> - <enabled>false</enabled> - </snapshots> - </repository> - </repositories> - <dependencyManagement> <dependencies> <dependency> - <!-- This gives us the versions of Fuse components --> - <groupId>org.jboss.fuse.bom</groupId> - <artifactId>jboss-fuse-parent</artifactId> - <version>${jboss-fuse-version}</version> - <type>pom</type> - <scope>import</scope> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.6.6</version> </dependency> <dependency> - <!-- camel-core-osgi doesn't seem to be included in the above bill of materials --> - <groupId>org.apache.camel</groupId> - <artifactId>camel-core-osgi</artifactId> - <version>${target-camel-version}</version> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.7.7</version> </dependency> <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <version>2.4</version> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.17</version> </dependency> <dependency> - <groupId>com.jayway.restassured</groupId> - <artifactId>rest-assured</artifactId> - <version>2.3.0</version> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.6</version> </dependency> </dependencies> </dependencyManagement> @@ -108,6 +89,7 @@ This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archet <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> + <version>${camel-version}</version> </dependency> <dependency> <groupId>org.apache.camel</groupId> @@ -137,16 +119,7 @@ This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archet <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-test</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>com.jayway.restassured</groupId> - <artifactId>rest-assured</artifactId> + <version>${camel-version}</version> <scope>test</scope> </dependency> </dependencies> @@ -222,8 +195,7 @@ This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archet <Export-Package/> <Private-Package> ${groupId}, - ${groupId}.*, - org.apache.camel.scr + ${groupId}.* </Private-Package> </instructions> </configuration> http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/__className__.java ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/__className__.java b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/__className__.java index d3c76da..8af72d0 100644 --- a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/__className__.java +++ b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/__className__.java @@ -20,39 +20,39 @@ // This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archetypeVersion} package ${groupId}; +import java.util.ArrayList; +import java.util.List; + import org.apache.camel.scr.AbstractCamelRunner; import ${groupId}.internal.${className}Route; import org.apache.camel.RoutesBuilder; import org.apache.camel.spi.ComponentResolver; import org.apache.felix.scr.annotations.*; -import java.util.ArrayList; -import java.util.List; - @Component(label = ${className}.COMPONENT_LABEL, description = ${className}.COMPONENT_DESCRIPTION, immediate = true, metatype = true) @Properties({ - @Property(name = "camelContextId", value = "${artifactId}"), - @Property(name = "camelRouteId", value = "foo/timer-log"), - @Property(name = "active", value = "true"), - @Property(name = "from", value = "timer:foo?period=5000"), - @Property(name = "to", value = "log:foo?showHeaders=true"), - @Property(name = "summaryLogging", value = "false"), - @Property(name = "messageOk", value = "Success: {{from}} -> {{to}}"), - @Property(name = "messageError", value = "Failure: {{from}} -> {{to}}"), - @Property(name = "maximumRedeliveries", value = "0"), - @Property(name = "redeliveryDelay", value = "5000"), - @Property(name = "backOffMultiplier", value = "2"), - @Property(name = "maximumRedeliveryDelay", value = "60000") + @Property(name = "camelContextId", value = "${artifactId}"), + @Property(name = "camelRouteId", value = "foo/timer-log"), + @Property(name = "active", value = "true"), + @Property(name = "from", value = "timer:foo?period=5000"), + @Property(name = "to", value = "log:foo?showHeaders=true"), + @Property(name = "summaryLogging", value = "false"), + @Property(name = "messageOk", value = "Success: {{from}} -> {{to}}"), + @Property(name = "messageError", value = "Failure: {{from}} -> {{to}}"), + @Property(name = "maximumRedeliveries", value = "0"), + @Property(name = "redeliveryDelay", value = "5000"), + @Property(name = "backOffMultiplier", value = "2"), + @Property(name = "maximumRedeliveryDelay", value = "60000") }) @References({ - @Reference(name = "camelComponent",referenceInterface = ComponentResolver.class, - cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC, - policyOption = ReferencePolicyOption.GREEDY, bind = "gotCamelComponent", unbind = "lostCamelComponent") + @Reference(name = "camelComponent",referenceInterface = ComponentResolver.class, + cardinality = ReferenceCardinality.MANDATORY_MULTIPLE, policy = ReferencePolicy.DYNAMIC, + policyOption = ReferencePolicyOption.GREEDY, bind = "gotCamelComponent", unbind = "lostCamelComponent") }) public class ${className} extends AbstractCamelRunner { public static final String COMPONENT_LABEL = "${groupId}.${className}"; - public static final String COMPONENT_DESCRIPTION = "This is the current configuration for ${artifactId}."; + public static final String COMPONENT_DESCRIPTION = "This is the description for ${artifactId}."; @Override protected List<RoutesBuilder>getRouteBuilders() { http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/internal/__className__Route.java ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/internal/__className__Route.java b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/internal/__className__Route.java index 10e50df..a44921d 100644 --- a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/internal/__className__Route.java +++ b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/main/java/internal/__className__Route.java @@ -21,7 +21,6 @@ package ${groupId}.internal; import org.apache.camel.LoggingLevel; -import org.apache.camel.builder.PredicateBuilder; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.SimpleRegistry; import org.apache.commons.lang.Validate; @@ -62,27 +61,8 @@ public class ${className}Route extends RouteBuilder { .maximumRedeliveryDelay(maximumRedeliveryDelay)); from("{{from}}") - .startupOrder(2) .routeId(camelRouteId) - .onCompletion() - .to("direct:processCompletion") - .end() - .removeHeaders("*", "breadcrumbId") .to("{{to}}"); - - from("direct:processCompletion") - .startupOrder(1) - .routeId(camelRouteId + ".completion") - .choice() - .when(PredicateBuilder.and(simple("${exception} == null"), PredicateBuilder.constant(summaryLogging))) - .to("log:" + camelRouteId +".success?groupInterval=60000") - .when(PredicateBuilder.and(simple("${exception} == null"), PredicateBuilder.constant(!summaryLogging))) - .log("{{messageOk}}") - .when(PredicateBuilder.constant(summaryLogging)) - .to("log:" + camelRouteId +".failure?groupInterval=60000") - .otherwise() - .log(LoggingLevel.ERROR, "{{messageError}}") - .endChoice(); } public void checkProperties() { http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/test/java/__className__Test.java ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/test/java/__className__Test.java b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/test/java/__className__Test.java index 26b82cc..505e20f 100644 --- a/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/test/java/__className__Test.java +++ b/tooling/archetypes/camel-archetype-scr/src/main/resources/archetype-resources/src/test/java/__className__Test.java @@ -20,13 +20,14 @@ // This file was generated from ${archetypeGroupId}/${archetypeArtifactId}/${archetypeVersion} package ${groupId}; -import org.apache.camel.scr.ScrHelper; +import java.util.List; + +import org.apache.camel.scr.internal.ScrHelper; import org.apache.camel.builder.AdviceWithRouteBuilder; import org.apache.camel.component.mock.MockComponent; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.RouteDefinition; -import org.apache.commons.io.IOUtils; import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -37,12 +38,6 @@ import org.slf4j.LoggerFactory; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; -import java.util.List; - -import static com.jayway.restassured.RestAssured.*; -import static com.jayway.restassured.matcher.RestAssuredMatchers.*; -import static org.hamcrest.Matchers.*; - @RunWith(JUnit4.class) public class ${className}Test { @@ -88,7 +83,7 @@ public class ${className}Test { // Replace "from" endpoint with direct:start replaceFromWith("direct:start"); // Mock and skip result endpoint - mockEndpointsAndSkip("log:*"); + mockEndpoints("log:*"); } }); @@ -96,24 +91,12 @@ public class ${className}Test { // resultEndpoint.expectedMessageCount(1); // If you want to just check the number of messages resultEndpoint.expectedBodiesReceived("hello"); // If you want to check the contents - // You can also take the expected result from an external file - // String result = IOUtils.toString(context.getClassResolver().loadResourceAsStream("testdata/out/result.txt")); - // resultEndpoint.expectedBodiesReceived(result.replaceAll("\r?\n", "\n")); - // Start the integration integration.run(); // Send the test message context.createProducerTemplate().sendBody("direct:start", "hello"); - // You can also send an external file - // context.createProducerTemplate.sendBody("direct:start", context.getClassResolver().loadResourceAsStream("testdata/in/input.xml")); - - // REST/HTTP services can be easily tested with RestAssured: - // get(context.resolvePropertyPlaceholders("{{restUrl}}")).then().statusCode(204).body(isEmptyOrNullString()); - // given().param("status").get(context.resolvePropertyPlaceholders("{{restUrl}}")).then().statusCode(200).body(equalTo("active")); - // given().auth().basic("testuser", "testpass").body("hello").when().post(context.resolvePropertyPlaceholders("{{restUrl}}")).then().statusCode(200).body(equalTo("response")); - resultEndpoint.assertIsSatisfied(); } } http://git-wip-us.apache.org/repos/asf/camel/blob/a344ba76/tooling/archetypes/camel-archetype-scr/src/test/resources/projects/camel-scr-example/archetype.properties ---------------------------------------------------------------------- diff --git a/tooling/archetypes/camel-archetype-scr/src/test/resources/projects/camel-scr-example/archetype.properties b/tooling/archetypes/camel-archetype-scr/src/test/resources/projects/camel-scr-example/archetype.properties index ed25df3..397e986 100644 --- a/tooling/archetypes/camel-archetype-scr/src/test/resources/projects/camel-scr-example/archetype.properties +++ b/tooling/archetypes/camel-archetype-scr/src/test/resources/projects/camel-scr-example/archetype.properties @@ -22,5 +22,4 @@ className = CamelScrExample archetypeGroupId = ${project.groupId} archetypeArtifactId = ${project.artifactId} archetypeVersion = ${project.version} -jboss-fuse-version = ${jboss-fuse-version} target-camel-version = ${target-camel-version} \ No newline at end of file