Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info
iconfalse

Web Service is one of many well-defined extension points supported by the WSO2 Governance Registry. Read more on Supported Extension Points for a complete list of extension points supported by WSO2 Governance Registry.

...

Code Block
languagehtml/xml
<dependency>
    <groupId>org.wso2.carbon</groupId>
    <artifactId>org.wso2.carbon.governance.api</artifactId>
    <version>4.02.1<0</version>
</dependency>

3. Add the following plugin to your POM file:

...

Code Block
languagejava
package org.wso2.carbon.registry.samples.services;
 
import org.wso2.carbon.governance.api.exception.GovernanceException;
import org.wso2.carbon.governance.api.services.ServiceFilter;
import org.wso2.carbon.governance.api.services.ServiceManager;
import org.wso2.carbon.governance.api.services.dataobjects.Service;
import org.wso2.carbon.registry.core.Registry;
import org.wso2.carbon.registry.core.exceptions.RegistryException;
 
import java.util.LinkedList;
import java.util.List;
 
public class EndpointLookupService {
 
    private Registry governanceRegistry;
 
    public EndpointLookupService() {
        try {
            governanceRegistry = EndpointLookupServiceComponent.getRegistryService()
                    .getGovernanceSystemRegistry();
        } catch (RegistryException e) {
            e.printStackTrace();
        }
    }
 
    public String[] getEndpoints(final String serviceName, final String serviceNamespace,
                                 final String version, final String environment)
            throws GovernanceException, RegistryException {
        ServiceManager manager = new ServiceManager(governanceRegistry);
        Service[] services = manager.findServices(new ServiceFilter() {
            public boolean matches(Service service) throws GovernanceException {
                return serviceName.equals(service.getQName().getLocalPart()) &&
                        (serviceNamespace == null || serviceNamespace.length() == 0 ||
                                serviceNamespace.equals(service.getQName().getNamespaceURI())) &&
                        (version == null || version.length() == 0 ||
                                version.equals(service.getAttribute("overview_version")));
            }
        });
        if (services != null && services.length > 0) {
            List<String> endpoints = new LinkedList<String>();
            for (Service service : services) {
                String[] entries = service.getAttributes("endpoints_entry");
                if (entries != null && entries.length > 0) {
                    for (String entry : entries) {
                        int idx = entry.indexOf(":");
                        if (entry.substring(0, idx).equals(environment)) {
                            endpoints.add(entry.substring(idx + 1));
                        }
                    }
                }
            }
            return endpoints.toArray(new String[endpoints.size()]);
        }
        return new String[0];
    }
}

...

9. Copy the GREG_HOME/ samples/handler/src/target/org.wso2.carbon.registry.samples.handler-4.6.0.jar into GREG_HOME/repository/components/dropins.

...

4. Fill in the following payload as the request:. At least one endpoint must exist for the Dev environment in order to receive a response.

Code Block
languagehtml/xml
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ser="http://services.samples.registry.carbon.wso2.org">
   <soap:Header/>
   <soap:Body>
      <ser:getEndpoints>
         <ser:serviceName>SimpleStockQuoteService</ser:serviceName>
         <ser:environment>Dev</ser:environment>
      </ser:getEndpoints>
   </soap:Body>
</soap:Envelope>

...