...
Cometd
...
Component
...
The
...
cometd:
...
component
...
is
...
a
...
transport
...
for
...
working
...
with
...
the
...
...
implementation
...
of
...
the
...
...
protocol.
Using this component in combination with the dojo toolkit library it's possible to push Camel messages directly into the browser using an AJAX based mechanism.
Maven users will need to add the following dependency to their pom.xml
for this component:
Code Block | ||||
---|---|---|---|---|
| ||||
|http://docs.codehaus.org/display/JETTY/Cometd+%28aka+Bayeux%29]. Using this component in combination with the dojo toolkit library it's possible to push Camel messages directly into the browser using an AJAX based mechanism. Maven users will need to add the following dependency to their {{pom.xml}} for this component: {code:xml} <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> {code} h3. |
URI format
Code Block |
---|
URI format {code} cometd://host:port/channelName[?options] {code} The *channelName* represents a |
The channelName represents a topic that can be subscribed to by the Camel endpoints.
Examples
No Format |
---|
topic that can be subscribed to by the Camel endpoints. h3. Examples {noformat} cometd://localhost:8080/service/mychannel cometds://localhost:8443/service/mychannel {noformat} where {{ |
where cometds:
...
represents
...
an
...
SSL
...
configured
...
endpoint.
Options
Div | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||
|
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
...
For
...
classpath
...
(when
...
by
...
example
...
the
...
web
...
resources
...
are
...
packaged
...
inside
...
the
...
webapp
...
folder
...
-->
...
cometd://localhost:8080?resourceBase=classpath:webapp
Authentication
Available 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 Component
Using the JSSE Configuration Utility
As 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. You need to configure SSL on the CometdComponent.
Programmatic configuration of the component
Code Block |
---|
KeyStoreParameters ksp = new KeyStoreParameters(); h3. Authentication *Available 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|http://cometd.org/documentation/howtos/authentication] {include:Endpoint See Also}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
Code Block | ||||
---|---|---|---|---|
| ||||
...
<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>...
<bean id="cometd" class="org.apache.camel.component.cometd.CometdComponent">
<property name="sslContextParameters" ref="sslContextParameters"/>
</bean>
...
<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"/>...
|
Include Page | ||||
---|---|---|---|---|
|