...
Code Block | ||||
---|---|---|---|---|
| ||||
spark:{rdd|dataframe|hive} |
RDD jobs
...
Code Block | ||||
---|---|---|---|---|
| ||||
@Bean
RddCallback<Long> rddCallback(CamelContext context) {
return new ConvertingRddCallback<Long>(context, int.class, int.class) {
@Override
public Long doOnRdd(AbstractJavaRDDLike rdd, Object... payloads) {
return rdd.count() * (int) payloads[0] * (int) payloads[1];
}
};
};
} |
ProducerTemplate
Protected member producerTemplate
is the ProducerTemplate
instance associated with the given Camel context.
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter {
@Override
public void configure() throws Exception {
producerTemplate.sendBody("jms:temperature", 22.0);
...
}
} |
...
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:
Code Block | ||
---|---|---|
| ||
public class MyKuraRouter extends KuraRouter { ... protected void beforeStart(CamelContext camelContext) { OsgiDefaultCamelContext osgiContext = (OsgiCamelContext) camelContext; osgiContext.setName("NameOfTheRouter"); } } |
Loading XML routes from ConfigurationAdmin
Sometimes it is desired to read the XML definition of the routes from the server configuration. This a common scenario for IoT gateways where over-the-air redeployment cost may be significant. To address this requirement each KuraRouter
looks for the kura.camel.BUNDLE-SYMBOLIC-NAME.route
property from the kura.camel
PID using the OSGi ConfigurationAdmin. This approach allows you to define Camel XML routes file per deployed KuraRouter
. In order to update a route, just edit an appropriate configuration property and restart a bundle associated with it. The content of the kura.camel.BUNDLE-SYMBOLIC-NAME.route
property is expected to be Camel XML route file, for example:
Code Block |
---|
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="loaded">
<from uri="direct:bar"/>
<to uri="mock:bar"/>
</route>
</routes> |
Deploying Kura router as a declarative OSGi service
...