@Override protected void doStart() throws Exception { super.doStart(); final ServiceEndpoint endpoint = (ServiceEndpoint)getEndpoint(); final ServiceDefinition definition = endpoint.getServiceDefinition(); LOGGER.debug("Using ServiceRegistry instance {} (id={}, type={}) to register: {}", serviceRegistry, serviceRegistry.getId(), serviceRegistry.getClass().getName(), definition ); // register service serviceRegistry.register(definition); // start delegate delegatedConsumer = delegatedEndpoint.createConsumer(processor); if (delegatedConsumer instanceof StartupListener) { getEndpoint().getCamelContext().addStartupListener((StartupListener) delegatedConsumer); } ServiceHelper.startService(delegatedEndpoint); ServiceHelper.startService(delegatedConsumer); }
@Override protected void doSuspend() throws Exception { if (delegatedConsumer instanceof SuspendableService) { final ServiceEndpoint endpoint = (ServiceEndpoint)getEndpoint(); final ServiceDefinition definition = endpoint.getServiceDefinition(); // de-register service serviceRegistry.deregister(definition); ((SuspendableService)delegatedConsumer).suspend(); } super.doSuspend(); } }
@Override protected void doResume() throws Exception { if (delegatedConsumer instanceof SuspendableService) { final ServiceEndpoint endpoint = (ServiceEndpoint)getEndpoint(); final ServiceDefinition definition = endpoint.getServiceDefinition(); // register service serviceRegistry.register(definition); ((SuspendableService)delegatedConsumer).resume(); } super.doResume(); }
@Override protected void doStop() throws Exception { super.doStop(); final ServiceEndpoint endpoint = (ServiceEndpoint)getEndpoint(); final ServiceDefinition definition = endpoint.getServiceDefinition(); // de-register service serviceRegistry.deregister(definition); // stop delegate ServiceHelper.stopAndShutdownServices(delegatedConsumer); ServiceHelper.stopAndShutdownServices(delegatedEndpoint); delegatedConsumer = null; }