/* * #%L * Locator REST Service Example :: client * %% * Copyright (C) 2011 - 2012 Talend Inc. * %% * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * #L% */ package org.talend.esb.locator.rest.service.example; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import javax.ws.rs.WebApplicationException; import javax.xml.ws.wsaddressing.W3CEndpointReference; import org.springframework.context.support.ClassPathXmlApplicationContext; import org.talend.services.esb.locator.rest.v1.LocatorService; import org.talend.schemas.esb.locator._2011._11.BindingType; import org.talend.schemas.esb.locator.rest._2011._11.EndpointReferenceList; import org.talend.schemas.esb.locator.rest._2011._11.RegisterEndpointRequest; import org.talend.schemas.esb.locator._2011._11.TransportType; public final class RESTClient { private RESTClient() throws IOException { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "META-INF/spring/beans.xml" }); LocatorService client = (LocatorService) context.getBean("restClient"); try { System.out.println("************************ Register 3 endpoints ****************************"); registerExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint1"); registerExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint2"); registerExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint3"); System.out.println("************************ Get all endpoints from service ****************************"); lookupEndpointsExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl"); System.out.println("************************ Get one random endpoint from service ****************************"); lookupEndpointExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl"); lookupEndpointExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl"); lookupEndpointExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl"); System.out.println("************************ Unregister 3 endpoints ****************************"); unregisterExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint1"); unregisterExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint2"); unregisterExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl", "http://services.talend.org/TestEndpoint3"); System.out.println("************************ Get all endpoints from service (Expect 404 error ****************************"); lookupEndpointsExample(client, "{http://service.locator.esb.talend.org}LocatorRestServiceImpl"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } public static void main(String args[]) throws java.lang.Exception { new RESTClient(); } private void registerExample(LocatorService client, String service, String endpoint) { System.out.println("------------------------------"); System.out.println("Register service with endpoint"); System.out.println("ServiceName: ".concat(service)); System.out.println("EndpointURL: ".concat(endpoint)); RegisterEndpointRequest registerEndpointRequest = new RegisterEndpointRequest(); registerEndpointRequest.setBinding(BindingType.JAXRS); registerEndpointRequest.setTransport(TransportType.HTTPS); registerEndpointRequest.setEndpointURL(endpoint); registerEndpointRequest.setServiceName(service); try { client.registerEndpointRegisterEndpointRequestXml(registerEndpointRequest); System.out.println("Endpoint registered successfully"); } catch (WebApplicationException ex) { System.err.println(ex.getMessage()); } } private void unregisterExample(LocatorService client, String service, String endpoint) throws UnsupportedEncodingException { System.out.println("------------------------------"); System.out.println("Unregister endpoint"); System.out.println("ServiceName: ".concat(service)); System.out.println("EndpointURL: ".concat(endpoint)); try { client.unregisterEndpoint(URLEncoder.encode(service, "UTF-8"), URLEncoder.encode(endpoint, "UTF-8")); } catch (WebApplicationException ex) { System.err.println(ex.getResponse().getStatus() + ": " + ex.getMessage()); } } private void lookupEndpointsExample(LocatorService client, String service) throws IOException { System.out.println("------------------------------"); System.out.println("LookupEndpoints"); try { EndpointReferenceList endpointReferenceList = client.lookupEndpoints(URLEncoder.encode(service, "UTF-8"), null); if(endpointReferenceList.getEndpointReference().size() > 0) { for (W3CEndpointReference w3cEndpointReference : endpointReferenceList.getEndpointReference()) { System.out.println(w3cEndpointReference.toString()); } } } catch(WebApplicationException ex) { System.out.println(ex.getMessage()); } } private void lookupEndpointExample(LocatorService client, String service) throws IOException { System.out.println("------------------------------"); System.out.println("LookupEndpoint"); try { W3CEndpointReference w3cEndpointReference = client.lookupEndpoint(URLEncoder.encode(service, "UTF-8"), null); System.out.println(w3cEndpointReference.toString()); } catch(WebApplicationException ex) { System.out.println(ex.getMessage()); } } }