...
This documentation page covers the Apache Spark component for the Apache Camel. The main purpose of the Spark integration with Camel is to provide a bridge between Camel connectors and Spark tasks. In particular Camel connector provides a way to route message from various transports, dynamically choose a task to execute, use incoming message as input data for that task and finally deliver the results of the execution back to the Camel pipeline.
Supported architectural styles
KuraRouter activator
Bundles deployed to the Eclipse Kura are usually developed as bundle activators. So the easiest way to deploy Apache Camel routes into the Kura is to create an OSGi bundle containing the class extending org.apache.camel.kura.KuraRouter
class:
...
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
producerTemplate.sendBody("jms:temperature", 22.0);
...
}
} |
ConsumerTemplate
Protected member consumerTemplate
is the ConsumerTemplate
instance associated with the given Camel context.
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
double currentTemperature = producerTemplate.receiveBody("jms:temperature", Double.class);
...
}
} |
OSGi service resolver
OSGi service resolver (service(Class<T> serviceType)
) can be used to easily retrieve service by type from the OSGi bundle context.
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { MyService myService = service(MyService.class); ... } } |
If service is not found, a null
value is returned. If you want your application to fail if the service is not available, use requiredService(Class)
method instead. The requiredService
throws IllegalStateException
if a service cannot be found.
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter { @Override public void configure() throws Exception { MyService myService = requiredService(MyService.class); ... } } |
KuraRouter activator callbacks
Kura router comes with the lifecycle callbacks that can be used to customize the way the Camel router works. For example to configure the CamelContext
instance associated with the router just before the former is started, override beforeStart
method of the KuraRouter
class:
...