@Override
 public synchronized void destroy() {
   try {
     _endpointPublisher.stop();
   } catch (Exception ex) {
     SCALogger.ROOT_LOGGER.failedToDestroyRemoteEndpointPublisher(ex);
   }
 }
 /** Default constructor. */
 public SCAComponent() {
   super(SCAActivator.TYPES);
   setName("RemoteComponent");
   try {
     initEndpointPublisher();
   } catch (Exception ex) {
     SCALogger.ROOT_LOGGER.failedToInitializeRemoteEndpointPublisher(ex);
   }
 }
 private void initEndpointPublisher() {
   _endpointPublisher = ProviderRegistry.getProvider(RemoteEndpointPublisher.class);
   // if we couldn't find a provider, default to NOP implementation
   if (_endpointPublisher == null) {
     _endpointPublisher = new NOPEndpointPublisher();
     SCALogger.ROOT_LOGGER.noEndpointPublisherRegistered();
   }
   _endpointPublisher.init(CONTEXT_PATH);
 }
  @Override
  public Activator createActivator(ServiceDomain domain) {
    if (_cache == null) {
      lookupCache(_cacheName);
      if (_cache == null) {
        SCALogger.ROOT_LOGGER.unableToResolveCacheContainer(_cacheName);
      }
    }

    SCAActivator activator = new SCAActivator(_cache);
    activator.setServiceDomain(domain);
    activator.setEndpointPublisher(_endpointPublisher);
    activator.setDisableRemoteTransaction(_disableRemoteTransaction);
    return activator;
  }