public static void removeService(TargetService service, Map<String, String> headerMap)
      throws Exception {
    ServiceManager serviceManager = new ServiceManager(getRegistry());
    String serviceId = service.getEpr().getAddress();

    Service oldService = serviceManager.getService(serviceId);
    oldService.deactivate();
  }
  /**
   * Find the WS-D target service identified by the given WS-D identifier.
   *
   * @param epr WS-D service identifier
   * @return a TargetService instance with the given ID or null if no such service exists
   * @throws Exception if an error occurs while accessing the registry
   */
  public static TargetService getService(EndpointReference epr) throws Exception {
    ServiceManager serviceManager = new ServiceManager(getRegistry());
    Service service = serviceManager.getService(epr.getAddress());
    if (service == null) {
      return null;
    }

    return getTargetService(service);
  }
 private void addService(String nameSpace, String serviceName) throws RegistryException {
   ServiceManager serviceManager = new ServiceManager(governance);
   Service service;
   service = serviceManager.newService(new QName(nameSpace, serviceName));
   serviceManager.addService(service);
   for (String serviceId : serviceManager.getAllServiceIds()) {
     service = serviceManager.getService(serviceId);
     if (service.getPath().endsWith(serviceName)) {
       Resource resource = governance.get(service.getPath());
       resource.addProperty("x", "10");
       governance.put(service.getPath(), resource);
     }
   }
 }
  /**
   * Add a discovered target service to the governance registry. This method will also create the
   * endpoint artifacts for the service and attach them with the related service artifacts. The
   * service artifact will be given an auto generated name.
   *
   * @param service WS-D target service to be added to the registry
   * @throws Exception if an error occurs while saving the artifacts to the registry
   */
  public static void addService(TargetService service, Map<String, String> headerMap)
      throws Exception {
    ServiceManager serviceManager = new ServiceManager(getRegistry());
    String serviceId = service.getEpr().getAddress();

    // This part is use to remove the prefix of Service ID
    if (serviceId.startsWith(DiscoveryConstants.EPR_ADDRESS_PREFIX)) {
      serviceId = serviceId.replace(DiscoveryConstants.EPR_ADDRESS_PREFIX, "");
    }

    // Delete the existing stuff and start fresh
    Service oldService = serviceManager.getService(serviceId);
    String serviceName = null;
    if (oldService != null) {
      // TODO: Change this once the necessary improvements are in the governance API
      serviceName = oldService.getQName().getLocalPart();
      serviceManager.removeService(serviceId);
    }

    // Create a new service (Use the discovery namespace)
    if (serviceName == null) {
      if (headerMap.containsKey(DiscoveryConstants.DISCOVERY_HEADER_SERVICE_NAME)) {
        serviceName =
            headerMap.get(DiscoveryConstants.DISCOVERY_HEADER_SERVICE_NAME).replace("/", "_");
      } else {
        serviceName =
            DiscoveryConstants.SERVICE_NAME_PREFIX + new GregorianCalendar().getTimeInMillis();
      }
    }

    Service newService =
        serviceManager.newService(
            new QName(DiscoveryConstants.WS_DISCOVERY_NAMESPACE, serviceName));
    newService.setId(serviceId);

    // Set the version if provided
    if (service.getMetadataVersion() != -1) {
      newService.addAttribute(
          DiscoveryConstants.ATTR_METADATA_VERSION, String.valueOf(service.getMetadataVersion()));
    }

    // Store other service metadata (scopes, types, x-addresses)
    QName[] types = service.getTypes();
    String typeList = "";
    if (types != null && types.length > 0) {
      for (int i = 0; i < types.length; i++) {
        typeList = typeList.concat(types[i].toString());
        if (i != types.length - 1) {
          typeList = typeList.concat(",");
        }
      }
    }
    newService.setAttribute(DiscoveryConstants.ATTR_TYPES, typeList);

    URI[] scopes = service.getScopes();
    String scopeList = "";
    if (scopes != null && scopes.length > 0) {
      for (int i = 0; i < scopes.length; i++) {
        scopeList = scopeList.concat(scopes[i].toString());
        if (i != scopes.length - 1) {
          scopeList = scopeList.concat(",");
        }
      }
    }
    newService.setAttribute(DiscoveryConstants.ATTR_SCOPES, scopeList);

    URI[] uris = service.getXAddresses();
    String[] endpoints = new String[uris.length];
    for (int i = 0; i < uris.length; i++) {
      endpoints[i] = ":" + uris[i].toString();
    }
    boolean activate = false;
    if (uris != null && uris.length > 0) {
      newService.setAttributes(DiscoveryConstants.ATTR_ENDPOINTS, endpoints);
      activate = true;
    }

    if (headerMap.containsKey(DiscoveryConstants.DISCOVERY_HEADER_WSDL_URI)
        && headerMap.get(DiscoveryConstants.DISCOVERY_HEADER_WSDL_URI) != "") {
      newService.setAttribute(
          "interface_wsdlURL", headerMap.get(DiscoveryConstants.DISCOVERY_HEADER_WSDL_URI));
    }

    // One hot discovered service coming thru....
    serviceManager.addService(newService);
    if (activate) {
      newService.activate();
    }
  }
 public static void remove(TargetService service) throws Exception {
   ServiceManager serviceManager = new ServiceManager(getRegistry());
   if (serviceManager.getService(service.getEpr().getAddress()) != null) {
     serviceManager.removeService(service.getEpr().getAddress());
   }
 }