use of org.apache.camel.impl.SimpleRegistry in project camel by apache.
the class OsgiComponentResolverTest method testOsgiResolverFindComponentFallbackTest.
@Test
public void testOsgiResolverFindComponentFallbackTest() throws Exception {
SimpleRegistry registry = new SimpleRegistry();
registry.put("allstar-component", new SampleComponent(true));
CamelContext camelContext = new DefaultCamelContext(registry);
OsgiComponentResolver resolver = new OsgiComponentResolver(getBundleContext());
Component component = resolver.resolveComponent("allstar", camelContext);
assertNotNull("We should find the super component", component);
assertTrue("We should get the super component here", component instanceof SampleComponent);
}
use of org.apache.camel.impl.SimpleRegistry in project opennms by OpenNMS.
the class SyslogReceiverCamelNettyImpl method run.
/**
* The execution context.
*/
@Override
public void run() {
// Setup logging and create the dispatcher
super.run();
SimpleRegistry registry = new SimpleRegistry();
//Adding netty component to camel in order to resolve OSGi loading issues
NettyComponent nettyComponent = new NettyComponent();
m_camel = new DefaultCamelContext(registry);
// Set the context name so that it shows up nicely in JMX
//
// @see org.apache.camel.management.DefaultManagementNamingStrategy
//
//m_camel.setManagementName("org.opennms.features.events.syslog.listener");
m_camel.setName("syslogdListenerCamelNettyContext");
m_camel.setManagementNameStrategy(new DefaultManagementNameStrategy(m_camel, "#name#", null));
m_camel.addComponent("netty4", nettyComponent);
m_camel.getShutdownStrategy().setShutdownNowOnTimeout(true);
m_camel.getShutdownStrategy().setTimeout(15);
m_camel.getShutdownStrategy().setTimeUnit(TimeUnit.SECONDS);
try {
m_camel.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
String from = String.format("netty4:udp://%s:%d?sync=false&allowDefaultCodec=false&receiveBufferSize=%d&connectTimeout=%d", InetAddressUtils.str(m_host), m_port, Integer.MAX_VALUE, SOCKET_TIMEOUT);
from(from).routeId("syslogListen").process(new AsyncProcessor() {
@Override
public void process(Exchange exchange) throws Exception {
final ByteBuf buffer = exchange.getIn().getBody(ByteBuf.class);
// NettyConstants.NETTY_REMOTE_ADDRESS is a SocketAddress type but because
// we are listening on an InetAddress, it will always be of type InetAddressSocket
InetSocketAddress source = (InetSocketAddress) exchange.getIn().getHeader(NettyConstants.NETTY_REMOTE_ADDRESS);
// Synchronously invoke the dispatcher
m_dispatcher.send(new SyslogConnection(source, buffer.nioBuffer())).get();
}
@Override
public boolean process(Exchange exchange, AsyncCallback callback) {
final ByteBuf buffer = exchange.getIn().getBody(ByteBuf.class);
// NettyConstants.NETTY_REMOTE_ADDRESS is a SocketAddress type but because
// we are listening on an InetAddress, it will always be of type InetAddressSocket
InetSocketAddress source = (InetSocketAddress) exchange.getIn().getHeader(NettyConstants.NETTY_REMOTE_ADDRESS);
ByteBuffer bufferCopy = ByteBuffer.allocate(buffer.readableBytes());
buffer.getBytes(buffer.readerIndex(), bufferCopy);
m_dispatcher.send(new SyslogConnection(source, bufferCopy)).whenComplete((r, e) -> {
if (e != null) {
exchange.setException(e);
}
callback.done(false);
});
return false;
}
});
}
});
m_camel.start();
} catch (Throwable e) {
LOG.error("Could not configure Camel routes for syslog receiver", e);
}
}
use of org.apache.camel.impl.SimpleRegistry in project opennms by OpenNMS.
the class EchoRpcIT method throwsRequestTimedOutExceptionOnTimeout.
@Test(timeout = CamelRpcClientPreProcessor.CAMEL_JMS_REQUEST_TIMEOUT_DEFAULT * 4)
public void throwsRequestTimedOutExceptionOnTimeout() throws Exception {
assertNotEquals(REMOTE_LOCATION_NAME, identity.getLocation());
EchoRpcModule echoRpcModule = new EchoRpcModule();
SimpleRegistry registry = new SimpleRegistry();
CamelContext context = new DefaultCamelContext(registry);
context.getShutdownStrategy().setTimeout(5);
context.getShutdownStrategy().setTimeUnit(TimeUnit.SECONDS);
context.addComponent("queuingservice", queuingservice);
CamelRpcServerRouteManager routeManager = new CamelRpcServerRouteManager(context, new MockMinionIdentity(REMOTE_LOCATION_NAME));
routeManager.bind(echoRpcModule);
EchoRequest request = new EchoRequest("HELLO!!!");
request.setLocation(REMOTE_LOCATION_NAME);
request.setDelay(CamelRpcClientPreProcessor.CAMEL_JMS_REQUEST_TIMEOUT_DEFAULT * 2);
try {
echoClient.execute(request).get();
fail("Did not get ExecutionException");
} catch (ExecutionException e) {
assertTrue("Cause is not of type RequestTimedOutException: " + ExceptionUtils.getStackTrace(e), e.getCause() instanceof RequestTimedOutException);
// Verify that the message body was suppressed
MockLogAppender.assertLogMatched(Level.DEBUG, "[Body is not logged]");
}
routeManager.unbind(echoRpcModule);
context.stop();
}
use of org.apache.camel.impl.SimpleRegistry in project chuidiang-ejemplos by chuidiang.
the class RouteBinMain method startCamel.
private static CamelContext startCamel() throws Exception {
SimpleRegistry registry = new SimpleRegistry();
registry.put("FromDecoder", new MessageDecoder());
registry.put("FromEncoder", new MessageEncoder());
registry.put("ToDecoder", new MessageDecoder());
registry.put("ToEncoder", new MessageEncoder());
final CamelContext context = new DefaultCamelContext(registry);
context.addRoutes(new RouteBuilder() {
@Override
public void configure() throws Exception {
createNettyRoute();
}
protected void createNettyRoute() {
from("netty:tcp://localhost:55559?encoder=#FromEncoder&" + "decoder=#FromDecoder&" + "disconnectOnNoReply=false&" + "serverClosedChannelExceptionCaughtLogLevel=WARN&" + "keepAlive=true").to("netty:tcp://localhost:55560?encoder=#ToEncoder&" + "decoder=#ToDecoder&" + "disconnectOnNoReply=false&" + "serverClosedChannelExceptionCaughtLogLevel=WARN&" + "keepAlive=true").setId("myRoute");
}
});
context.start();
return context;
}
Aggregations