NettyPage edited by Ashwin KarpeNetty ComponentAvailable as of Camel 2.3 The netty component in Camel is a socket communication component, based on the JBoss Netty community offering (available under an Apache 2.0 license). Netty is a NIO client server framework which enables quick and easy development of network applications such as protocol servers and clients. Netty greatly simplifies and streamlines network programming such as TCP and UDP socket server. This camel component supports both producer and consumer endpoints. The netty component has several options and allows fine-grained control of a number of TCP/UDP communication parameters (buffer sizes, keepAlives, tcpNoDelay etc) and facilitates both In-Only and In-Out communication on a Camel route. Maven users will need to add the following dependency to their pom.xml for this component: <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-netty</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency>
Registry based OptionsCodec Handlers and SSL Keystores can be set via a JNDI Registry that is associated with the Camel Context. The values that could be passed in, are the following
Sending Messages to/from a Netty endpointNetty ProducerIn Producer mode, the component provides the ability to send payloads to a socket endpoint using either TCP or UDP protocols (with optional SSL support). The producer mode supports both one-way and request-response based operations. Netty ConsumerIn Consumer mode, the component provides the ability to
The consumer mode supports both one-way and request-response based operations. Usage SamplesExample 1: A UDP based Netty consumer endpoint supporting Request-Reply communication and serialized Object payloadRouteBuilder builder = new RouteBuilder() { public void configure() { from("netty:udp://localhost:5155?sync=true") .process(new Processor() { public void process(Exchange exchange) throws Exception { Poetry poetry = (Poetry) exchange.getIn().getBody(); poetry.setPoet("Dr. Sarojini Naidu"); exchange.getOut().setBody(poetry); } } } }; Example 2: A TCP based Netty consumer endpoint supporting One-way communicationRouteBuilder builder = new RouteBuilder() { public void configure() { from("netty:tcp://localhost:5150") .to("mock:result"); } }; Example 3: An SSL/TCP based Netty consumer endpoint supporting Request-Reply communicationJndiRegistry registry = new JndiRegistry(createJndiContext()); registry.bind("password", "changeit"); registry.bind("keyStoreFile", new File("src/test/resources/keystore.jks")); registry.bind("trustStoreFile", new File("src/test/resources/keystore.jks")); context.createRegistry(registry); context.addRoutes(new RouteBuilder() { public void configure() { from("netty:tcp://localhost:5150sync=true&ssl=true&passphrase=#password&keyStoreFile=#ksf&trustStoreFile=#tsf") .process(new Processor() { public void process(Exchange exchange) throws Exception { exchange.getOut().setBody("When You Go Home, Tell Them Of Us And Say, For Your Tomorrow, We Gave Our Today."); } } } });
Change Notification Preferences
View Online
|
View Change
|
Add Comment
|
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence
- [CONF] Apache Camel > Netty confluence