Author: iocanel Date: Fri Dec 2 17:17:15 2011 New Revision: 1209592 URL: http://svn.apache.org/viewvc?rev=1209592&view=rev Log: [CAMEL-4736] Added camel-xstream osgi itest that uses the blueprint.
Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/SampleObject.java camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamBlueprintRouteTest.java camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamRouteBuilder.java camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/blueprintCamelContext.xml Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/SampleObject.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/SampleObject.java?rev=1209592&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/SampleObject.java (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/SampleObject.java Fri Dec 2 17:17:15 2011 @@ -0,0 +1,70 @@ +/** + * 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.xstream; + +public class SampleObject { + + String id; + String value; + + public SampleObject() { + } + + public SampleObject(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + + SampleObject that = (SampleObject) o; + + if (!id.equals(that.id)) { + return false; + } + + return true; + } + + @Override + public int hashCode() { + return id.hashCode(); + } +} Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamBlueprintRouteTest.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamBlueprintRouteTest.java?rev=1209592&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamBlueprintRouteTest.java (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamBlueprintRouteTest.java Fri Dec 2 17:17:15 2011 @@ -0,0 +1,90 @@ +/** + * 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.xstream; + +import java.io.InputStream; +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.Customizer; +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; +import org.osgi.service.blueprint.container.BlueprintContainer; + + +import static org.ops4j.pax.exam.CoreOptions.equinox; +import static org.ops4j.pax.exam.CoreOptions.felix; +import static org.ops4j.pax.exam.OptionUtils.combine; +import static org.ops4j.pax.exam.container.def.PaxRunnerOptions.scanFeatures; +import static org.ops4j.pax.swissbox.tinybundles.core.TinyBundles.modifyBundle; + +@RunWith(JUnit4TestRunner.class) +public class XstreamBlueprintRouteTest extends OSGiBlueprintTestSupport { + + @Test + public void testUnmarshal() throws Exception { + getInstalledBundle("CamelBlueprintXstreamTestBundle").start(); + BlueprintContainer ctn = getOsgiService(BlueprintContainer.class, "(osgi.blueprint.container.symbolicname=CamelBlueprintXstreamTestBundle)", 10000); + CamelContext ctx = getOsgiService(CamelContext.class, "(camel.context.symbolicname=CamelBlueprintXstreamTestBundle)", 10000); + + MockEndpoint mock = (MockEndpoint) ctx.getEndpoint("mock:result"); + mock.expectedMessageCount(1); + + String body = "<org.apache.camel.itest.osgi.xstream.SampleObject>\n" + + " <id>1</id>\n" + + " <value>test</value>\n" + + "</org.apache.camel.itest.osgi.xstream.SampleObject>"; + + ProducerTemplate template = ctx.createProducerTemplate(); + template.sendBody("direct:start", body); + mock.assertIsSatisfied(); + Object result = mock.getReceivedExchanges().get(0).getIn().getBody(); + assertEquals(new SampleObject("1"), result); + } + + @Configuration + public static Option[] configure() throws Exception { + + Option[] options = combine( + getDefaultCamelKarafOptions(), + new Customizer() { + @Override + public InputStream customizeTestProbe(InputStream testProbe) { + return modifyBundle(testProbe) + .add(SampleObject.class) + .add(XstreamRouteBuilder.class) + .add("OSGI-INF/blueprint/test.xml", XstreamBlueprintRouteTest.class.getResource("blueprintCamelContext.xml")) + .set(Constants.BUNDLE_SYMBOLICNAME, "CamelBlueprintXstreamTestBundle") + .set(Constants.DYNAMICIMPORT_PACKAGE, "*") + .build(); + } + }, + // using the features to install the camel components + scanFeatures(getCamelKarafFeatureUrl(), "xml-specs-api", "camel-blueprint", "camel-xstream"), + //vmOption("-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"), + felix(), equinox()); + + return options; + } + +} Added: camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamRouteBuilder.java URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamRouteBuilder.java?rev=1209592&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamRouteBuilder.java (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/java/org/apache/camel/itest/osgi/xstream/XstreamRouteBuilder.java Fri Dec 2 17:17:15 2011 @@ -0,0 +1,31 @@ +/** + * 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.xstream; + +import org.apache.camel.builder.RouteBuilder; + +public class XstreamRouteBuilder extends RouteBuilder { + + @Override + public void configure() throws Exception { + + + from("direct:start").unmarshal().xstream() + .to("mock:result"); + } +} \ No newline at end of file Added: camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/blueprintCamelContext.xml URL: http://svn.apache.org/viewvc/camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/blueprintCamelContext.xml?rev=1209592&view=auto ============================================================================== --- camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/blueprintCamelContext.xml (added) +++ camel/trunk/tests/camel-itest-osgi/src/test/resources/org/apache/camel/itest/osgi/xstream/blueprintCamelContext.xml Fri Dec 2 17:17:15 2011 @@ -0,0 +1,26 @@ +<?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. +--> +<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" default-activation="lazy"> + + + <bean id="routeBuilder" class="org.apache.camel.itest.osgi.xstream.XstreamRouteBuilder" /> + + <camelContext xmlns="http://camel.apache.org/schema/blueprint"> + <routeBuilder ref="routeBuilder" /> + </camelContext> + +</blueprint>