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