code: @Override
      public void registerService(ISemanticLocator packedServiceDescriptor) throws ServiceExecutionException
      {
          try
          {
  
              BSDFLogger.getLogger().info("Deploys service(s) from: " + packedServiceDescriptor.toString());
  
              Collection<ISemanticIdentifier> deployedServices = this.deploy(packedServiceDescriptor, bsdmServiceRegistry);
  
              for (ISemanticIdentifier deployedService : deployedServices)
              {
                  this.messageBroker.registerService(
                          this.bsdmServiceRegistry.getService(deployedService).applyConnectorURL(this.urlContainer));
              }
  
          } catch (ModelException ex)
          {
              BSDFLogger.getLogger().debug("Cannot deploy service(s) from: " + packedServiceDescriptor.toString()
                      + " . Exception: " + ex.toString());
              throw new ServiceExecutionException(ex.getMessage(), ex);
          }
      }
docs: /*
  With the current implementation, a service must be registered before the
  message broker is started... or restart the broker to activate messaging for
  that service.