Cometd ComponentThe cometd: component is a transport for working with the jetty implementation of the cometd/bayeux protocol. Maven users will need to add the following dependency to their pom.xml for this component: <dependency> <groupId>org.apache.camel</groupId> <artifactId>camel-cometd</artifactId> <version>x.x.x</version> <!-- use the same version as your Camel core version --> </dependency> URI format
cometd://host:port/channelName[?options]
The channelName represents a topic that can be subscribed to by the Camel endpoints. Examplescometd://localhost:8080/service/mychannel cometds://localhost:8443/service/mychannel where cometds: represents an SSL configured endpoint. See this blog entry by David Greco who contributed this component to Apache Camel, for a full sample. Options
You can append query options to the URI in the following format, ?option=value&option=value&... Here is some examples on How to pass the parameters For file (for webapp resources located in the Web Application directory --> cometd://localhost:8080?resourceBase=file./webapp AuthenticationAvailable as of Camel 2.8 You can configure custom SecurityPolicy and Extension's to the CometdComponent which allows you to use authentication as documented here Setting up SSL for Cometd ComponentUsing the JSSE Configuration UtilityAs of Camel 2.9, the Cometd component supports SSL/TLS configuration through the Camel JSSE Configuration Utility. This utility greatly decreases the amount of component specific code you need to write and is configurable at the endpoint and component levels. The following examples demonstrate how to use the utility with the Cometd component. Programmatic configuration of the componentKeyStoreParameters ksp = new KeyStoreParameters(); ksp.setResource("/users/home/server/keystore.jks"); ksp.setPassword("keystorePassword"); KeyManagersParameters kmp = new KeyManagersParameters(); kmp.setKeyStore(ksp); kmp.setKeyPassword("keyPassword"); TrustManagersParameters tmp = new TrustManagersParameters(); tmp.setKeyStore(ksp); SSLContextParameters scp = new SSLContextParameters(); scp.setKeyManagers(kmp); scp.setTrustManagers(tmp); CometdComponent commetdComponent = getContext().getComponent("cometds", CometdComponent.class); commetdComponent.setSslContextParameters(scp); Spring DSL based configuration of endpoint... <camel:sslContextParameters id="sslContextParameters"> <camel:keyManagers keyPassword="keyPassword"> <camel:keyStore resource="/users/home/server/keystore.jks" password="keystorePassword"/> </camel:keyManagers> <camel:trustManagers> <camel:keyStore resource="/users/home/server/keystore.jks" password="keystorePassword"/> </camel:keyManagers> </camel:sslContextParameters>... ... <to uri="cometds://127.0.0.1:443/service/test?baseResource=file:./target/test-classes/webapp&timeout=240000&interval=0&maxInterval=30000&multiFrameInterval=1500&jsonCommented=true&logLevel=2&sslContextParameters=#sslContextParameters"/>... See Also |