Skip to content

Commit

Permalink
[resolves #453] Add support for camel-protobuf data format
Browse files Browse the repository at this point in the history
  • Loading branch information
Thomas Diesler authored and Jenkins committed Mar 24, 2015
1 parent e400e01 commit f3d3ba2
Show file tree
Hide file tree
Showing 13 changed files with 2,697 additions and 9 deletions.
5 changes: 4 additions & 1 deletion itests/standalone/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,6 @@
<artifactId>wildfly-camel-subsystem</artifactId>
<version>${project.version}</version>
</dependency>

<dependency>
<groupId>javax.enterprise</groupId>
<artifactId>cdi-api</artifactId>
Expand Down Expand Up @@ -131,6 +130,10 @@
<groupId>org.apache.camel</groupId>
<artifactId>camel-mvel</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-protobuf</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-quartz2</artifactId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
Expand All @@ -36,8 +36,8 @@
public class OgnlIntegrationTest {

@Deployment
public static WebArchive createdeployment() {
final WebArchive archive = ShrinkWrap.create(WebArchive.class, "camel-test.war");
public static JavaArchive createdeployment() {
final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "ognl-tests");
archive.addAsResource("ognl/test-ognl-expression.txt", "test-ognl-expression.txt");
return archive;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/*
* #%L
* Wildfly Camel :: Testsuite
* %%
* Copyright (C) 2013 - 2014 RedHat
* %%
* 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.
* #L%
*/

package org.wildfly.camel.test.protobuf;

import java.io.ByteArrayOutputStream;

import org.apache.camel.CamelContext;
import org.apache.camel.ProducerTemplate;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.dataformat.protobuf.ProtobufDataFormat;
import org.apache.camel.impl.DefaultCamelContext;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.wildfly.camel.test.protobuf.model.AddressBookProtos;
import org.wildfly.camel.test.protobuf.model.AddressBookProtos.Person;

@RunWith(Arquillian.class)
public class ProtobufIntegrationTest {

@Deployment
public static JavaArchive createdeployment() {
final JavaArchive archive = ShrinkWrap.create(JavaArchive.class, "protobuf-tests");
archive.addClasses(AddressBookProtos.class);
return archive;
}

@Test
public void testMarshall() throws Exception {

final ProtobufDataFormat format = new ProtobufDataFormat(Person.getDefaultInstance());

CamelContext camelctx = new DefaultCamelContext();
camelctx.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").marshal(format);
}
});

Person person = Person.newBuilder().setId(1).setName("John Doe").build();

camelctx.start();
try {
ProducerTemplate producer = camelctx.createProducerTemplate();
String result = producer.requestBody("direct:start", person, String.class);
Assert.assertEquals("John Doe", result.trim());
} finally {
camelctx.stop();
}
}

@Test
public void testUnmarshall() throws Exception {

final ProtobufDataFormat format = new ProtobufDataFormat(Person.getDefaultInstance());

CamelContext camelctx = new DefaultCamelContext();
camelctx.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
from("direct:start").unmarshal(format);
}
});

final ByteArrayOutputStream baos = new ByteArrayOutputStream();
Person person = Person.newBuilder().setId(1).setName("John Doe").build();
person.writeTo(baos);

camelctx.start();
try {
ProducerTemplate producer = camelctx.createProducerTemplate();
Person result = producer.requestBody("direct:start", baos.toByteArray(), Person.class);
Assert.assertEquals("John Doe", result.getName().trim());
} finally {
camelctx.stop();
}
}
}
Loading

0 comments on commit f3d3ba2

Please sign in to comment.