You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/11/08 04:51:39 UTC
svn commit: r1539915 - in /juddi/trunk/juddi-examples/service-version: ./
src/main/java/ src/main/java/org/ src/main/java/org/apache/
src/main/java/org/apache/juddi/ src/main/java/org/apache/juddi/examples/
src/main/java/org/apache/juddi/examples/servi...
Author: alexoree
Date: Fri Nov 8 03:51:39 2013
New Revision: 1539915
URL: http://svn.apache.org/r1539915
Log:
JUDDI-509 Service versioning example added for java client
Added:
juddi/trunk/juddi-examples/service-version/pom.xml
juddi/trunk/juddi-examples/service-version/src/main/java/
juddi/trunk/juddi-examples/service-version/src/main/java/org/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/
juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/ServiceVersioningExample.java
Added: juddi/trunk/juddi-examples/service-version/pom.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-examples/service-version/pom.xml?rev=1539915&view=auto
==============================================================================
--- juddi/trunk/juddi-examples/service-version/pom.xml (added)
+++ juddi/trunk/juddi-examples/service-version/pom.xml Fri Nov 8 03:51:39 2013
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.juddi.example</groupId>
+ <artifactId>juddi-examples</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.apache.juddi</groupId>
+ <artifactId>service-version</artifactId>
+ <version>3.2-SNAPSHOT</version>
+ <name>jUDDI Example Service Versioning</name>
+ <url>http://maven.apache.org</url>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ </properties>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>juddi-client</artifactId>
+ <version>3.2.0-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+</project>
Added: juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/ServiceVersioningExample.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/ServiceVersioningExample.java?rev=1539915&view=auto
==============================================================================
--- juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/ServiceVersioningExample.java (added)
+++ juddi/trunk/juddi-examples/service-version/src/main/java/org/apache/juddi/examples/service/version/ServiceVersioningExample.java Fri Nov 8 03:51:39 2013
@@ -0,0 +1,197 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * 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.
+ *
+ */
+package org.apache.juddi.examples.service.version;
+
+import java.util.Iterator;
+import java.util.Set;
+import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.UDDIClerk;
+import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.client.transport.Transport;
+import org.uddi.api_v3.AccessPoint;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.BindingTemplates;
+import org.uddi.api_v3.BusinessEntity;
+import org.uddi.api_v3.BusinessService;
+import org.uddi.api_v3.BusinessServices;
+import org.uddi.api_v3.FindBinding;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
+import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.GetServiceDetail;
+import org.uddi.api_v3.Name;
+import org.uddi.api_v3.ServiceDetail;
+import org.uddi.api_v3.ServiceList;
+import org.uddi.api_v3.TModel;
+import org.uddi.api_v3.TModelDetail;
+import org.uddi.api_v3.TModelInstanceDetails;
+import org.uddi.v3_service.UDDIInquiryPortType;
+import org.uddi.v3_service.UDDIPublicationPortType;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * Hello world!
+ *
+ * This gives you an example of one way to use service version with UDDI and is
+ * a partial solution to https://issues.apache.org/jira/browse/JUDDI-509
+ * http://www.ibm.com/developerworks/webservices/library/ws-version/
+ *
+ */
+public class ServiceVersioningExample {
+
+ public static void main(String[] args) throws Exception {
+ System.out.println("Hello World!");
+ new ServiceVersioningExample().go();
+ }
+
+ /**
+ * Main entry point
+ */
+ private void go() throws Exception {
+
+ Init();
+
+ Setup();
+
+ ServiceLookUpByName();
+
+ ServiceLookUpByVersion();
+
+ Destroy();
+ }
+
+ /**
+ * This will setup new a business, service, and binding template that's
+ * versioned per the article linked above
+ */
+ private void Setup() {
+
+ BusinessEntity be = new BusinessEntity();
+ keygen = clerk.register(UDDIClerk.createKeyGenator(domain_prefix + "keygenerator", "my domain", lang)).getTModel().get(0);
+ be.setBusinessServices(new BusinessServices());
+ be.setBusinessKey(domain_prefix + "zerocoolbiz");
+ be.getName().add(new Name("ZeroCool Business", lang));
+ BusinessService bs = new BusinessService();
+ bs.getName().add(new Name("ZeroCool Service", lang));
+ bs.setBindingTemplates(new BindingTemplates());
+ bs.setBusinessKey(domain_prefix + "zerocoolbiz");
+ bs.setServiceKey(domain_prefix + "zerocoolsvc");
+
+ //version 1
+ BindingTemplate bt1 = new BindingTemplate();
+ String version = "1.0.0.0";
+ bt1.setBindingKey(domain_prefix + "binding10");
+ bt1.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
+ bt1.setTModelInstanceDetails(new TModelInstanceDetails());
+ bt1.getTModelInstanceDetails().getTModelInstanceInfo().add(UDDIClerk.createServiceInterfaceVersion(version, lang));
+ bs.getBindingTemplates().getBindingTemplate().add(bt1);
+
+
+ //version 2
+ BindingTemplate bt2 = new BindingTemplate();
+ bt2.setBindingKey(domain_prefix + "binding12");
+ String version2 = "1.2.0.0";
+ bt2.setAccessPoint(new AccessPoint("http://localhost", "wsdl"));
+ bt2.setTModelInstanceDetails(new TModelInstanceDetails());
+ bt2.getTModelInstanceDetails().getTModelInstanceInfo().add(UDDIClerk.createServiceInterfaceVersion(version2, lang));
+ bs.getBindingTemplates().getBindingTemplate().add(bt2);
+
+ be.getBusinessServices().getBusinessService().add(bs);
+ clerk.register(be);
+
+ }
+ private String domain_prefix = "uddi:mydomain.com:";
+ ;
+ private String lang = "en";
+
+ /**
+ * this will look up our service by name and we'll discover multiple
+ * bindings with different versions
+ */
+ private void ServiceLookUpByName() throws Exception {
+
+ //here we are assuming we don't know what key is used for the service, so we look it up
+ FindService fs = new FindService();
+ fs.setFindQualifiers(new FindQualifiers());
+ fs.getFindQualifiers().getFindQualifier().add(UDDIConstants.EXACT_MATCH);
+ fs.getName().add(new Name("ZeroCool Service", lang));
+ ServiceList findService = inquiry.findService(fs);
+
+ //parse the results and get a list of services to get the details on
+ GetServiceDetail gsd = new GetServiceDetail();
+ for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
+ gsd.getServiceKey().add(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey());
+ }
+ ServiceDetail serviceDetail = inquiry.getServiceDetail(gsd);
+
+ //parse the service details, looking for our versioned service
+ if (serviceDetail != null) {
+ for (int i = 0; i < serviceDetail.getBusinessService().size(); i++) {
+ if (serviceDetail.getBusinessService().get(i).getBindingTemplates() != null) {
+ Set<BindingTemplate> bindingByVersion = UDDIClerk.getBindingByVersion("1.2.0.0", serviceDetail.getBusinessService().get(i).getBindingTemplates().getBindingTemplate());
+ Iterator<BindingTemplate> iterator = bindingByVersion.iterator();
+ while (iterator.hasNext()) {
+ BindingTemplate next = iterator.next();
+ System.out.println("SUCCESS! Found the right version on key " + next.getBindingKey());
+ //TODO so now that you've found the right version of the right service
+ //now you can go execute that the url
+ }
+
+ }
+ }
+ }
+ }
+
+ /**
+ * this will look up our service by name and version number
+ */
+ private void ServiceLookUpByVersion() throws Exception {
+ //here we are assuming we don't know what key is used for the service, so we look it up
+ //TODO
+ }
+ private TModel keygen = null;
+ private UDDISecurityPortType security = null;
+ private UDDIInquiryPortType inquiry = null;
+ private UDDIPublicationPortType publish = null;
+ private UDDIClient client = null;
+ private UDDIClerk clerk = null;
+
+ private void Init() {
+ try {
+ // create a client and read the config in the archive;
+ // you can use your config file name
+ client = new UDDIClient("META-INF/uddi.xml");
+ clerk = client.getClerk("default");
+ // a UddiClient can be a client to multiple UDDI nodes, so
+ // supply the nodeName (defined in your uddi.xml.
+ // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
+ Transport transport = client.getTransport("default");
+ // Now you create a reference to the UDDI API
+ security = transport.getUDDISecurityService();
+ inquiry = transport.getUDDIInquiryService();
+ publish = transport.getUDDIPublishService();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ private void Destroy() {
+ clerk.unRegisterBusiness(domain_prefix + "zerocoolbiz");
+ clerk.unRegisterTModel(keygen.getTModelKey());
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@juddi.apache.org
For additional commands, e-mail: commits-help@juddi.apache.org