/** * Search the service artifacts stored in the registry and find the set of services that satisfy * the conditions stated in the given WS-D probe. If the probe does not impose any restrictions on * the result set, all the services in the registry will be returned. * * @param probe a WS-D probe describing the search criteria * @return an array of TargetService instances matching the probe or null * @throws Exception if an error occurs while accessing the registry */ public static TargetService[] findServices(Probe probe) throws Exception { ServiceManager serviceManager = new ServiceManager(getRegistry()); DiscoveryServiceFilter filter = new DiscoveryServiceFilter(probe); // Check whether the inactive services should be skipped when searching AxisConfiguration axisConfig; String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(true); ConfigurationContext mainCfgCtx = ConfigHolder.getInstance().getServerConfigurationContext(); if (tenantDomain != MultitenantConstants.SUPER_TENANT_DOMAIN_NAME) { axisConfig = TenantAxisUtils.getTenantAxisConfiguration(tenantDomain, mainCfgCtx); } else { axisConfig = mainCfgCtx.getAxisConfiguration(); } Parameter parameter = axisConfig.getParameter(DiscoveryConstants.SKIP_INACTIVE_SERVICES); filter.setSkipInactiveServices(parameter == null || "true".equals(parameter.getValue())); Service[] services = serviceManager.findServices(filter); if (services != null && services.length > 0) { TargetService[] targetServices = new TargetService[services.length]; for (int i = 0; i < services.length; i++) { targetServices[i] = getTargetService(services[i]); } return targetServices; } return null; }
private static Registry getRegistry() throws DiscoveryException { String domain = CarbonContext.getThreadLocalCarbonContext().getTenantDomain(); if (domain != MultitenantConstants.SUPER_TENANT_DOMAIN_NAME) { AxisConfiguration axisConfig = TenantAxisUtils.getTenantAxisConfiguration( domain, ConfigHolder.getInstance().getServerConfigurationContext()); return (Registry) PrivilegedCarbonContext.getCurrentContext(axisConfig) .getRegistry(RegistryType.SYSTEM_GOVERNANCE); } return (Registry) PrivilegedCarbonContext.getCurrentContext().getRegistry(RegistryType.SYSTEM_GOVERNANCE); }