本文整理匯總了Java中org.apache.camel.core.osgi.OsgiCamelContextPublisher類的典型用法代碼示例。如果您正苦於以下問題:Java OsgiCamelContextPublisher類的具體用法?Java OsgiCamelContextPublisher怎麽用?Java OsgiCamelContextPublisher使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
OsgiCamelContextPublisher類屬於org.apache.camel.core.osgi包,在下文中一共展示了OsgiCamelContextPublisher類的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: afterPropertiesSet
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
@Override
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
// setup the application context classloader with the bundle delegating classloader
ClassLoader cl = new BundleDelegatingClassLoader(bundleContext.getBundle());
LOG.debug("Set the application context classloader to: {}", cl);
getContext().setApplicationContextClassLoader(cl);
osgiCamelContextPublisher = new OsgiCamelContextPublisher(bundleContext);
osgiCamelContextPublisher.start();
getContext().getManagementStrategy().addEventNotifier(osgiCamelContextPublisher);
try {
getClass().getClassLoader().loadClass("org.osgi.service.event.EventAdmin");
getContext().getManagementStrategy().addEventNotifier(new OsgiEventAdminNotifier(bundleContext));
} catch (Throwable t) {
// Ignore, if the EventAdmin package is not available, just don't use it
LOG.debug("EventAdmin package is not available, just don't use it");
}
// ensure routes is setup
setupRoutes();
}
示例2: setupCamelContext
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
protected void setupCamelContext(final BundleContext bundleContext, final String camelContextId) throws Exception {
// Set up CamelContext
if (camelContextId != null) {
context.setNameStrategy(new ExplicitCamelContextNameStrategy(camelContextId));
}
// TODO: allow to configure these options and not hardcode
context.setUseMDCLogging(true);
context.setUseBreadcrumb(true);
// Add routes
for (RoutesBuilder route : getRouteBuilders()) {
context.addRoutes(configure(context, route, log));
}
// ensure we publish this CamelContext to the OSGi service registry
context.getManagementStrategy().addEventNotifier(new OsgiCamelContextPublisher(bundleContext));
}
示例3: produce
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
@Override
public T produce(CreationalContext<T> ctx) {
T context = super.produce(ctx);
// Register the context in the OSGi registry
BundleContext bundle = BundleContextUtils.getBundleContext(getClass());
context.getManagementStrategy().addEventNotifier(new OsgiCamelContextPublisher(bundle));
if (!(context instanceof DefaultCamelContext)) {
// Fail fast for the time being to avoid side effects by some methods get declared on the CamelContext interface
throw new InjectionException("Camel CDI requires Camel context [" + context.getName() + "] to be a subtype of DefaultCamelContext");
}
DefaultCamelContext adapted = context.adapt(DefaultCamelContext.class);
adapted.setRegistry(OsgiCamelContextHelper.wrapRegistry(context, context.getRegistry(), bundle));
CamelContextNameStrategy strategy = context.getNameStrategy();
OsgiCamelContextHelper.osgiUpdate(adapted, bundle);
// FIXME: the above call should not override explicit strategies provided by the end user or should decorate them instead of overriding them completely
if (!(strategy instanceof DefaultCamelContextNameStrategy)) {
context.setNameStrategy(strategy);
}
return context;
}
示例4: produce
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
@Override
public T produce(CreationalContext<T> cc) {
T context = super.produce(cc);
// Register the context in the OSGi registry
BundleContext bundle = BundleContextUtils.getBundleContext(getClass());
context.getManagementStrategy().addEventNotifier(new OsgiCamelContextPublisher(bundle));
if (!(context instanceof DefaultCamelContext))
// Fail fast for the time being to avoid side effects by some methods get declared on the CamelContext interface
throw new DeploymentException("Camel CDI requires Camel context [" + context.getName() + "] to be a subtype of DefaultCamelContext");
DefaultCamelContext adapted = context.adapt(DefaultCamelContext.class);
adapted.setRegistry(OsgiCamelContextHelper.wrapRegistry(context, context.getRegistry(), bundle));
CamelContextNameStrategy strategy = context.getNameStrategy();
OsgiCamelContextHelper.osgiUpdate(adapted, bundle);
// FIXME: the above call should not override explicit strategies provided by the end user or should decorate them instead of overriding them completely
if (!(strategy instanceof DefaultCamelContextNameStrategy))
context.setNameStrategy(strategy);
return context;
}
示例5: maybeStart
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
private void maybeStart() throws Exception {
LOG.trace("maybeStart: {}", this);
// allow to register the BluerintCamelContext eager in the OSGi Service Registry, which ex is needed
// for unit testing with camel-test-blueprint
boolean eager = "true".equalsIgnoreCase(System.getProperty("registerBlueprintCamelContextEager"));
if (eager) {
for (EventNotifier notifier : getManagementStrategy().getEventNotifiers()) {
if (notifier instanceof OsgiCamelContextPublisher) {
OsgiCamelContextPublisher publisher = (OsgiCamelContextPublisher) notifier;
publisher.registerCamelContext(this);
break;
}
}
}
// for example from unit testing we want to start Camel later and not
// when blueprint loading the bundle
boolean skip = "true".equalsIgnoreCase(System.getProperty("skipStartingCamelContext"));
if (skip) {
LOG.trace("maybeStart: {} is skipping as System property skipStartingCamelContext is set", this);
return;
}
if (!isStarted() && !isStarting()) {
LOG.debug("Starting {}", this);
start();
} else {
// ignore as Camel is already started
LOG.trace("Ignoring maybeStart() as {} is already started", this);
}
}
示例6: afterPropertiesSet
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
@Override
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
getContext().getManagementStrategy().addEventNotifier(new OsgiCamelContextPublisher(bundleContext));
try {
getClass().getClassLoader().loadClass("org.osgi.service.event.EventAdmin");
getContext().getManagementStrategy().addEventNotifier(new OsgiEventAdminNotifier(bundleContext));
} catch (Throwable t) {
// Ignore, if the EventAdmin package is not available, just don't use it
LOG.debug("EventAdmin package is not available, just don't use it");
}
}
示例7: OsgiSwitchYardCamelContextImpl
import org.apache.camel.core.osgi.OsgiCamelContextPublisher; //導入依賴的package包/類
/**
* Create a new instance of OsgiSwitchYardCamelContextImpl.
* @param bundleContext bundleContext
*/
public OsgiSwitchYardCamelContextImpl(BundleContext bundleContext) {
_bundleContext = bundleContext;
OsgiCamelContextHelper.osgiUpdate(this, bundleContext);
// Ensure we publish this CamelContext to the OSGi service registry
getManagementStrategy().addEventNotifier(new OsgiCamelContextPublisher(bundleContext));
}