You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2009/10/13 15:31:44 UTC

svn commit: r824752 [1/2] - in /webservices/juddi/trunk: ./ juddi-client/ juddi-client/src/main/java/org/apache/juddi/v3/client/config/ juddi-client/src/main/java/org/apache/juddi/v3/client/transport/ juddi-client/src/test/java/org/apache/juddi/v3/clie...

Author: kstam
Date: Tue Oct 13 13:31:43 2009
New Revision: 824752

URL: http://svn.apache.org/viewvc?rev=824752&view=rev
Log:
JUDDI-240 adding API for managing ClientSubscriptionInfos.

Added:
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/ClientSubscriptionInfo.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateClientSubscriptionInfo.java
    webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_100_ClientSubscriptionInfoTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_100_ClientSubscriptionInfoTest.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/Clerk.java   (contents, props changed)
      - copied, changed from r824485, webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/ClientSubscriptionInfo.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/ClientSubscriptionInfoDetail.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/DeleteClientSubscriptionInfo.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/GetAllClientSubscriptionInfoDetail.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/GetClientSubscriptionInfoDetail.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/Node.java   (contents, props changed)
      - copied, changed from r824485, webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/SaveClientSubscriptionInfo.java
Removed:
    webservices/juddi/trunk/juddi-cxf/src/main/resources/
Modified:
    webservices/juddi/trunk/juddi-client/pom.xml
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/InVMTransport.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java
    webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/RMITransport.java
    webservices/juddi/trunk/juddi-client/src/test/java/org/apache/juddi/v3/client/UDDIClerkManagerTest.java
    webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch
    webservices/juddi/trunk/juddi-core/pom.xml
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
    webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/JUDDIApiService.java
    webservices/juddi/trunk/juddi-core/src/main/resources/messages.properties
    webservices/juddi/trunk/juddi-core/src/main/resources/persistence/openjpa-persistence.xml
    webservices/juddi/trunk/juddiv3-war/persistence/hibernate-persistence.xml
    webservices/juddi/trunk/juddiv3-war/persistence/openjpa-persistence.xml
    webservices/juddi/trunk/pom.xml
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_010_PublisherIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_030_BusinessEntityIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_040_BusinessServiceIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_050_BindingTemplateIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_060_PublisherAssertionIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_070_FindEntityIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java
    webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationTest.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/api_v3/Publisher.java
    webservices/juddi/trunk/uddi-ws/src/main/java/org/apache/juddi/v3_service/JUDDIApiPortType.java

Modified: webservices/juddi/trunk/juddi-client/pom.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/pom.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/pom.xml (original)
+++ webservices/juddi/trunk/juddi-client/pom.xml Tue Oct 13 13:31:43 2009
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?>
+	<?xml version="1.0" encoding="UTF-8"?>
 <!--
  * Copyright 2001-2009 The Apache Software Foundation.
  *

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/ClientConfig.java Tue Oct 13 13:31:43 2009
@@ -41,8 +41,8 @@
 	private final static String UDDI_CONFIG = "META-INF/uddi.xml";
 	private Logger log = Logger.getLogger(ClientConfig.class);
 	private Configuration config = null;;
-	private Map<String,UDDINode> nodes = null;
-	private Map<String,UDDIClerk> clerks = null;
+	private Map<String,UDDINode> uddiNodes = null;
+	private Map<String,UDDIClerk> uddiClerks = null;
 	private Set<XRegistration> xRegistrations = null;
 	private String managerName = null;
 	
@@ -55,9 +55,9 @@
 		loadConfiguration();
 	}
 	protected void loadManager() throws ConfigurationException {
-		nodes = readNodeConfig(config);
-		clerks = readClerkConfig(config, nodes);
-		xRegistrations = readXRegConfig(config,clerks);
+		uddiNodes = readNodeConfig(config);
+		uddiClerks = readClerkConfig(config, uddiNodes);
+		xRegistrations = readXRegConfig(config,uddiClerks);
 	}
 	/**
 	 * Does the actual work of reading the configuration from System
@@ -82,7 +82,7 @@
 		loadManager();
 	}
 
-	private Map<String,UDDIClerk> readClerkConfig(Configuration config, Map<String,UDDINode> nodes) 
+	private Map<String,UDDIClerk> readClerkConfig(Configuration config, Map<String,UDDINode> uddiNodes) 
 	throws ConfigurationException {
 		managerName = config.getString("manager[@name]");
 		Map<String,UDDIClerk> clerks = new HashMap<String,UDDIClerk>();
@@ -95,9 +95,9 @@
 				uddiClerk.setManagerName(managerName);
 				uddiClerk.setName(     config.getString("manager.clerks.clerk(" + i + ")[@name]"));
 				String nodeRef = config.getString("manager.clerks.clerk(" + i + ")[@node]");
-				if (!nodes.containsKey(nodeRef)) throw new ConfigurationException("Could not find Node with name=" + nodeRef);
-				UDDINode node = nodes.get(nodeRef);
-				uddiClerk.setNode(node);
+				if (!uddiNodes.containsKey(nodeRef)) throw new ConfigurationException("Could not find Node with name=" + nodeRef);
+				UDDINode uddiNode = uddiNodes.get(nodeRef);
+				uddiClerk.setUDDINode(uddiNode);
 				uddiClerk.setPublisher(config.getString("manager.clerks.clerk(" + i + ")[@publisher]"));
 				uddiClerk.setPassword( config.getString("manager.clerks.clerk(" + i + ")[@password]"));
 				String[] classes = config.getStringArray("manager.clerks.clerk(" + i + ").class");
@@ -184,12 +184,12 @@
 		return xRegistrations;
 	}
 	
-	public Map<String, UDDINode> getNodes() {
-		return nodes;
+	public Map<String, UDDINode> getUDDINodes() {
+		return uddiNodes;
 	}
 	
-	public Map<String,UDDIClerk> getClerks() {
-		return clerks;
+	public Map<String,UDDIClerk> getUDDIClerks() {
+		return uddiClerks;
 	}
 	
 	public Set<XRegistration> getXRegistrations() {

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerk.java Tue Oct 13 13:31:43 2009
@@ -1,5 +1,6 @@
 package org.apache.juddi.v3.client.config;
 
+import java.io.Serializable;
 import java.rmi.RemoteException;
 import java.util.HashMap;
 import java.util.List;
@@ -20,22 +21,45 @@
 import org.uddi.api_v3.ServiceDetail;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 
-public class UDDIClerk {
+public class UDDIClerk implements Serializable {
 
+	private static final long serialVersionUID = -8597375975981358134L;
 	private Logger log = Logger.getLogger(this.getClass());
-	private String name;
-	private UDDINode node;
-	private String publisher;
-	private String password;
-	private String[] classWithAnnotations;
+	
+	protected String name;
+	protected UDDINode uddiNode;
+	protected String publisher;
+	protected String password;
+	
 	private String authToken;
+	private String[] classWithAnnotations;
 	private String managerName;
+
 	private Map<String,Properties> services = new HashMap<String,Properties>(); 
 
-	public UDDIClerk() {
-		super();
+	public String[] getClassWithAnnotations() {
+		return classWithAnnotations;
+	}
+
+	public void setClassWithAnnotations(String[] classWithAnnotations) {
+		this.classWithAnnotations = classWithAnnotations;
 	}
 
+	public Map<String, Properties> getServices() {
+		return services;
+	}
+
+	public void setServices(Map<String, Properties> services) {
+		this.services = services;
+	}
+
+	public String getManagerName() {
+		return managerName;
+	}
+
+	public void setManagerName(String managerName) {
+		this.managerName = managerName;
+	}
 	/**
 	 * Register a service.
 	 * 
@@ -49,7 +73,7 @@
 			SaveService saveService = new SaveService();
 			saveService.setAuthInfo(authToken);
 			saveService.getBusinessService().add(service);
-			ServiceDetail serviceDetail = node.getTransport().getUDDIPublishService().saveService(saveService);
+			ServiceDetail serviceDetail = getUDDINode().getTransport().getUDDIPublishService().saveService(saveService);
 			businessService = serviceDetail.getBusinessService().get(0);
 		} catch (Exception e) {
 			log.error("Unable to register service " + service.getName().get(0).getValue()
@@ -74,7 +98,7 @@
 			for (BindingTemplate binding : service.getBindingTemplates().getBindingTemplate()) {
 				deleteBinding.getBindingKey().add(binding.getBindingKey());
 			}
-			node.getTransport().getUDDIPublishService().deleteBinding(deleteBinding);
+			getUDDINode().getTransport().getUDDIPublishService().deleteBinding(deleteBinding);
 		} catch (Exception e) {
 			log.error("Unable to register service " + service.getName().get(0).getValue()
 					+ " ." + e.getMessage(),e);
@@ -86,7 +110,7 @@
 		GetServiceDetail getServiceDetail = new GetServiceDetail();
 		getServiceDetail.getServiceKey().add(serviceKey);
 		getServiceDetail.setAuthInfo(getAuthToken());
-		ServiceDetail sd = node.getTransport().getUDDIInquiryService().getServiceDetail(getServiceDetail);
+		ServiceDetail sd = getUDDINode().getTransport().getUDDIInquiryService().getServiceDetail(getServiceDetail);
 		List<BusinessService> businessServiceList = sd.getBusinessService();
 		if (businessServiceList.size() == 0) throw new ConfigurationException("Could not find Service with key=" + serviceKey);
 		return businessServiceList.get(0);
@@ -97,7 +121,7 @@
 		GetBindingDetail getBindingDetail = new GetBindingDetail();
 		getBindingDetail.getBindingKey().add(bindingKey);
 		getBindingDetail.setAuthInfo(getAuthToken());
-		BindingDetail bd = node.getTransport().getUDDIInquiryService().getBindingDetail(getBindingDetail);
+		BindingDetail bd = getUDDINode().getTransport().getUDDIInquiryService().getBindingDetail(getBindingDetail);
 		List<BindingTemplate> bindingTemplateList = bd.getBindingTemplate();
 		if (bindingTemplateList.size() == 0) throw new ConfigurationException("Could not find ServiceBbinding with key=" + bindingKey);
 		return bindingTemplateList.get(0);
@@ -108,11 +132,15 @@
 			GetAuthToken getAuthToken = new GetAuthToken();
 			getAuthToken.setUserID(getPublisher());
 			getAuthToken.setCred(getPassword());
-			authToken = node.getTransport().getUDDISecurityService().getAuthToken(getAuthToken).getAuthInfo();
+			authToken = getUDDINode().getTransport().getUDDISecurityService().getAuthToken(getAuthToken).getAuthInfo();
 		}
 		return authToken;
 	}
 	
+	public UDDINode getUDDINode() {
+		return uddiNode;
+	}
+
 	public String getName() {
 		return name;
 	}
@@ -121,20 +149,8 @@
 		this.name = name;
 	}
 
-	public String[] getClassWithAnnotations() {
-		return classWithAnnotations;
-	}
-
-	public void setClassWithAnnotations(String[] classWithAnnotations) {
-		this.classWithAnnotations = classWithAnnotations;
-	}
-
-	public UDDINode getNode() {
-		return node;
-	}
-
-	public void setNode(UDDINode node) {
-		this.node = node;
+	public void setUDDINode(UDDINode uddiNode) {
+		this.uddiNode = uddiNode;
 	}
 
 	public String getPublisher() {
@@ -153,20 +169,6 @@
 		this.password = password;
 	}
 
-	public Map<String, Properties> getServices() {
-		return services;
-	}
-
-	public void setServices(Map<String, Properties> services) {
-		this.services = services;
-	}
-
-	public String getManagerName() {
-		return managerName;
-	}
-
-	public void setManagerName(String managerName) {
-		this.managerName = managerName;
-	}
 	
+
 }

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClerkManager.java Tue Oct 13 13:31:43 2009
@@ -93,14 +93,14 @@
 	 * configuration.
 	 */
 	public void registerAnnotatedServices() {
-		Map<String,UDDIClerk> clerks = clientConfig.getClerks();
-		if (clerks.size() > 0) {
+		Map<String,UDDIClerk> uddiClerks = clientConfig.getUDDIClerks();
+		if (uddiClerks.size() > 0) {
 			AnnotationProcessor ap = new AnnotationProcessor();
-			for (UDDIClerk clerk : clerks.values()) {
+			for (UDDIClerk uddiCerk : uddiClerks.values()) {
 				Collection<BusinessService> services = ap.readServiceAnnotations(
-						clerk.getClassWithAnnotations(),clerk.getNode().getProperties());
+						uddiCerk.getClassWithAnnotations(),uddiCerk.getUDDINode().getProperties());
 				for (BusinessService businessService : services) {
-					clerk.register(businessService);
+					uddiCerk.register(businessService);
 				}
 			}
 		}
@@ -109,12 +109,12 @@
 	 * Removes the bindings of the services of the annotated classes.
 	 */
 	public void unRegisterAnnotatedServices() {
-		Map<String,UDDIClerk> clerks = clientConfig.getClerks();
+		Map<String,UDDIClerk> clerks = clientConfig.getUDDIClerks();
 		if (clerks.size() > 0) {
 			AnnotationProcessor ap = new AnnotationProcessor();
 			for (UDDIClerk clerk : clerks.values()) {
 				Collection<BusinessService> services = ap.readServiceAnnotations(
-						clerk.getClassWithAnnotations(),clerk.getNode().getProperties());
+						clerk.getClassWithAnnotations(),clerk.getUDDINode().getProperties());
 				for (BusinessService businessService : services) {
 					clerk.unRegister(businessService);
 				}

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDINode.java Tue Oct 13 13:31:43 2009
@@ -1,13 +1,17 @@
 package org.apache.juddi.v3.client.config;
 
+import java.io.Serializable;
 import java.util.Properties;
 
 import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3.client.transport.TransportException;
 import org.apache.log4j.helpers.Loader;
 
+public class UDDINode implements Serializable {
 
-public class UDDINode {
+	private static final long serialVersionUID = 5721040459195558161L;
+	private Properties properties;
+	private Transport transport;
 	
 	private String name;
 	private String description;
@@ -23,14 +27,19 @@
 	private String factoryURLPkgs;
 	private String factoryNamingProvider;
 	
-	private Properties properties;
+	public Properties getProperties() {
+		return properties;
+	}
+
+	public void setProperties(Properties properties) {
+		this.properties = properties;
+	}
 	
-	private Transport transport;
 	
 	public Transport getTransport() throws TransportException {
 		if (transport==null) {
 			try {
-				String clazz = UDDIClerkManager.getClientConfig().getNodes().get(name).getProxyTransport();
+				String clazz = UDDIClerkManager.getClientConfig().getUDDINodes().get(name).getProxyTransport();
 				Class<?> transportClass = Loader.loadClass(clazz);
 				transport = (Transport) transportClass.getConstructor(String.class).newInstance(name);
 			} catch (Exception e) {
@@ -39,94 +48,108 @@
 		}
 		return transport;
 	}
-	
+
 	public String getName() {
 		return name;
 	}
+
 	public void setName(String name) {
 		this.name = name;
 	}
-	
+
 	public String getDescription() {
 		return description;
 	}
+
 	public void setDescription(String description) {
 		this.description = description;
 	}
+
 	public String getCustodyTransferUrl() {
 		return custodyTransferUrl;
 	}
+
 	public void setCustodyTransferUrl(String custodyTransferUrl) {
 		this.custodyTransferUrl = custodyTransferUrl;
 	}
+
 	public String getInquiryUrl() {
 		return inquiryUrl;
 	}
+
 	public void setInquiryUrl(String inquiryUrl) {
 		this.inquiryUrl = inquiryUrl;
 	}
+
 	public String getPublishUrl() {
 		return publishUrl;
 	}
+
 	public void setPublishUrl(String publishUrl) {
 		this.publishUrl = publishUrl;
 	}
+
 	public String getSecurityUrl() {
 		return securityUrl;
 	}
+
 	public void setSecurityUrl(String securityUrl) {
 		this.securityUrl = securityUrl;
 	}
+
 	public String getSubscriptionUrl() {
 		return subscriptionUrl;
 	}
+
 	public void setSubscriptionUrl(String subscriptionUrl) {
 		this.subscriptionUrl = subscriptionUrl;
 	}
-	public String getProxyTransport() {
-		return proxyTransport;
+
+	public String getSubscriptionListenerUrl() {
+		return subscriptionListenerUrl;
 	}
-	public void setProxyTransport(String proxyTransport) {
-		this.proxyTransport = proxyTransport;
+
+	public void setSubscriptionListenerUrl(String subscriptionListenerUrl) {
+		this.subscriptionListenerUrl = subscriptionListenerUrl;
 	}
+
 	public String getJuddiApiUrl() {
 		return juddiApiUrl;
 	}
+
 	public void setJuddiApiUrl(String juddiApiUrl) {
 		this.juddiApiUrl = juddiApiUrl;
 	}
-	public String getSubscriptionListenerUrl() {
-		return subscriptionListenerUrl;
+
+	public String getProxyTransport() {
+		return proxyTransport;
 	}
-	public void setSubscriptionListenerUrl(String subscriptionListenerUrl) {
-		this.subscriptionListenerUrl = subscriptionListenerUrl;
+
+	public void setProxyTransport(String proxyTransport) {
+		this.proxyTransport = proxyTransport;
 	}
+
 	public String getFactoryInitial() {
 		return factoryInitial;
 	}
+
 	public void setFactoryInitial(String factoryInitial) {
 		this.factoryInitial = factoryInitial;
 	}
+
 	public String getFactoryURLPkgs() {
 		return factoryURLPkgs;
 	}
+
 	public void setFactoryURLPkgs(String factoryURLPkgs) {
 		this.factoryURLPkgs = factoryURLPkgs;
 	}
+
 	public String getFactoryNamingProvider() {
 		return factoryNamingProvider;
 	}
+
 	public void setFactoryNamingProvider(String factoryNamingProvider) {
 		this.factoryNamingProvider = factoryNamingProvider;
 	}
-
-	public Properties getProperties() {
-		return properties;
-	}
-
-	public void setProperties(Properties properties) {
-		this.properties = properties;
-	}
-	
-	
 }

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/InVMTransport.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/InVMTransport.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/InVMTransport.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/InVMTransport.java Tue Oct 13 13:31:43 2009
@@ -50,7 +50,7 @@
 	public UDDIInquiryPortType getUDDIInquiryService() throws TransportException {
 		if (inquiryService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getInquiryUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getInquiryUrl();
 				Class<?> c = Class.forName(endpointURL);
 				inquiryService = (UDDIInquiryPortType) c.newInstance();
 			} catch (Exception e) {
@@ -63,7 +63,7 @@
 	public UDDISecurityPortType getUDDISecurityService() throws TransportException {
 		if (securityService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSecurityUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSecurityUrl();
 				Class<?> c = Class.forName(endpointURL);
 				securityService = (UDDISecurityPortType) c.newInstance();
 			} catch (Exception e) {
@@ -76,7 +76,7 @@
 	public UDDIPublicationPortType getUDDIPublishService() throws TransportException {
 		if (publishService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getPublishUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getPublishUrl();
 				Class<?> c = Class.forName(endpointURL);
 				publishService = (UDDIPublicationPortType) c.newInstance();
 			} catch (Exception e) {
@@ -89,7 +89,7 @@
 	public UDDISubscriptionPortType getUDDISubscriptionService() throws TransportException {
 		if (subscriptionService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionUrl();
 				Class<?> c = Class.forName(endpointURL);
 				subscriptionService = (UDDISubscriptionPortType) c.newInstance();
 			} catch (Exception e) {
@@ -102,7 +102,7 @@
 	public UDDISubscriptionListenerPortType getUDDISubscriptionListenerService() throws TransportException {
 		if (subscriptionListenerService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionListenerUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionListenerUrl();
 				Class<?> c = Class.forName(endpointURL);
 				subscriptionListenerService = (UDDISubscriptionListenerPortType) c.newInstance();
 			} catch (Exception e) {
@@ -115,7 +115,7 @@
 	public UDDICustodyTransferPortType getUDDICustodyTransferService() throws TransportException {
 		if (custodyTransferService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getCustodyTransferUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getCustodyTransferUrl();
 				Class<?> c = Class.forName(endpointURL);
 				custodyTransferService = (UDDICustodyTransferPortType) c.newInstance();
 			} catch (Exception e) {
@@ -128,7 +128,7 @@
 	public JUDDIApiPortType getJUDDIApiService() throws TransportException {
 		if (publisherService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getJuddiApiUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getJuddiApiUrl();
 				Class<?> c = Class.forName(endpointURL);
 				publisherService = (JUDDIApiPortType) c.newInstance();
 			} catch (Exception e) {

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/JAXWSTransport.java Tue Oct 13 13:31:43 2009
@@ -56,7 +56,7 @@
 
 		if (inquiryService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getInquiryUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getInquiryUrl();
 				QName qName = new QName(Transport.API_V3_NAMESPACE, Transport.INQUIRY_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				inquiryService = (UDDIInquiryPortType) service.getPort(UDDIInquiryPortType.class);
@@ -71,7 +71,7 @@
 
 		if (securityService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSecurityUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSecurityUrl();
 				QName qName = new QName(Transport.API_V3_NAMESPACE, Transport.SECURITY_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				securityService = (UDDISecurityPortType) service.getPort(UDDISecurityPortType.class);
@@ -86,7 +86,7 @@
 
 		if (publishService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getPublishUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getPublishUrl();
 				QName qName = new QName(Transport.API_V3_NAMESPACE, Transport.PUBLISH_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				publishService = (UDDIPublicationPortType) service.getPort(UDDIPublicationPortType.class);
@@ -101,7 +101,7 @@
 
 		if (subscriptionService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionUrl();
 				QName qName = new QName(Transport.SUB_V3_NAMESPACE, Transport.SUBSCRIPTION_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				subscriptionService = (UDDISubscriptionPortType) service.getPort(UDDISubscriptionPortType.class);
@@ -115,7 +115,7 @@
 	public UDDISubscriptionListenerPortType getUDDISubscriptionListenerService() throws TransportException {
 		if (subscriptionListenerService == null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionListenerUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionListenerUrl();
 				QName qName = new QName(Transport.SUBR_V3_NAMESPACE, Transport.SUBSCRIPTION_LISTENER_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				subscriptionListenerService = (UDDISubscriptionListenerPortType) service.getPort(UDDISubscriptionListenerPortType.class);
@@ -129,7 +129,7 @@
 	public UDDICustodyTransferPortType getUDDICustodyTransferService() throws TransportException {
 		if (custodyTransferService == null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getCustodyTransferUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getCustodyTransferUrl();
 				QName qName = new QName(Transport.CUSTODY_V3_NAMESPACE, Transport.CUSTODY_TRANSFER_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				custodyTransferService = (UDDICustodyTransferPortType) service.getPort(UDDICustodyTransferPortType.class);
@@ -143,7 +143,7 @@
 	public JUDDIApiPortType getJUDDIApiService() throws TransportException {
 		if (publisherService == null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getJuddiApiUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getJuddiApiUrl();
 				QName qName = new QName(Transport.JUDDI_API_V3_NAMESPACE, Transport.PUBLISHER_SERVICE);
 				Service service = Service.create(new URL(endpointURL), qName);
 				publisherService = (JUDDIApiPortType) service.getPort(JUDDIApiPortType.class);

Modified: webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/RMITransport.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/RMITransport.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/RMITransport.java (original)
+++ webservices/juddi/trunk/juddi-client/src/main/java/org/apache/juddi/v3/client/transport/RMITransport.java Tue Oct 13 13:31:43 2009
@@ -76,7 +76,7 @@
 	public UDDIInquiryPortType getUDDIInquiryService() throws TransportException {
 		if (inquiryService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getInquiryUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getInquiryUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -92,7 +92,7 @@
 	public UDDISecurityPortType getUDDISecurityService() throws TransportException {
 		if (securityService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSecurityUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSecurityUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -108,7 +108,7 @@
 	public UDDIPublicationPortType getUDDIPublishService() throws TransportException {
 		if (publishService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getPublishUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getPublishUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -124,7 +124,7 @@
 	public UDDISubscriptionPortType getUDDISubscriptionService() throws TransportException {
 		if (subscriptionService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -140,7 +140,7 @@
 	public UDDISubscriptionListenerPortType getUDDISubscriptionListenerService() throws TransportException {
 		if (subscriptionListenerService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getSubscriptionListenerUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getSubscriptionListenerUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -156,7 +156,7 @@
 	public UDDICustodyTransferPortType getUDDICustodyTransferService() throws TransportException {
 		if (custodyTransferService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getCustodyTransferUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getCustodyTransferUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);
@@ -172,7 +172,7 @@
 	public JUDDIApiPortType getJUDDIApiService() throws TransportException {
 		if (publisherService==null) {
 			try {
-				String endpointURL = UDDIClerkManager.getClientConfig().getNodes().get(nodeName).getJuddiApiUrl();
+				String endpointURL = UDDIClerkManager.getClientConfig().getUDDINodes().get(nodeName).getJuddiApiUrl();
 				URI endpointURI = new URI(endpointURL);
 		    	String service    = endpointURI.getPath();
 		    	logger.debug("Looking up service=" + service);

Modified: webservices/juddi/trunk/juddi-client/src/test/java/org/apache/juddi/v3/client/UDDIClerkManagerTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-client/src/test/java/org/apache/juddi/v3/client/UDDIClerkManagerTest.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-client/src/test/java/org/apache/juddi/v3/client/UDDIClerkManagerTest.java (original)
+++ webservices/juddi/trunk/juddi-client/src/test/java/org/apache/juddi/v3/client/UDDIClerkManagerTest.java Tue Oct 13 13:31:43 2009
@@ -35,8 +35,8 @@
 	     try {
 	    	 UDDIClerkManager.start();
 	    	 
-	    	 assertEquals(2,UDDIClerkManager.getClientConfig().getNodes().size());
-	    	 assertEquals(2,UDDIClerkManager.getClientConfig().getClerks().size());
+	    	 assertEquals(2,UDDIClerkManager.getClientConfig().getUDDINodes().size());
+	    	 assertEquals(2,UDDIClerkManager.getClientConfig().getUDDIClerks().size());
 	     } catch (Exception e) {
 	    	 //we should not have any issues reading the config
 	         e.printStackTrace();
@@ -47,12 +47,12 @@
      @Test
      public void testAnnotation() {
     	 try {
-	    	 Map<String,UDDIClerk> clerks = UDDIClerkManager.getClientConfig().getClerks();
+	    	 Map<String,UDDIClerk> clerks = UDDIClerkManager.getClientConfig().getUDDIClerks();
 	 		 AnnotationProcessor ap = new AnnotationProcessor();
 	 		 if (clerks.containsKey("default")) {
 		 		 UDDIClerk clerk = clerks.get("default");
 		 		 BusinessService service = ap.readServiceAnnotations(
-		 				 HelloWorldMockup.class.getName(), clerk.getNode().getProperties());
+		 				 HelloWorldMockup.class.getName(), clerk.getUDDINode().getProperties());
 		 		 assertEquals("uddi:juddi.apache.org:services-helloworld",service.getServiceKey());
 	 		 } else {
 	 			Assert.fail("Could not find expected clerk='default'");

Modified: webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch (original)
+++ webservices/juddi/trunk/juddi-console/uddi-portlets/uddi-portlets.launch Tue Oct 13 13:31:43 2009
@@ -69,5 +69,6 @@
 <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="com.google.gwt.dev.GWTShell"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-out target/www org.apache.juddi.portlets.UDDIBrowser/UDDIBrowser.html"/>
 <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="juddi-console"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.maven.ide.eclipse.launchconfig.sourcepathProvider"/>
 <stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-XstartOnFirstThread -Xmx256M"/>
 </launchConfiguration>

Modified: webservices/juddi/trunk/juddi-core/pom.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/pom.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/pom.xml (original)
+++ webservices/juddi/trunk/juddi-core/pom.xml Tue Oct 13 13:31:43 2009
@@ -140,6 +140,11 @@
      </dependency>
      <dependency>
         <groupId>org.apache.juddi</groupId>
+        <artifactId>juddi-client</artifactId>
+        <version>3.0.0.SNAPSHOT</version>
+     </dependency>
+     <dependency>
+        <groupId>org.apache.juddi</groupId>
         <artifactId>uddi-tck-base</artifactId>
         <version>3.0.0.SNAPSHOT</version>
         <scope>test</scope>

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/JUDDIApiImpl.java Tue Oct 13 13:31:43 2009
@@ -25,19 +25,26 @@
 import javax.persistence.EntityTransaction;
 import javax.persistence.Query;
 
+import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
 import org.apache.juddi.api_v3.DeletePublisher;
+import org.apache.juddi.api_v3.GetAllClientSubscriptionInfoDetail;
 import org.apache.juddi.api_v3.GetAllPublisherDetail;
+import org.apache.juddi.api_v3.GetClientSubscriptionInfoDetail;
 import org.apache.juddi.api_v3.GetPublisherDetail;
 import org.apache.juddi.api_v3.PublisherDetail;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
 import org.apache.juddi.api_v3.SavePublisher;
 import org.apache.juddi.config.PersistenceManager;
 import org.apache.juddi.error.ErrorMessage;
 import org.apache.juddi.error.InvalidKeyPassedException;
 import org.apache.juddi.mapping.MappingApiToModel;
 import org.apache.juddi.mapping.MappingModelToApi;
+import org.apache.juddi.model.ClientSubscriptionInfo;
 import org.apache.juddi.model.Publisher;
 import org.apache.juddi.model.UddiEntityPublisher;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
+import org.apache.juddi.validation.ValidateClientSubscriptionInfo;
 import org.apache.juddi.validation.ValidatePublish;
 import org.apache.juddi.validation.ValidatePublisher;
 import org.uddi.api_v3.DeleteTModel;
@@ -232,6 +239,155 @@
 		}
 }
 
+	public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body)
+			throws DispositionReportFaultMessage, RemoteException {
+		
+		EntityManager em = PersistenceManager.getEntityManager();
+		EntityTransaction tx = em.getTransaction();
+		try {
+			tx.begin();
+	
+			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+			
+			new ValidateClientSubscriptionInfo(publisher).validateDeleteClientSubscriptionInfo(em, body);
+	
+			List<String> entityKeyList = body.getSubscriptionKey();
+			for (String entityKey : entityKeyList) {
+				Object obj = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, entityKey);
+				em.remove(obj);
+			}
+	
+			tx.commit();
+		} finally {
+			if (tx.isActive()) {
+				tx.rollback();
+			}
+			em.close();
+		}
+		
+	}
+
+	public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body)
+			throws DispositionReportFaultMessage, RemoteException {
+		EntityManager em = PersistenceManager.getEntityManager();
+		EntityTransaction tx = em.getTransaction();
+		try {
+			tx.begin();
+	
+			UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+			
+			new ValidateClientSubscriptionInfo(publisher).validateSaveClientSubscriptionInfo(em, body);
+			
+			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+	
+			List<org.apache.juddi.api_v3.ClientSubscriptionInfo> apiClientSubscriptionInfoList = body.getClientSubscriptionInfo();
+			for (org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo : apiClientSubscriptionInfoList) {
+				
+				org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo = new org.apache.juddi.model.ClientSubscriptionInfo();
+				
+				MappingApiToModel.mapClientSubscriptionInfo(apiClientSubscriptionInfo, modelClientSubscriptionInfo);
+				
+				Object existingUddiEntity = em.find(modelClientSubscriptionInfo.getClass(), modelClientSubscriptionInfo.getSubscriptionKey());
+				if (existingUddiEntity != null)
+					em.remove(existingUddiEntity);
+				
+				em.persist(modelClientSubscriptionInfo);
+				
+				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+			}
+	
+			tx.commit();
+			return result;
+		} finally {
+			if (tx.isActive()) {
+				tx.rollback();
+			}
+			em.close();
+		}
+	}
+	
+	@SuppressWarnings("unchecked")
+	public ClientSubscriptionInfoDetail getAllClientSubscriptionInfoDetail(GetAllClientSubscriptionInfoDetail body) 
+		throws DispositionReportFaultMessage {
+		
+		new ValidateClientSubscriptionInfo(null).validateGetAllClientSubscriptionDetail(body);
+
+		EntityManager em = PersistenceManager.getEntityManager();
+		EntityTransaction tx = em.getTransaction();
+		try {
+			tx.begin();
+	
+			this.getEntityPublisher(em, body.getAuthInfo());
+			
+			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+			
+			Query query = em.createQuery("SELECT cs from ClientSubscriptionInfo as cs");
+			List<org.apache.juddi.model.ClientSubscriptionInfo> modelClientSubscriptionInfoList = query.getResultList();
+			
+			for (ClientSubscriptionInfo modelClientSubscriptionInfo : modelClientSubscriptionInfoList) {
+				
+				org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
+				
+				MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
+				
+				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+			}
+	
+			tx.commit();
+			return result;
+		} finally {
+			if (tx.isActive()) {
+				tx.rollback();
+			}
+			em.close();
+		}
+		
+	}
+	
+	/**
+	 * Retrieves clientSubscriptionKey(s) from the persistence layer.  This method is specific to jUDDI.
+	 */
+	public ClientSubscriptionInfoDetail getClientSubscriptionInfoDetail(GetClientSubscriptionInfoDetail body)
+			throws DispositionReportFaultMessage {
+
+		new ValidateClientSubscriptionInfo(null).validateGetClientSubscriptionInfoDetail(body);
+
+		EntityManager em = PersistenceManager.getEntityManager();
+		EntityTransaction tx = em.getTransaction();
+		try {
+			tx.begin();
+	
+			this.getEntityPublisher(em, body.getAuthInfo());
+			
+			ClientSubscriptionInfoDetail result = new ClientSubscriptionInfoDetail();
+			
+			List<String> subscriptionKeyList = body.getClientSubscriptionKey();
+			for (String subscriptionKey : subscriptionKeyList) {
+				
+				org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo =
+					em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, subscriptionKey);
+				if (modelClientSubscriptionInfo == null) {
+					throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscripKeyNotFound", subscriptionKey));
+				}
+				
+				org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo = new org.apache.juddi.api_v3.ClientSubscriptionInfo();
+				
+				MappingModelToApi.mapClientSubscriptionInfo(modelClientSubscriptionInfo, apiClientSubscriptionInfo);
+				
+				result.getClientSubscriptionInfo().add(apiClientSubscriptionInfo);
+			}
+	
+			tx.commit();
+			return result;
+		} finally {
+			if (tx.isActive()) {
+				tx.rollback();
+			}
+			em.close();
+		}
+
+	}
+
 	
 	
 }

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java Tue Oct 13 13:31:43 2009
@@ -594,5 +594,48 @@
 		
 	}
 	
+	public static void mapClientSubscriptionInfo(org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo,
+									   org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo)
+			throws DispositionReportFaultMessage {
+		
+		modelClientSubscriptionInfo.setLastNotified(new Date());
+		modelClientSubscriptionInfo.setSubscriptionKey(apiClientSubscriptionInfo.getSubscriptionKey());
+		if (apiClientSubscriptionInfo.getClerk()!=null) {
+			org.apache.juddi.model.Clerk modelClerk = new org.apache.juddi.model.Clerk();
+			mapClerk(apiClientSubscriptionInfo.getClerk(), modelClerk);
+		}
+		
+	}
+	
+	public static void mapClerk(org.apache.juddi.api_v3.Clerk apiClerk,org.apache.juddi.model.Clerk modelClerk) {
+		if (apiClerk!=null) {
+			
+			modelClerk.setClerkName(apiClerk.getName());
+			modelClerk.setCred(apiClerk.getPassword());
+			modelClerk.setPublisherId(apiClerk.getPublisher());
+			if (apiClerk.getNode()!=null) {
+				org.apache.juddi.model.Node modelNode = new org.apache.juddi.model.Node();
+				mapNode(apiClerk.getNode(), modelNode);
+			}
+		}
+	}
+	
+	public static void mapNode(org.apache.juddi.api_v3.Node apiNode,org.apache.juddi.model.Node modelNode) {
+		if (apiNode!=null) {
+			
+			modelNode.setCustodyTransferUrl(modelNode.getCustodyTransferUrl());
+			modelNode.setInquiryUrl(apiNode.getInquiryUrl());
+			modelNode.setJuddiApiUrl(apiNode.getJuddiApiUrl());
+			modelNode.setName(apiNode.getName());
+			modelNode.setProxyTransport(apiNode.getProxyTransport());
+			modelNode.setPublishUrl(apiNode.getPublishUrl());
+			modelNode.setSecurityUrl(apiNode.getSecurityUrl());
+			modelNode.setSubscriptionUrl(apiNode.getSubscriptionUrl());
+			modelNode.setFactoryInitial(apiNode.getFactoryInitial());
+			modelNode.setFactoryNamingProvider(apiNode.getFactoryNamingProvider());
+			modelNode.setFactoryURLPkgs(apiNode.getFactoryURLPkgs());
+		}
+	}
+	
 }
 	

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java Tue Oct 13 13:31:43 2009
@@ -754,7 +754,46 @@
 		} 
 	}
 	
+	public static void mapClientSubscriptionInfo(org.apache.juddi.model.ClientSubscriptionInfo modelClientSubscriptionInfo, 
+			                                     org.apache.juddi.api_v3.ClientSubscriptionInfo apiClientSubscriptionInfo) 
+				throws DispositionReportFaultMessage {
+		
+		apiClientSubscriptionInfo.setSubscriptionKey(modelClientSubscriptionInfo.getSubscriptionKey());
+		apiClientSubscriptionInfo.setLastModified(modelClientSubscriptionInfo.getLastNotified());
+		
+		if (modelClientSubscriptionInfo.getClerk()!=null) {
+			org.apache.juddi.api_v3.Clerk apiClerk = new org.apache.juddi.api_v3.Clerk();
+			mapClerk(modelClientSubscriptionInfo.getClerk(), apiClerk);
+		}
+	}
 	
-	
+	public static void mapClerk(org.apache.juddi.model.Clerk modelClerk, 
+            org.apache.juddi.api_v3.Clerk apiClerk) 
+		throws DispositionReportFaultMessage {
+		
+		apiClerk.setName(modelClerk.getClerkName());
+		apiClerk.setPassword(modelClerk.getCred());
+		apiClerk.setPublisher(modelClerk.getPublisherId());
+		if (modelClerk.getNode()!=null) {
+			org.apache.juddi.api_v3.Node node = new org.apache.juddi.api_v3.Node();
+			mapNode(modelClerk.getNode(), node);
+		}
+	}
 
+	public static void mapNode(org.apache.juddi.model.Node modelNode, 
+            org.apache.juddi.api_v3.Node apiNode) 
+		throws DispositionReportFaultMessage {
+		
+		apiNode.setCustodyTransferUrl(modelNode.getCustodyTransferUrl());
+		apiNode.setFactoryInitial(modelNode.getFactoryInitial());
+		apiNode.setFactoryNamingProvider(modelNode.getFactoryNamingProvider());
+		apiNode.setFactoryURLPkgs(modelNode.getFactoryURLPkgs());
+		apiNode.setInquiryUrl(modelNode.getInquiryUrl());
+		apiNode.setJuddiApiUrl(modelNode.getJuddiApiUrl());
+		apiNode.setName(modelNode.getName());
+		apiNode.setProxyTransport(modelNode.getProxyTransport());
+		apiNode.setPublishUrl(modelNode.getPublishUrl());
+		apiNode.setSecurityUrl(modelNode.getSecurityUrl());
+		apiNode.setSubscriptionUrl(modelNode.getSubscriptionUrl());
+	}
 }

Added: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java?rev=824752&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java (added)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Clerk.java Tue Oct 13 13:31:43 2009
@@ -0,0 +1,88 @@
+package org.apache.juddi.model;
+/*
+ * 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.
+ */
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+/**
+ * @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
+ */
+@Entity
+@Table(name = "j3_clerk")
+public class Clerk implements java.io.Serializable {
+
+	@Transient
+	private static final long serialVersionUID = -4175742578534548023L;
+	@Id()
+	@Column(name="clerk_name", nullable = false, length=255)
+	private String clerkName;
+	@Column(name="publisher_id", nullable = false, length=255)
+	private String publisherId;
+	@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+	private Node node;
+	@Column(name="cred", nullable = false, length=255)
+	private String cred;
+	
+	public Clerk() {}
+
+	public Clerk(String clerkName, String cred, Node node, String publisherId) {
+		super();
+		this.clerkName = clerkName;
+		this.cred = cred;
+		this.node = node;
+		this.publisherId = publisherId;
+	}
+
+	public String getClerkName() {
+		return clerkName;
+	}
+
+	public void setClerkName(String clerkName) {
+		this.clerkName = clerkName;
+	}
+
+	public String getPublisherId() {
+		return publisherId;
+	}
+
+	public void setPublisherId(String publisherId) {
+		this.publisherId = publisherId;
+	}
+
+	public Node getNode() {
+		return node;
+	}
+
+	public void setNode(Node node) {
+		this.node = node;
+	}
+
+	public String getCred() {
+		return cred;
+	}
+
+	public void setCred(String cred) {
+		this.cred = cred;
+	}
+
+}

Added: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/ClientSubscriptionInfo.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/ClientSubscriptionInfo.java?rev=824752&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/ClientSubscriptionInfo.java (added)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/ClientSubscriptionInfo.java Tue Oct 13 13:31:43 2009
@@ -0,0 +1,80 @@
+package org.apache.juddi.model;
+/*
+ * 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.
+ */
+
+import java.util.Date;
+
+import javax.persistence.CascadeType;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.FetchType;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Transient;
+
+/**
+ * @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
+ */
+@Entity
+@Table(name = "j3_client_subscriptioninfo")
+public class ClientSubscriptionInfo implements java.io.Serializable {
+
+	@Transient
+	private static final long serialVersionUID = -1739525637445572028L;
+	
+	@Id()
+	@Column(name="subscription_key", nullable = false, length=255)
+	private String subscriptionKey;
+	@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
+	private Clerk clerk;
+	@Temporal(TemporalType.TIMESTAMP)
+	@Column(name="last_notified", length = 29)
+	private Date lastNotified;
+	
+	public ClientSubscriptionInfo(){}
+	
+	public ClientSubscriptionInfo(Clerk clerk, Date lastNotified,
+			String subscriptionKey) {
+		super();
+		this.clerk = clerk;
+		this.lastNotified = lastNotified;
+		this.subscriptionKey = subscriptionKey;
+	}
+	public String getSubscriptionKey() {
+		return subscriptionKey;
+	}
+	public void setSubscriptionKey(String subscriptionKey) {
+		this.subscriptionKey = subscriptionKey;
+	}
+	public Clerk getClerk() {
+		return clerk;
+	}
+	public void setClerk(Clerk clerk) {
+		this.clerk = clerk;
+	}
+	public Date getLastNotified() {
+		return lastNotified;
+	}
+	public void setLastNotified(Date lastNotified) {
+		this.lastNotified = lastNotified;
+	}
+	
+	
+
+}

Added: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java?rev=824752&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java (added)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/model/Node.java Tue Oct 13 13:31:43 2009
@@ -0,0 +1,161 @@
+package org.apache.juddi.model;
+/*
+ * Copyright 2001-2009 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.
+ */
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import javax.persistence.Transient;
+
+/**
+ * @author <a href="mailto:kurt@apache.org">Kurt T Stam</a>
+ */
+@Entity
+@Table(name = "j3_node")
+public class Node implements java.io.Serializable {
+
+	@Transient
+	private static final long serialVersionUID = -893203927029468343L;
+	@Id
+	@Column(name="name", nullable = false)
+	private String name;
+	@Column(name="proxy_transport", nullable = false, length=255)
+	private String proxyTransport;
+	@Column(name="security_url", nullable = false, length=255)
+	private String securityUrl;
+	@Column(name="inquiry_url", nullable = false, length=255)
+	private String inquiryUrl;
+	@Column(name="publish_url", nullable = false, length=255)
+	private String publishUrl;
+	@Column(name="custody_transfer_url", nullable = false, length=255)
+	private String custodyTransferUrl;
+	@Column(name="subscription_url", nullable = false, length=255)
+	private String subscriptionUrl;
+	@Column(name="juddi_api_url", length=255)
+	private String juddiApiUrl;
+	@Column(name="factory_initial", length=255)
+	private String factoryInitial;
+	@Column(name="factory_url_pkgs", length=255)
+	private String factoryURLPkgs;
+	@Column(name="factory_naming_provider", length=255)
+	private String factoryNamingProvider;
+
+	public Node() {}
+
+	public Node(String custodyTransferUrl, String inquiryUrl,
+			String juddiApiUrl, String name, String proxyTransport,
+			String publishUrl, String securityUrl, String subscriptionUrl) {
+		super();
+		this.custodyTransferUrl = custodyTransferUrl;
+		this.inquiryUrl = inquiryUrl;
+		this.juddiApiUrl = juddiApiUrl;
+		this.name = name;
+		this.proxyTransport = proxyTransport;
+		this.publishUrl = publishUrl;
+		this.securityUrl = securityUrl;
+		this.subscriptionUrl = subscriptionUrl;
+	}
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getProxyTransport() {
+		return proxyTransport;
+	}
+
+	public void setProxyTransport(String proxyTransport) {
+		this.proxyTransport = proxyTransport;
+	}
+
+	public String getSecurityUrl() {
+		return securityUrl;
+	}
+
+	public void setSecurityUrl(String securityUrl) {
+		this.securityUrl = securityUrl;
+	}
+
+	public String getInquiryUrl() {
+		return inquiryUrl;
+	}
+
+	public void setInquiryUrl(String inquiryUrl) {
+		this.inquiryUrl = inquiryUrl;
+	}
+
+	public String getPublishUrl() {
+		return publishUrl;
+	}
+
+	public void setPublishUrl(String publishUrl) {
+		this.publishUrl = publishUrl;
+	}
+
+	public String getCustodyTransferUrl() {
+		return custodyTransferUrl;
+	}
+
+	public void setCustodyTransferUrl(String custodyTransferUrl) {
+		this.custodyTransferUrl = custodyTransferUrl;
+	}
+
+	public String getSubscriptionUrl() {
+		return subscriptionUrl;
+	}
+
+	public void setSubscriptionUrl(String subscriptionUrl) {
+		this.subscriptionUrl = subscriptionUrl;
+	}
+
+	public String getJuddiApiUrl() {
+		return juddiApiUrl;
+	}
+
+	public void setJuddiApiUrl(String juddiApiUrl) {
+		this.juddiApiUrl = juddiApiUrl;
+	}
+
+	public String getFactoryInitial() {
+		return factoryInitial;
+	}
+
+	public void setFactoryInitial(String factoryInitial) {
+		this.factoryInitial = factoryInitial;
+	}
+
+	public String getFactoryURLPkgs() {
+		return factoryURLPkgs;
+	}
+
+	public void setFactoryURLPkgs(String factoryURLPkgs) {
+		this.factoryURLPkgs = factoryURLPkgs;
+	}
+
+	public String getFactoryNamingProvider() {
+		return factoryNamingProvider;
+	}
+
+	public void setFactoryNamingProvider(String factoryNamingProvider) {
+		this.factoryNamingProvider = factoryNamingProvider;
+	}
+
+}

Modified: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/JUDDIApiService.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/JUDDIApiService.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/JUDDIApiService.java (original)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/JUDDIApiService.java Tue Oct 13 13:31:43 2009
@@ -20,10 +20,13 @@
 import java.rmi.server.UnicastRemoteObject;
 
 import org.apache.juddi.api.impl.JUDDIApiImpl;
+import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
 import org.apache.juddi.api_v3.DeletePublisher;
 import org.apache.juddi.api_v3.GetAllPublisherDetail;
 import org.apache.juddi.api_v3.GetPublisherDetail;
 import org.apache.juddi.api_v3.PublisherDetail;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
 import org.apache.juddi.api_v3.SavePublisher;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
 import org.uddi.api_v3.DeleteTModel;
@@ -67,6 +70,17 @@
 			throws DispositionReportFaultMessage, RemoteException {
 		juddiAPI.adminDeleteTModel(body);
 	}
+
+	public void deleteClientSubscriptionInfo(DeleteClientSubscriptionInfo body)
+			throws DispositionReportFaultMessage, RemoteException {
+		juddiAPI.deleteClientSubscriptionInfo(body);
+	}
+
+	public ClientSubscriptionInfoDetail saveClientSubscriptionInfo(SaveClientSubscriptionInfo body)
+			throws DispositionReportFaultMessage, RemoteException {
+		return juddiAPI.saveClientSubscriptionInfo(body);
+		
+	}
 	
 	
 

Added: webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateClientSubscriptionInfo.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateClientSubscriptionInfo.java?rev=824752&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateClientSubscriptionInfo.java (added)
+++ webservices/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidateClientSubscriptionInfo.java Tue Oct 13 13:31:43 2009
@@ -0,0 +1,146 @@
+/*
+ * 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.validation;
+
+import java.util.HashSet;
+import java.util.List;
+
+import javax.persistence.EntityManager;
+
+import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
+import org.apache.juddi.api_v3.GetAllClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.GetClientSubscriptionInfoDetail;
+//import org.apache.juddi.api_v3.GetPublisherDetail;
+import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.error.ErrorMessage;
+import org.apache.juddi.error.FatalErrorException;
+import org.apache.juddi.error.InvalidKeyPassedException;
+import org.apache.juddi.error.ValueNotAllowedException;
+import org.apache.juddi.model.UddiEntityPublisher;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class ValidateClientSubscriptionInfo extends ValidateUDDIApi {
+
+	public ValidateClientSubscriptionInfo(UddiEntityPublisher publisher) {
+		super(publisher);
+	}
+
+	
+	
+	/*-------------------------------------------------------------------
+	 ClientSubscriptionInf functions are specific to jUDDI.
+	 --------------------------------------------------------------------*/
+	
+	public void validateDeleteClientSubscriptionInfo(EntityManager em, DeleteClientSubscriptionInfo body) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (body == null)
+			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+		
+		// No null or empty list
+		List<String> entityKeyList = body.getSubscriptionKey();
+		if (entityKeyList == null || entityKeyList.size() == 0)
+			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+		
+		HashSet<String> dupCheck = new HashSet<String>();
+		for (String entityKey : entityKeyList) {
+			boolean inserted = dupCheck.add(entityKey);
+			if (!inserted)
+				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+			
+			Object obj = em.find(org.apache.juddi.model.ClientSubscriptionInfo.class, entityKey);
+			if (obj == null)
+				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscriptionKeyNotFound", entityKey));
+			
+		}
+	}
+
+	public void validateSaveClientSubscriptionInfo(EntityManager em, SaveClientSubscriptionInfo body) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (body == null)
+			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+		
+		// No null or empty list
+		List<ClientSubscriptionInfo> clientSubscriptionInfos = body.getClientSubscriptionInfo();
+		if (clientSubscriptionInfos == null)
+			throw new ValueNotAllowedException(new ErrorMessage("errors.saveclientsubscriptioninfo.NoInput"));
+		
+		for (ClientSubscriptionInfo clientSubscriptionInfo : body.getClientSubscriptionInfo()) {
+			if (clientSubscriptionInfo.getSubscriptionKey()==null || clientSubscriptionInfo.getSubscriptionKey().equals("")) {
+				throw new ValueNotAllowedException(new ErrorMessage("errors.saveclientsubscriptionKey.NoInput"));
+			}
+			validateClerk(em, clientSubscriptionInfo.getClerk());
+		}
+	}
+
+	public void validateClerk(EntityManager em, org.apache.juddi.api_v3.Clerk clerk) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (clerk == null)
+			throw new ValueNotAllowedException(new ErrorMessage("errors.clerk.NullInput"));
+		
+		String name = clerk.getName();
+		if (name == null || name.length() == 0)
+			throw new ValueNotAllowedException(new ErrorMessage("errors.clerk.NoName"));
+	
+		String publisherName = clerk.getPublisher();
+		if (publisherName == null || publisherName.length() == 0)
+			throw new ValueNotAllowedException(new ErrorMessage("errors.clerk.NoPublisherName"));
+		
+		Node node = clerk.getNode();
+		if (node == null) 
+			throw new ValueNotAllowedException(new ErrorMessage("errors.clerk.NullNodeInput"));
+
+	}
+	
+	public void validateGetClientSubscriptionInfoDetail(GetClientSubscriptionInfoDetail body) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (body == null)
+			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+		
+		// No null or empty list
+		List<String> clientSubscriptionKeyList = body.getClientSubscriptionKey();
+		if (clientSubscriptionKeyList == null || clientSubscriptionKeyList.size() == 0)
+			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+
+		HashSet<String> dupCheck = new HashSet<String>();
+		for (String clientSubscriptionKey : clientSubscriptionKeyList) {
+			boolean inserted = dupCheck.add(clientSubscriptionKey);
+			if (!inserted)
+				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", clientSubscriptionKey));
+		}
+	}
+	
+	public void validateGetAllClientSubscriptionDetail(GetAllClientSubscriptionInfoDetail body) throws DispositionReportFaultMessage {
+
+		// No null input
+		if (body == null)
+			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+		
+	}
+	
+	
+}

Modified: webservices/juddi/trunk/juddi-core/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/resources/messages.properties?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/resources/messages.properties (original)
+++ webservices/juddi/trunk/juddi-core/src/main/resources/messages.properties Tue Oct 13 13:31:43 2009
@@ -27,9 +27,8 @@
 E_fatalError=A serious technical error has occurred while processing the request.
 E_historyDataNotAvailable=Requested history data is not available for the time period requested. 
 E_invalidCategory=
-E_invalidCompletionStatus=
-E_invalidCombination=Invalid find qualifier combination
 E_invalidCompletionStatus=Assertion status value passed is unrecognized.
+E_invalidCombination=Invalid find qualifier combination
 E_invalidKeyPassed=An invalid key has been passed
 E_invalidProjection=An attempt was made to save a businessEntity containing a service projection where the serviceKey does not belong to the business designated by the businessKey.
 E_invalidTime=The time period, the date/time, or the pair of date/time is invalid.
@@ -87,6 +86,7 @@
 errors.invalidkey.bindingtemplate.ParentMismatch=The binding template being saved has a different parent service key then the one provided
 errors.invalidkey.SubscriptionNotFound=The subscription was not found for the given key
 errors.invalidKey.KeysOwned=Either the to key for the from key must be specified on a keysOwned structure
+errors.invalidkey.SubscripKeyNotFound=The subscriptionKey was not found for the given id
 errors.invalidprojection.ParentMismatch=The supplied business key doesn't match the actual business key of the service being projected
 errors.usermismatch.InvalidOwner=The user is not authorized to access the given entity
 errors.usermismatch.InvalidOwnerParent=The user is not authorized to access the given parent entity
@@ -95,6 +95,8 @@
 errors.savebusiness.NoInput=At least one BusinessEntity must be provided
 errors.saveservice.NoInput=At least one BusinessService must be provided
 errors.savebinding.NoInput=At least one BindingTemplate must be provided
+errors.saveclientsubscriptionKey.NoInput=The SubscriptionKey must be provided
+errors.saveclientClerk.NoInput=The Clerk structure cannot be blank
 errors.savetmodel.NoInput=At least one tModel must be provided
 errors.addpublisherassertions.NoInput=At least one publisherAssertion must be provided
 errors.businessentity.NullInput=The businessEntity structure cannot be blank
@@ -176,6 +178,10 @@
 errors.publisher.NullInput=The Publisher structure cannot be blank
 errors.publisher.NoAuthorizedName=A valid publisher authorized name was not specified
 errors.publisher.NoPublisherName=A valid publisher name was not specified
+errors.clerk.NullInput=The Clerk structure cannot be blank
+errors.clerk.NullNodeInput=The Node structure on Clerk cannot be blank
+errors.clerk.NoName=A valid clerk name was not specified
+errors.clerk.NoPublisherName=A valid publisher name was not specified
 
 #-- Authentication error messages
 errors.auth.AuthRequired=Authentication is required for this API call

Modified: webservices/juddi/trunk/juddi-core/src/main/resources/persistence/openjpa-persistence.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/main/resources/persistence/openjpa-persistence.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/main/resources/persistence/openjpa-persistence.xml (original)
+++ webservices/juddi/trunk/juddi-core/src/main/resources/persistence/openjpa-persistence.xml Tue Oct 13 13:31:43 2009
@@ -20,6 +20,8 @@
     <class>org.apache.juddi.model.BusinessName</class>
     <class>org.apache.juddi.model.BusinessService</class>
     <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
     <class>org.apache.juddi.model.Contact</class>
     <class>org.apache.juddi.model.ContactDescr</class>
     <class>org.apache.juddi.model.DiscoveryUrl</class>
@@ -28,6 +30,7 @@
     <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
     <class>org.apache.juddi.model.KeyedReference</class>
     <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.Node</class>
     <class>org.apache.juddi.model.OverviewDoc</class>
     <class>org.apache.juddi.model.OverviewDocDescr</class>
     <class>org.apache.juddi.model.PersonName</class>

Added: webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_100_ClientSubscriptionInfoTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_100_ClientSubscriptionInfoTest.java?rev=824752&view=auto
==============================================================================
--- webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_100_ClientSubscriptionInfoTest.java (added)
+++ webservices/juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_100_ClientSubscriptionInfoTest.java Tue Oct 13 13:31:43 2009
@@ -0,0 +1,119 @@
+/*
+ * Copyright 2001-2009 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.api.impl;
+
+import java.rmi.RemoteException;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.Registry;
+import org.apache.juddi.api_v3.Clerk;
+import org.apache.juddi.api_v3.ClientSubscriptionInfo;
+import org.apache.juddi.api_v3.ClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.DeleteClientSubscriptionInfo;
+import org.apache.juddi.api_v3.GetClientSubscriptionInfoDetail;
+import org.apache.juddi.api_v3.Node;
+import org.apache.juddi.api_v3.SaveClientSubscriptionInfo;
+import org.apache.juddi.error.InvalidKeyPassedException;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.log4j.Logger;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ */
+public class API_100_ClientSubscriptionInfoTest {
+	
+	private JUDDIApiImpl publisher                    = new JUDDIApiImpl();
+	private static Logger logger                      = Logger.getLogger(API_100_ClientSubscriptionInfoTest.class);
+	private static API_010_PublisherTest api010       = new API_010_PublisherTest();
+	private static String authInfoJoe                 = null;
+	
+	@BeforeClass
+	public static void setup() throws ConfigurationException, RemoteException {
+		Registry.start();
+		logger.debug("Getting auth tokens..");
+		try {
+			api010.saveJoePublisher();
+			UDDISecurityPortType security      = new UDDISecurityImpl();
+			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.JOE_PUBLISHER_ID,  TckPublisher.JOE_PUBLISHER_CRED);
+		} catch (DispositionReportFaultMessage e) {
+			logger.error(e.getMessage(), e);
+			Assert.fail("Could not obtain authInfo token.");
+		}
+	}
+	
+	@AfterClass
+	public static void stopRegistry() throws ConfigurationException {
+		Registry.stop();
+	}
+	
+	@Test
+	public void addClientSubscriptionInfo() {
+		ClientSubscriptionInfo clientSubscriptionInfo = new ClientSubscriptionInfo();
+		
+		Node node = new Node();
+		node.setSecurityUrl("http://localhost:8080/services/securityUrl");
+		node.setName("default");
+		
+		Clerk clerk = new Clerk();
+		clerk.setName("clerkName");
+		clerk.setPublisher("root");
+		clerk.setNode(node);
+		
+		clientSubscriptionInfo.setClerk(clerk);
+		
+		clientSubscriptionInfo.setSubscriptionKey("mykey");
+		
+		SaveClientSubscriptionInfo saveClientSubscriptionInfo = new SaveClientSubscriptionInfo();
+		saveClientSubscriptionInfo.setAuthInfo(authInfoJoe);
+		saveClientSubscriptionInfo.getClientSubscriptionInfo().add(clientSubscriptionInfo);
+		
+		try {
+			ClientSubscriptionInfoDetail detail = publisher.saveClientSubscriptionInfo(saveClientSubscriptionInfo);
+		
+			GetClientSubscriptionInfoDetail getDetail = new GetClientSubscriptionInfoDetail();
+			getDetail.setAuthInfo(authInfoJoe);
+			getDetail.getClientSubscriptionKey().add("mykey");
+			
+			Assert.assertEquals("mykey", detail.getClientSubscriptionInfo().get(0).getSubscriptionKey());
+			
+			ClientSubscriptionInfoDetail detail2 = publisher.getClientSubscriptionInfoDetail(getDetail);
+			Assert.assertEquals("mykey", detail2.getClientSubscriptionInfo().get(0).getSubscriptionKey());
+	
+			DeleteClientSubscriptionInfo deleteInfo = new DeleteClientSubscriptionInfo();
+			deleteInfo.setAuthInfo(authInfoJoe);
+			deleteInfo.getSubscriptionKey().add("mykey");
+			publisher.deleteClientSubscriptionInfo(deleteInfo);
+			
+			try {
+				@SuppressWarnings("unused")
+				ClientSubscriptionInfoDetail detail3 = publisher.getClientSubscriptionInfoDetail(getDetail);
+				Assert.fail("We're expecting an InvalidKeyPassedException");
+			} catch (Exception e) {
+				Assert.assertEquals(InvalidKeyPassedException.class, e.getClass());
+			}
+		} catch(Exception e) {
+			logger.error(e.getMessage(), e);
+			Assert.fail("No exception should be thrown");
+		}
+	}
+	
+}

Modified: webservices/juddi/trunk/juddiv3-war/persistence/hibernate-persistence.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddiv3-war/persistence/hibernate-persistence.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddiv3-war/persistence/hibernate-persistence.xml (original)
+++ webservices/juddi/trunk/juddiv3-war/persistence/hibernate-persistence.xml Tue Oct 13 13:31:43 2009
@@ -19,7 +19,9 @@
     <class>org.apache.juddi.model.BusinessIdentifier</class>
     <class>org.apache.juddi.model.BusinessName</class>
     <class>org.apache.juddi.model.BusinessService</class>
-    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
     <class>org.apache.juddi.model.Contact</class>
     <class>org.apache.juddi.model.ContactDescr</class>
     <class>org.apache.juddi.model.DiscoveryUrl</class>
@@ -27,7 +29,8 @@
     <class>org.apache.juddi.model.InstanceDetailsDescr</class>
     <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
     <class>org.apache.juddi.model.KeyedReference</class>
-    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.Node</class>
     <class>org.apache.juddi.model.OverviewDoc</class>
     <class>org.apache.juddi.model.OverviewDocDescr</class>
     <class>org.apache.juddi.model.PersonName</class>

Modified: webservices/juddi/trunk/juddiv3-war/persistence/openjpa-persistence.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/juddiv3-war/persistence/openjpa-persistence.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/juddiv3-war/persistence/openjpa-persistence.xml (original)
+++ webservices/juddi/trunk/juddiv3-war/persistence/openjpa-persistence.xml Tue Oct 13 13:31:43 2009
@@ -20,6 +20,8 @@
     <class>org.apache.juddi.model.BusinessName</class>
     <class>org.apache.juddi.model.BusinessService</class>
     <class>org.apache.juddi.model.CategoryBag</class>
+    <class>org.apache.juddi.model.Clerk</class>
+    <class>org.apache.juddi.model.ClientSubscriptionInfo</class>
     <class>org.apache.juddi.model.Contact</class>
     <class>org.apache.juddi.model.ContactDescr</class>
     <class>org.apache.juddi.model.DiscoveryUrl</class>
@@ -28,6 +30,7 @@
     <class>org.apache.juddi.model.InstanceDetailsDocDescr</class>
     <class>org.apache.juddi.model.KeyedReference</class>
     <class>org.apache.juddi.model.KeyedReferenceGroup</class>
+    <class>org.apache.juddi.model.Node</class>
     <class>org.apache.juddi.model.OverviewDoc</class>
     <class>org.apache.juddi.model.OverviewDocDescr</class>
     <class>org.apache.juddi.model.PersonName</class>

Modified: webservices/juddi/trunk/pom.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/pom.xml?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/pom.xml (original)
+++ webservices/juddi/trunk/pom.xml Tue Oct 13 13:31:43 2009
@@ -154,8 +154,8 @@
 	</reporting>
 	<modules>
 		<module>uddi-ws</module>
-		<module>juddi-client</module>
 		<module>uddi-tck-base</module>
+		<module>juddi-client</module>
 		<module>juddi-core</module>
 		<module>juddiv3-war</module>
 		<module>juddi-cxf</module>

Modified: webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java?rev=824752&r1=824751&r2=824752&view=diff
==============================================================================
--- webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java (original)
+++ webservices/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java Tue Oct 13 13:31:43 2009
@@ -63,7 +63,7 @@
 	
 	@BeforeClass
 	public static void startRegistry() throws ConfigurationException {
-		String clazz = UDDIClerkManager.getClientConfig().getNodes().get("default").getProxyTransport();
+		String clazz = UDDIClerkManager.getClientConfig().getUDDINodes().get("default").getProxyTransport();
 		if (InVMTransport.class.getName().equals(clazz)) {
 			Registry.start();
 		}
@@ -89,7 +89,7 @@
 	
 	@AfterClass
 	public static void stopRegistry() throws ConfigurationException {
-		String clazz = UDDIClerkManager.getClientConfig().getNodes().get("default").getProxyTransport();
+		String clazz = UDDIClerkManager.getClientConfig().getUDDINodes().get("default").getProxyTransport();
 		if (InVMTransport.class.getName().equals(clazz)) {
 			Registry.stop();
 		}
@@ -98,7 +98,7 @@
      @Test
      public void testAuthToken() {
 	     try {
-	    	 String clazz = UDDIClerkManager.getClientConfig().getNodes().get("default").getProxyTransport();
+	    	 String clazz = UDDIClerkManager.getClientConfig().getUDDINodes().get("default").getProxyTransport();
 	         Class<?> transportClass = Loader.loadClass(clazz);
 	         if (transportClass!=null) {
 	        	 Transport transport = (Transport) transportClass.getConstructor(String.class).newInstance("default");



---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org