Author: davsclaus Date: Mon Jun 4 15:39:02 2012 New Revision: 1346016 URL: http://svn.apache.org/viewvc?rev=1346016&view=rev Log: CAMEL-4930: Added osgi tests for camel-xmljson. Thanks to Raul for the patch.
Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java (with props) camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java (with props) camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml (with props) Modified: camel/trunk/platforms/karaf/features/pom.xml camel/trunk/platforms/karaf/features/src/main/resources/features.xml camel/trunk/tests/camel-itest-osgi/pom.xml Modified: camel/trunk/platforms/karaf/features/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/features/pom.xml?rev=1346016&r1=1346015&r2=1346016&view=diff ============================================================================== --- camel/trunk/platforms/karaf/features/pom.xml (original) +++ camel/trunk/platforms/karaf/features/pom.xml Mon Jun 4 15:39:02 2012 @@ -54,6 +54,7 @@ <commons-jxpath-version>1.3</commons-jxpath-version> <commons-math-version>2.2</commons-math-version> <commons-dbcp-bundle-version>1.4_3</commons-dbcp-bundle-version> + <commons-lang-version-xmljson>2.5</commons-lang-version-xmljson> <dom4j-bundle-version>1.6.1_5</dom4j-bundle-version> <el-api-1.0-version>1.0.1</el-api-1.0-version> <ezmorph-bundle-version>1.0.6_1</ezmorph-bundle-version> Modified: camel/trunk/platforms/karaf/features/src/main/resources/features.xml URL: http://svn.apache.org/viewvc/camel/trunk/platforms/karaf/features/src/main/resources/features.xml?rev=1346016&r1=1346015&r2=1346016&view=diff ============================================================================== --- camel/trunk/platforms/karaf/features/src/main/resources/features.xml (original) +++ camel/trunk/platforms/karaf/features/src/main/resources/features.xml Mon Jun 4 15:39:02 2012 @@ -824,6 +824,8 @@ <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.ezmorph/${ezmorph-bundle-version}</bundle> <bundle dependency='true'>mvn:xom/xom/${xom-version}</bundle> <bundle dependency='true'>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.json-lib/${jsonlib-bundle-version}</bundle> + <bundle dependency='true'>mvn:commons-lang/commons-lang/${commons-lang-version-xmljson}</bundle> + <bundle dependency='true'>mvn:commons-collections/commons-collections/${commons-collections-version}</bundle> <feature version='${project.version}'>camel-core</feature> <bundle>mvn:org.apache.camel/camel-xmljson/${project.version}</bundle> </feature> Modified: camel/trunk/tests/camel-itest-osgi/pom.xml URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/pom.xml?rev=1346016&r1=1346015&r2=1346016&view=diff ============================================================================== --- camel/trunk/tests/camel-itest-osgi/pom.xml (original) +++ camel/trunk/tests/camel-itest-osgi/pom.xml Mon Jun 4 15:39:02 2012 @@ -226,6 +226,11 @@ <artifactId>camel-rss</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-xmljson</artifactId> + <scope>test</scope> + </dependency> <dependency> <groupId>org.apache.camel.tests</groupId> <artifactId>org.apache.camel.tests.mock-javamail_1.7</artifactId> Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java?rev=1346016&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java Mon Jun 4 15:39:02 2012 @@ -0,0 +1,84 @@ +/** + * 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.itest.osgi.xmljson; + +import static org.ops4j.pax.exam.CoreOptions.provision; +import static org.ops4j.pax.exam.OptionUtils.combine; +import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.newBundle; + +import org.apache.camel.CamelContext; +import org.apache.camel.ProducerTemplate; +import org.apache.camel.component.mock.MockEndpoint; +import org.apache.camel.itest.osgi.blueprint.OSGiBlueprintTestSupport; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.ops4j.pax.exam.Option; +import org.ops4j.pax.exam.junit.Configuration; +import org.ops4j.pax.exam.junit.JUnit4TestRunner; +import org.osgi.framework.Constants; + +/** + * OSGi integration test for camel-xmljson + * @author Raul Kripalani + * + */ +@RunWith(JUnit4TestRunner.class) +public class XmlJsonBlueprintRouteTest extends OSGiBlueprintTestSupport { + + @Test + public void testUnmarshal() throws Exception { + getInstalledBundle("CamelBlueprintXmlJsonTestBundle").start(); + CamelContext ctx = getOsgiService(CamelContext.class, "(camel.context.symbolicname=CamelBlueprintXmlJsonTestBundle)", 10000); + + MockEndpoint mock = ctx.getEndpoint("mock:result", MockEndpoint.class); + mock.expectedMessageCount(1); + + String body = "<hello>\n" + + " <name>Raul</name>\n" + + " <surname>Kripalani</surname>\n" + + "</hello>"; + + ProducerTemplate template = ctx.createProducerTemplate(); + template.sendBody("direct:start", body); + mock.assertIsSatisfied(); + String result = mock.getReceivedExchanges().get(0).getIn().getBody(String.class); + String spacesRemoved = result.replaceAll("\\s+", result); + assertEquals("{\"name\":\"Raul\",\"surname\":\"Kripalani\"}", spacesRemoved); + } + + @Configuration + public static Option[] configure() throws Exception { + + Option[] options = combine( + getDefaultCamelKarafOptions(), + provision(newBundle() + .add(XmlJsonRouteBuilder.class) + .add("OSGI-INF/blueprint/test.xml", XmlJsonBlueprintRouteTest.class.getResource("xmlJsonBlueprintCamelContext.xml")) + .set(Constants.BUNDLE_SYMBOLICNAME, "CamelBlueprintXmlJsonTestBundle") + .set(Constants.DYNAMICIMPORT_PACKAGE, "*") + .build()), + + // using the features to install the camel components + loadCamelFeatures("xml-specs-api", "camel-blueprint", "camel-xmljson")); + //vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"), + + + return options; + } + +} Propchange: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonBlueprintRouteTest.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java?rev=1346016&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java Mon Jun 4 15:39:02 2012 @@ -0,0 +1,35 @@ +/** + * 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.itest.osgi.xmljson; + +import org.apache.camel.builder.RouteBuilder; + +/** + * Simple route for testing camel-xmljson + * @author Raul Kripalani + * + */ +public class XmlJsonRouteBuilder extends RouteBuilder { + + @Override + public void configure() throws Exception { + + from("direct:start").marshal().xmljson() + .to("mock:result"); + } +} \ No newline at end of file Propchange: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xmljson/XmlJsonRouteBuilder.java ------------------------------------------------------------------------------ svn:keywords = Rev Date Added: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml?rev=1346016&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml Mon Jun 4 15:39:02 2012 @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright 2006 The Apache Software Foundation. + + 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. +--> +<!-- + Simple Camel Context for testing OSGi-readiness of camel-xmljson + --> +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> + + + <bean id="routeBuilder" class="org.apache.camel.itest.osgi.xmljson.XmlJsonRouteBuilder" /> + + <camelContext xmlns="http://camel.apache.org/schema/blueprint"> + <routeBuilder ref="routeBuilder" /> + </camelContext> + +</blueprint> Propchange: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml ------------------------------------------------------------------------------ svn:eol-style = native Propchange: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml ------------------------------------------------------------------------------ svn:keywords = Rev Date Propchange: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xmljson/xmlJsonBlueprintCamelContext.xml ------------------------------------------------------------------------------ svn:mime-type = text/xml