Author: kstam
Date: Mon May 23 17:00:16 2011
New Revision: 1126582

URL: http://svn.apache.org/viewvc?rev=1126582&view=rev
Log:
JUDDI-475, adding support for BPEL

Modified:
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
    
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java?rev=1126582&r1=1126581&r2=1126582&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
 Mon May 23 17:00:16 2011
@@ -187,7 +187,7 @@ public class ClientConfig 
        throws ConfigurationException {
                String[] entityKeys = 
config.getStringArray("manager.clerks.xregister." + entityType + 
"[@entityKey]");
                Set<XRegistration> xRegistrations = new 
HashSet<XRegistration>();
-               log.info("XRegistration " + entityKeys.length + " " + 
entityType + "Keys");
+               if (entityKeys.length > 0) log.info("XRegistration " + 
entityKeys.length + " " + entityType + "Keys");
                for (int i=0; i<entityKeys.length; i++) {
                        XRegistration xRegistration = new XRegistration();
                        
xRegistration.setEntityKey(config.getString("manager.clerks.xregister." + 
entityType + "(" + i + ")[@entityKey]"));

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java?rev=1126582&r1=1126581&r2=1126582&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/Property.java
 Mon May 23 17:00:16 2011
@@ -16,6 +16,7 @@
  */
 package org.apache.juddi.v3.client.config;
 
+import java.net.URL;
 import java.util.Properties;
 
 import javax.xml.namespace.QName;
@@ -37,6 +38,7 @@ public class Property 
        public static final String SERVICE_KEY_FORMAT               = 
"bpelServiceKeyFormat";
        public static final String BUSINESS_KEY_FORMAT              = 
"businessKeyFormat";
        public static final String BINDING_KEY_FORMAT               = 
"bindingKeyFormat";
+       public static final String SUBSCRIPTION_KEY_FORMAT          = 
"subscriptionKeyFormat";
        public static final String SERVICE_DESCRIPTION              = 
"serviceDescription";
        public static final String BINDING_DESCRIPTION              = 
"bindingDescription";
        public static final String SERVICE_CATEGORY_BAG             = 
"serviceCategoryBag";
@@ -44,9 +46,10 @@ public class Property 
        
        //Default Values
        public static final String DEFAULT_LANG                     = "en:";
-       public static final String DEFAULT_BUSINESS_KEY_FORMAT      = 
"uddi:${keyDomain}:${businessName}";
-       public static final String DEFAULT_SERVICE_KEY_FORMAT       = 
"uddi:${keyDomain}:${serviceName}";
-       public static final String DEFAULT_BINDING_KEY_FORMAT       = 
"uddi:${keyDomain}:${nodeName}_${serviceName}_${portName}";
+       public static final String DEFAULT_BUSINESS_KEY_FORMAT      = 
"uddi:${keyDomain}:business_${businessName}";
+       public static final String DEFAULT_SERVICE_KEY_FORMAT       = 
"uddi:${keyDomain}:service_${serviceName}";
+       public static final String DEFAULT_SUBSCRIPTION_KEY_FORMAT  = 
"uddi:${keyDomain}:service_cache_${nodeName}";
+       public static final String DEFAULT_BINDING_KEY_FORMAT       = 
"uddi:${keyDomain}:binding_${nodeName}_${serviceName}_${portName}_${port}";
        public static final String DEFAULT_SERVICE_DESCRIPTION      = "Default 
service description when no <wsdl:document> element is defined inside the 
<wsdl:service> element.";
        public static final String DEFAULT_BINDING_DESCRIPTION      = "Default 
binding description when no <wsdl:document> element is defined inside the 
<wsdl:binding> element.";
        /**
@@ -62,6 +65,12 @@ public class Property 
                String businessKey = TokenResolver.replaceTokens(keyFormat, 
properties).toLowerCase();
                return businessKey;
        }
+       
+       public static String getSubscriptionKey(Properties properties) {
+               String keyFormat = 
properties.getProperty(SUBSCRIPTION_KEY_FORMAT, 
DEFAULT_SUBSCRIPTION_KEY_FORMAT);
+               String subscriptionKey = TokenResolver.replaceTokens(keyFormat, 
properties).toLowerCase();
+               return subscriptionKey;
+       }
        /**
         * Constructs the serviceKey based on the serviceKeyFormat specified in 
the properties. When no
         * serviceKeyFormat is specific the default format of 
uddi:${keyDomain}:${serviceName} is used.
@@ -70,10 +79,10 @@ public class Property 
         * @param serviceName
         * @return the serviceKey
         */
-       public static String getServiceKey(Properties properties, QName 
serviceName) {
+       public static String getServiceKey(Properties properties, QName 
serviceQName) {
                Properties tempProperties = new Properties();
                tempProperties.putAll(properties);
-               tempProperties.put("serviceName", serviceName.getLocalPart());
+               tempProperties.put("serviceName", serviceQName.getLocalPart());
                //Constructing the serviceKey
                String keyFormat = 
tempProperties.getProperty(SERVICE_KEY_FORMAT, DEFAULT_SERVICE_KEY_FORMAT);
                String serviceKey = TokenResolver.replaceTokens(keyFormat, 
tempProperties).toLowerCase();
@@ -88,11 +97,20 @@ public class Property 
         * @param portName
         * @return the bindingKey
         */
-       public static String getBindingKey(Properties properties, QName 
serviceName, String portName) {
+       public static String getBindingKey(Properties properties, QName 
serviceName, String portName, URL bindingUrl) {
                Properties tempProperties = new Properties();
                tempProperties.putAll(properties);
                tempProperties.put("serviceName", serviceName.getLocalPart());
                tempProperties.put("portName", portName);
+               int port = bindingUrl.getPort();
+               if (port==-1) {
+                       if ("http".equals(bindingUrl.getProtocol())) {
+                               port = 80;
+                       } else if ("https".equals(bindingUrl.getProtocol())) {
+                               port = 443;
+                       }
+               }
+               tempProperties.put("port", port);
                //Constructing the binding Key
                String keyFormat = properties.getProperty(BINDING_KEY_FORMAT, 
DEFAULT_BINDING_KEY_FORMAT);
                String bindingKey = TokenResolver.replaceTokens(keyFormat, 
tempProperties).toLowerCase();

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java?rev=1126582&r1=1126581&r2=1126582&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
 Mon May 23 17:00:16 2011
@@ -19,11 +19,14 @@ package org.apache.juddi.v3.client.confi
 import java.io.Serializable;
 import java.lang.reflect.UndeclaredThrowableException;
 import java.rmi.RemoteException;
+import java.util.ArrayList;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
 
+import javax.xml.ws.Holder;
 import javax.xml.ws.soap.SOAPFaultException;
 
 import org.apache.commons.configuration.ConfigurationException;
@@ -44,6 +47,7 @@ import org.uddi.api_v3.BusinessService;
 import org.uddi.api_v3.DeleteBinding;
 import org.uddi.api_v3.DeleteService;
 import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.DiscardAuthToken;
 import org.uddi.api_v3.DispositionReport;
 import org.uddi.api_v3.FindRelatedBusinesses;
 import org.uddi.api_v3.FindTModel;
@@ -62,6 +66,8 @@ import org.uddi.api_v3.ServiceDetail;
 import org.uddi.api_v3.TModel;
 import org.uddi.api_v3.TModelDetail;
 import org.uddi.api_v3.TModelList;
+import org.uddi.sub_v3.DeleteSubscription;
+import org.uddi.sub_v3.Subscription;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 
 public class UDDIClerk implements Serializable {
@@ -74,6 +80,7 @@ public class UDDIClerk implements Serial
        protected String publisher;
        protected String password;
        
+       private Date tokenBirthDate;
        private String authToken;
        private String[] classWithAnnotations;
        private String managerName;
@@ -118,6 +125,35 @@ public class UDDIClerk implements Serial
        public void setManagerName(String managerName) {
                this.managerName = managerName;
        }
+       
+       public Subscription register(Subscription subscription) {
+               return register(subscription, this.getUDDINode().getApiNode());
+       }
+       /**
+        * Register a Subscription.
+        */
+       public Subscription register(Subscription subscription, Node node) {
+               
+               log.info("Registering subscription with key " + 
subscription.getSubscriptionKey());
+               Holder<List<Subscription>> holder = new 
Holder<List<Subscription>>();
+               try {
+                       String authToken = getAuthToken(node.getSecurityUrl());
+                       
+                       List<Subscription> subscriptions = new 
ArrayList<Subscription>();
+                       subscriptions.add(subscription);
+                       holder.value = subscriptions;
+                       
getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).saveSubscription(authToken,
 holder);
+               } catch (Exception e) {
+                       log.error("Unable to register subscription " +  
subscription.getSubscriptionKey()
+                                       + " ." + e.getMessage(),e);
+               } catch (Throwable t) {
+                       log.error("Unable to register subscriptionl " +  
subscription.getSubscriptionKey()
+                                       + " ." + t.getMessage(),t);
+               }
+               log.info("Registering subscription " +  
subscription.getSubscriptionKey() + " completed.");
+               subscription = holder.value.get(0);
+               return subscription;
+       }
        /**
         * Register a tModel, using the node of current clerk ('this').
         * 
@@ -309,6 +345,25 @@ public class UDDIClerk implements Serial
                }
        }
        
+       public void unRegisterSubscription(String subscriptionKey) {
+               unRegisterSubscription(subscriptionKey, 
this.getUDDINode().getApiNode());
+       }
+       
+       public void unRegisterSubscription(String subscriptionKey, Node node) {
+               log.info("UnRegistering subscription with key " + 
subscriptionKey);
+               try {
+                       String authToken = getAuthToken(node.getSecurityUrl());
+                       DeleteSubscription deleteSubscription = new 
DeleteSubscription();
+                       deleteSubscription.setAuthInfo(authToken);
+                       
deleteSubscription.getSubscriptionKey().add(subscriptionKey);
+                       
getUDDINode().getTransport().getUDDISubscriptionService(node.getSubscriptionUrl()).deleteSubscription(deleteSubscription);
+               } catch (Exception e) {
+                       log.error("Unable to unregister subscription key " + 
subscriptionKey
+                                       + " ." + e.getMessage(),e);
+               }
+       }
+       
+       
        public TModelList findTModel(FindTModel findTModel) throws 
RemoteException, ConfigurationException, TransportException {
                return findTModel(findTModel, this.getUDDINode().getApiNode());
        }
@@ -333,6 +388,12 @@ public class UDDIClerk implements Serial
                return null;
        }
        
+       public TModelDetail getTModelDetail(String tModelKey) throws 
RemoteException, ConfigurationException, TransportException {
+               GetTModelDetail getTModelDetail = new GetTModelDetail();
+               getTModelDetail.getTModelKey().add(tModelKey);
+               return getTModelDetail(getTModelDetail);
+       }
+       
        public TModelDetail getTModelDetail(GetTModelDetail getTModelDetail) 
throws RemoteException, ConfigurationException, TransportException {
                return getTModelDetail(getTModelDetail, 
this.getUDDINode().getApiNode());
        }
@@ -496,7 +557,15 @@ public class UDDIClerk implements Serial
        }
        
        private String getAuthToken(String endpointURL) throws 
TransportException, DispositionReportFaultMessage, RemoteException {
+               //if the token is older then 10 minutes discard it, and create 
a new one.
+               if (tokenBirthDate !=null && System.currentTimeMillis() > 
tokenBirthDate.getTime() + 600000 ) {
+                       DiscardAuthToken discardAuthToken = new 
DiscardAuthToken();
+                       discardAuthToken.setAuthInfo(authToken);
+                       
getUDDINode().getTransport().getUDDISecurityService(endpointURL).discardAuthToken(discardAuthToken);
+                       authToken=null;
+               }
                if (authToken==null) {
+                       tokenBirthDate = new Date();
                        GetAuthToken getAuthToken = new GetAuthToken();
                        getAuthToken.setUserID(getPublisher());
                        getAuthToken.setCred(getPassword());

Modified: 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java
URL: 
http://svn.apache.org/viewvc/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java?rev=1126582&r1=1126581&r2=1126582&view=diff
==============================================================================
--- 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java
 (original)
+++ 
juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/mapping/BPEL2UDDI.java
 Mon May 23 17:00:16 2011
@@ -102,7 +102,7 @@ public class BPEL2UDDI extends Annotatio
                this.businessKey = Property.getBusinessKey(properties);
                this.lang = 
properties.getProperty(Property.LANG,Property.DEFAULT_LANG);
                
-               this.wsdl2UDDI = new WSDL2UDDI(properties);
+               this.wsdl2UDDI = new WSDL2UDDI(clerk, urlLocalizer, properties);
        }
        
        public String getKeyDomainURI() {
@@ -155,7 +155,7 @@ public class BPEL2UDDI extends Annotatio
         * @throws RemoteException 
         */
        @SuppressWarnings("unchecked")
-       public void register(QName serviceName, String portName, URL 
serviceUrl, Definition wsdlDefinition) 
+       public BindingTemplate register(QName serviceName, String portName, URL 
serviceUrl, Definition wsdlDefinition) 
                throws WSDLException, MalformedURLException, RemoteException, 
ConfigurationException, TransportException 
        {
                String targetNamespace = wsdlDefinition.getTargetNamespace();
@@ -187,15 +187,16 @@ public class BPEL2UDDI extends Annotatio
                //Add the BindingTemplate to this Service
                BindingTemplate binding = createBPELBinding(serviceName, 
portName, serviceUrl, wsdlDefinition);
                // Register BindingTemplate
-               clerk.register(binding); 
+               clerk.register(binding);
+               return binding;
        }
        
-       public void unRegister(QName serviceName, String portName) throws 
RemoteException, ConfigurationException, TransportException {
+       public String unRegister(QName serviceName, String portName, URL 
serviceUrl) throws RemoteException, ConfigurationException, TransportException {
                
                String serviceKey = Property.getServiceKey(properties, 
serviceName);
                BusinessService service = lookupService(serviceKey);
                boolean isRemoveServiceIfNoTemplates = true; 
-               String bindingKey = Property.getBindingKey(properties, 
serviceName, portName);
+               String bindingKey = Property.getBindingKey(properties, 
serviceName, portName, serviceUrl);
                //check if this bindingKey is in the service's binding templates
                for (BindingTemplate bindingTemplate : 
service.getBindingTemplates().getBindingTemplate()) {
                        if (bindingKey.equals(bindingTemplate.getBindingKey())) 
{
@@ -247,19 +248,12 @@ public class BPEL2UDDI extends Annotatio
                                                                }
                                                        }
                                                }
-                                               
-                                               System.out.println("done");
-                                               
                                        }
-                                       
-                                       //also unRegister the related tModels
-                                       //first obtain the wsdl for this 
binding/service, so that we can derive the tModelKeys
-                                       //or know to run a find tModels
                                }
                                break;
                        }
                }
-                       
+               return service.getServiceKey(); 
        }
        /**
         * Perform a lookup by serviceKey, and will return null if not found.
@@ -395,7 +389,7 @@ public class BPEL2UDDI extends Annotatio
                // Set BusinessService Key
                
bindingTemplate.setServiceKey(Property.getServiceKey(properties, serviceName));
                // Set Binding Key
-               String bindingKey = Property.getBindingKey(properties, 
serviceName, portName);
+               String bindingKey = Property.getBindingKey(properties, 
serviceName, portName, serviceUrl);
                bindingTemplate.setBindingKey(bindingKey);
                // Set AccessPoint
                AccessPoint accessPoint = new AccessPoint();
@@ -538,7 +532,7 @@ public class BPEL2UDDI extends Annotatio
     /**
      * Find all portTypes used in the given process. This should return the 
      * tModel registration for the process tModel. The tModelKeys for the 
-     * portTypes used in the process can be obtained from the process tModelÕs 
+     * portTypes used in the process can be obtained from the process tModels 
      * categoryBag, and passed into the second call.
      * 
      * @param processKey



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to