juddi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ks...@apache.org
Subject svn commit: r1081918 [1/2] - in /juddi/trunk: juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/ juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/ juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/ juddi-core-...
Date Tue, 15 Mar 2011 19:55:02 GMT
Author: kstam
Date: Tue Mar 15 19:55:01 2011
New Revision: 1081918

URL: http://svn.apache.org/viewvc?rev=1081918&view=rev
Log:
JUDDI-243 add support for RMI notification

Added:
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/NotifierTest.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/RMIRegistration.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/JNDI_RMINotifier.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/Notifier.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/RMINotifier.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
    juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java
    juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/UDDISubscriptionListenerImpl.java
      - copied, changed from r1080729, juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/TCK_UDDISubscriptionListenerImpl.java
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerService.xml
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1RMI.xml
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_091_RMISubscriptionListenerIntegrationTest.java
Removed:
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/businessService.xml
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/TCK_UDDISubscriptionListenerImpl.java
Modified:
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java
    juddi/trunk/juddi-core-openjpa/src/test/resources/juddiv3.properties
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/Registry.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/EntityQuery.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
    juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties
    juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
    juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1.xml
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_100_ClientSubscriptionInfoTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_030_BusinessEntityIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_040_BusinessServiceIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_050_BindingTemplateIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_060_PublisherAssertionIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_070_FindEntityIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationTest.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_110_FindServicesIntegrationTest.java

Added: juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java (added)
+++ juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,130 @@
+package org.apache.juddi.api.impl;
+
+/*
+ * 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.xml.ws.Endpoint;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.Registry;
+import org.apache.juddi.v3.tck.TckBusiness;
+import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckSubscriptionListener;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.apache.juddi.v3.tck.UDDISubscriptionListenerImpl;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
+ */
+public class API_090_SubscriptionListenerIntegrationTest
+{
+	private static Log logger = LogFactory.getLog(API_090_SubscriptionListenerIntegrationTest.class);
+	private static API_010_PublisherTest api010      = new API_010_PublisherTest();
+	private static TckTModel tckTModel               = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckBusiness tckBusiness           = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckBusinessService tckBusinessService  = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckSubscriptionListener tckSubscriptionListener = new TckSubscriptionListener(new UDDISubscriptionImpl(), new UDDIPublicationImpl());
+	private static Endpoint endPoint;
+	private static String authInfoJoe = null;
+	
+
+	@AfterClass
+	public static void stopManager() throws ConfigurationException {
+		//manager.stop();
+		//shutting down the TCK SubscriptionListener
+		endPoint.stop();
+		
+		Registry.stop();
+	}
+	
+	@BeforeClass
+	public static void startManager() throws ConfigurationException {
+		Registry.start();
+		try {
+			//bring up the TCK SubscriptionListener
+			endPoint = Endpoint.publish("http://localhost:12345/tcksubscriptionlistener", new UDDISubscriptionListenerImpl());
+			
+			//manager  = new UDDIClerkManager();
+			//manager.start();
+			
+			logger.debug("Getting auth tokens..");
+		
+			 
+			 api010.saveJoePublisher();
+			 UDDISecurityPortType security      = new UDDISecurityImpl();
+        	 authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
+        	 Assert.assertNotNull(authInfoJoe);
+        	  
+	     } catch (Exception e) {
+	    	 logger.error(e.getMessage(), e);
+				Assert.fail("Could not obtain authInfo token.");
+	     } 
+	}
+	
+	@Test
+	public void joePublisher() {
+		try {
+			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+			tckBusinessService.saveJoePublisherService(authInfoJoe);
+			//Saving the Listener Service
+			tckSubscriptionListener.saveService(authInfoJoe);
+			//Saving the Subscription
+			tckSubscriptionListener.saveNotifierSubscription(authInfoJoe);
+			//Changing the service we subscribed to "JoePublisherService"
+			logger.info("Updating Service ********** ");
+			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
+			//tckSubscriptionListener.changeSubscribedObject(authInfoJoe);
+			
+            //waiting up to 100 seconds for the listener to notice the change.
+			String test="";
+			for (int i=0; i<200; i++) {
+				Thread.sleep(500);
+				System.out.print(".");
+				if (UDDISubscriptionListenerImpl.notificationCount > 0) {
+					break;
+				} else {
+					System.out.print(test);
+				}
+			}
+			if (UDDISubscriptionListenerImpl.notificationCount == 0) {
+				Assert.fail("No Notification was sent");
+			}
+			if (!UDDISubscriptionListenerImpl.notifcationMap.get(0).contains("<name xml:lang=\"en\">Service One</name>")) {
+				Assert.fail("Notification does not contain the correct service");
+			}
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+
+			Assert.fail();
+		} finally {
+			
+			tckSubscriptionListener.deleteNotifierSubscription(authInfoJoe);
+			tckBusinessService.deleteJoePublisherService(authInfoJoe);
+			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+			tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		}
+	}	
+    
+}

Added: juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java (added)
+++ juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,153 @@
+package org.apache.juddi.api.impl;
+
+/*
+ * 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 java.net.URI;
+import java.rmi.AccessException;
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.v3.tck.TckBusiness;
+import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckPublisher;
+import org.apache.juddi.v3.tck.TckSecurity;
+import org.apache.juddi.v3.tck.TckSubscriptionListenerRMI;
+import org.apache.juddi.v3.tck.TckTModel;
+import org.apache.juddi.v3.tck.UDDISubscriptionListenerImpl;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.uddi.v3_service.UDDISecurityPortType;
+
+/**
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
+ */
+public class API_091_RMISubscriptionListenerIntegrationTest
+{
+	
+	private static Log logger = LogFactory.getLog(API_090_SubscriptionListenerIntegrationTest.class);
+	private static API_010_PublisherTest api010      = new API_010_PublisherTest();
+	private static TckTModel tckTModel               = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckBusiness tckBusiness           = new TckBusiness(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckBusinessService tckBusinessService  = new TckBusinessService(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+	private static TckSubscriptionListenerRMI tckSubscriptionListenerRMI = new TckSubscriptionListenerRMI(new UDDISubscriptionImpl(), new UDDIPublicationImpl());
+	
+	private static String authInfoJoe = null;
+	//private static UDDIClerkManager manager;
+	private static UDDISubscriptionListenerImpl rmiSubscriptionListenerService = null;
+	private static Registry registry;
+	private static String path = null;
+
+	@AfterClass
+	public static void stopManager() throws ConfigurationException, AccessException, RemoteException, NotBoundException {
+		//manager.stop();
+		//shutting down the TCK SubscriptionListener
+		registry.unbind(path);
+		org.apache.juddi.Registry.stop();
+	}
+	
+	@BeforeClass
+	public static void startManager() throws ConfigurationException {
+		org.apache.juddi.Registry.start();
+		try {
+			//bring up the RMISubscriptionListener
+			URI rmiEndPoint = new URI("rmi://localhost:9876/tck/rmisubscriptionlistener");
+			registry = LocateRegistry.createRegistry(rmiEndPoint.getPort());
+			path = rmiEndPoint.getPath();
+			
+			//starting the service
+			rmiSubscriptionListenerService = new UDDISubscriptionListenerImpl(0);
+			//binding to the RMI Registry
+			registry.bind(path,rmiSubscriptionListenerService);
+			
+			//double check that the service is bound in the local Registry
+			Registry registry2 = LocateRegistry.getRegistry(rmiEndPoint.getHost(), rmiEndPoint.getPort());
+			registry2.lookup(rmiEndPoint.getPath());
+           
+            
+		} catch (Exception e2) {
+			// TODO Auto-generated catch block
+			e2.printStackTrace();
+			Assert.fail();
+		}
+
+		//manager  = new UDDIClerkManager();
+		//manager.start();
+		
+		logger.debug("Getting auth tokens..");
+		try {
+			 
+			 api010.saveJoePublisher();
+			 UDDISecurityPortType security      = new UDDISecurityImpl();
+        	 authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
+        	 Assert.assertNotNull(authInfoJoe);	
+        	  
+	     } catch (Exception e) {
+	    	 logger.error(e.getMessage(), e);
+				Assert.fail("Could not obtain authInfo token.");
+	     } 
+	}
+	
+	@Test
+	public void joePublisher() {
+		try {
+			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+			tckBusinessService.saveJoePublisherService(authInfoJoe);
+			//Saving the Listener Service
+			tckSubscriptionListenerRMI.saveService(authInfoJoe);
+			//Saving the Subscription
+			tckSubscriptionListenerRMI.saveNotifierSubscription(authInfoJoe);
+			//Changing the service we subscribed to "JoePublisherService"
+			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
+			
+            //waiting up to 100 seconds for the listener to notice the change.
+			String test="";
+			for (int i=0; i<200; i++) {
+				Thread.sleep(500);
+				System.out.print(".");
+				if (UDDISubscriptionListenerImpl.notificationCount > 0) {
+					break;
+				} else {
+					System.out.print(test);
+				}
+			}
+			if (UDDISubscriptionListenerImpl.notificationCount == 0) {
+				Assert.fail("No Notification was sent");
+			}
+			if (!UDDISubscriptionListenerImpl.notifcationMap.get(0).contains("<name xml:lang=\"en\">Service One</name>")) {
+				Assert.fail("Notification does not contain the correct service");
+			}
+			
+		} catch (Exception e) {
+			e.printStackTrace();
+
+			Assert.fail();
+		} finally {
+			
+			tckSubscriptionListenerRMI.deleteNotifierSubscription(authInfoJoe);
+			tckBusinessService.deleteJoePublisherService(authInfoJoe);
+			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+			tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		}
+	}	
+    
+}

Modified: juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java (original)
+++ juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java Tue Mar 15 19:55:01 2011
@@ -70,7 +70,7 @@ public class SubscriptionNotifierTest 
 			tckTModel.saveJoePublisherTmodel(authInfoJoe);
 			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
 			tckBusinessService.saveJoePublisherService(authInfoJoe);
-			tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
+			//tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
 			tckSubscription.saveJoePublisherSubscription(authInfoJoe);
 			//tckSubscription.getJoePublisherSubscriptionResults(authInfoJoe);
 		} catch (RemoteException e) {
@@ -87,11 +87,14 @@ public class SubscriptionNotifierTest 
 		Collection<Subscription> subscriptions = notifier.getAllAsyncSubscriptions();
 		Assert.assertEquals(1, subscriptions.size());
 		Subscription subscription = subscriptions.iterator().next();
-		GetSubscriptionResults getSubscriptionResults = notifier.buildGetSubscriptionResults(subscription, new Date());
+		GetSubscriptionResults getSubscriptionResults = notifier.buildGetSubscriptionResults(subscription, new Date(new Date().getTime() + 60000l));
 		getSubscriptionResults.setSubscriptionKey(subscription.getSubscriptionKey());
 		UddiEntityPublisher publisher = new UddiEntityPublisher();
 		publisher.setAuthorizedName(subscription.getAuthorizedName());
 		SubscriptionResultsList resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
+		Assert.assertNull(resultList.getServiceList());
+		tckBusinessService.updateJoePublisherService(authInfoJoe, "updated description");
+		resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
 		//We're expecting a changed service (since it was added in the 
 		Assert.assertNotNull(resultList.getServiceList());
 		//We should detect these changes.
@@ -105,7 +108,7 @@ public class SubscriptionNotifierTest 
 	@AfterClass
 	public static void teardown() {
 		tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
-		tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
+		//tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
 		tckBusinessService.deleteJoePublisherService(authInfoJoe);
 		tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
 		tckTModel.deleteJoePublisherTmodel(authInfoJoe);

Added: juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/NotifierTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/NotifierTest.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/NotifierTest.java (added)
+++ juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/subscription/notify/NotifierTest.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,94 @@
+/*
+cd .. * 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.subscription.notify;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.URISyntaxException;
+
+import junit.framework.Assert;
+
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.model.TmodelInstanceInfo;
+import org.junit.Test;
+
+/**
+ * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
+ */
+public class NotifierTest 
+{	
+	@Test
+	public void testHTTPNotifier() throws IllegalArgumentException, SecurityException, URISyntaxException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
+		BindingTemplate bindingTemplate = new BindingTemplate();
+		bindingTemplate.setEntityKey("uddi:uddi.joepublisher.com:bindingnotifier");
+		bindingTemplate.setAccessPointType(AccessPointType.END_POINT.toString());
+		bindingTemplate.setAccessPointUrl("http://localhost:12345/tcksubscriptionlistener");
+		TmodelInstanceInfo instanceInfo = new TmodelInstanceInfo();
+		instanceInfo.setTmodelKey("uddi:uddi.org:transport:http");
+		bindingTemplate.getTmodelInstanceInfos().add(instanceInfo);
+		
+		Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
+		
+		Assert.assertEquals(HTTPNotifier.class, notifier.getClass());
+	}
+	//Expected error because we don't have a javax.mail implementation on the classpath
+	@Test(expected=java.lang.ClassFormatError.class)
+	public void testSMTPNotifier() throws IllegalArgumentException, SecurityException, URISyntaxException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
+		BindingTemplate bindingTemplate = new BindingTemplate();
+		bindingTemplate.setEntityKey("uddi:uddi.joepublisher.com:bindingnotifier");
+		bindingTemplate.setAccessPointType(AccessPointType.END_POINT.toString());
+		bindingTemplate.setAccessPointUrl("mailto:order@islandtrading.example");
+		TmodelInstanceInfo instanceInfo = new TmodelInstanceInfo();
+		instanceInfo.setTmodelKey("uddi:uddi.org:transport:smtp");
+		bindingTemplate.getTmodelInstanceInfos().add(instanceInfo);
+		
+		Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
+		
+		Assert.assertEquals(SMTPNotifier.class, notifier.getClass());
+	}
+	//Expected error because we can't connect to the registry on localhost:11099
+	@Test(expected=java.lang.reflect.InvocationTargetException.class)
+	public void testRMINotifier() throws IllegalArgumentException, SecurityException, URISyntaxException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
+		BindingTemplate bindingTemplate = new BindingTemplate();
+		bindingTemplate.setEntityKey("uddi:uddi.joepublisher.com:bindingnotifier");
+		bindingTemplate.setAccessPointType(AccessPointType.END_POINT.toString());
+		bindingTemplate.setAccessPointUrl("rmi://localhost:11099/tcksubscriptionlistener");
+		TmodelInstanceInfo instanceInfo = new TmodelInstanceInfo();
+		instanceInfo.setTmodelKey("uddi:uddi.org:transport:rmi");
+		bindingTemplate.getTmodelInstanceInfos().add(instanceInfo);
+		
+		Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
+		
+		Assert.assertEquals(RMINotifier.class, notifier.getClass());
+	}
+	//Expected error because we did not specify a correct InitialContext
+	@Test(expected=java.lang.reflect.InvocationTargetException.class)
+	public void testJNDIRMINotifier() throws IllegalArgumentException, SecurityException, URISyntaxException, InstantiationException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, ClassNotFoundException {
+		BindingTemplate bindingTemplate = new BindingTemplate();
+		bindingTemplate.setEntityKey("uddi:uddi.joepublisher.com:bindingnotifier");
+		bindingTemplate.setAccessPointType(AccessPointType.END_POINT.toString());
+		bindingTemplate.setAccessPointUrl("jndi-rmi://localhost:11099/tcksubscriptionlistener");
+		TmodelInstanceInfo instanceInfo = new TmodelInstanceInfo();
+		instanceInfo.setTmodelKey("uddi:uddi.org:transport:jndi-rmi");
+		bindingTemplate.getTmodelInstanceInfos().add(instanceInfo);
+		
+		Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
+		
+		Assert.assertEquals(JNDI_RMINotifier.class, notifier.getClass());
+	}
+		
+	
+	
+}

Modified: juddi/trunk/juddi-core-openjpa/src/test/resources/juddiv3.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/resources/juddiv3.properties?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/resources/juddiv3.properties (original)
+++ juddi/trunk/juddi-core-openjpa/src/test/resources/juddiv3.properties Tue Mar 15 19:55:01 2011
@@ -72,8 +72,8 @@ juddi.keygenerator=org.apache.juddi.keyg
 juddi.authenticate.Inquiry=false
 #
 # Specifies the interval at which the notification timer triggers
-juddi.notification.interval=3000000
+juddi.notification.interval=5000
 # Specifies the amount of time to wait before the notification timer initially fires
-juddi.notification.start.buffer=20000
+juddi.notification.start.buffer=0
 
 

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/Registry.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/Registry.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/Registry.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/Registry.java Tue Mar 15 19:55:01 2011
@@ -8,6 +8,7 @@ import org.apache.commons.logging.LogFac
 import org.apache.juddi.config.AppConfig;
 import org.apache.juddi.config.Property;
 import org.apache.juddi.rmi.JNDIRegistration;
+import org.apache.juddi.rmi.RMIRegistration;
 import org.apache.juddi.subscription.SubscriptionNotifier;
 
 public class Registry {
@@ -64,6 +65,16 @@ public class Registry {
 					log.error("Unable to Register jUDDI services with JNDI. " + e.getMessage(), e);
 				}
 			}
+			if (AppConfig.getConfiguration().getBoolean(Property.JUDDI_RMI_REGISTRATION, false)) {
+				try {
+					int rmiport = AppConfig.getConfiguration().getInteger(Property.JUDDI_RMI_REGISTRY_PORT,1099);
+					int port = AppConfig.getConfiguration().getInteger(Property.JUDDI_RMI_PORT,0);
+					RMIRegistration.getInstance(rmiport).register(port);
+				} catch (Exception e) {
+					log.error("Unable to Register jUDDI services with RMI Registry. " + e.getMessage(), e);
+				}
+			}
+			
 			log.info("jUDDI registry started succesfully.");
 		}
  	}

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java Tue Mar 15 19:55:01 2011
@@ -150,6 +150,7 @@ public class UDDISubscriptionImpl extend
 				logger.error("JAXB Exception while unmarshalling subscription filter", e);
 				throw new FatalErrorException(new ErrorMessage("errors.Unspecified"));
 			}
+			if (logger.isDebugEnabled()) logger.debug("filter=" + modelSubscription.getSubscriptionFilter());
 			
 			SubscriptionResultsList result = new SubscriptionResultsList();
 			result.setCoveragePeriod(body.getCoveragePeriod());
@@ -186,7 +187,6 @@ public class UDDISubscriptionImpl extend
 			if (subscriptionFilter.getFindBinding() != null) {
 				//Get the current matching keys
 				List<?> currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
-	
 				// See if there's any missing keys by comparing against the previous matches.  If so, they missing keys are added to the KeyBag and
 				// then added to the result
 				List<String> missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
@@ -290,7 +290,7 @@ public class UDDISubscriptionImpl extend
 			if (subscriptionFilter.getFindService() != null) {
 				//Get the current matching keys
 				List<?> currentMatchingKeys = getSubscriptionMatches(subscriptionFilter, em);
-	
+				logger.info("current matching keys=" + currentMatchingKeys);
 				List<String> missingKeys = getMissingKeys(currentMatchingKeys, modelSubscription.getSubscriptionMatches());
 				if (missingKeys != null && missingKeys.size() > 0) {
 					KeyBag missingKeyBag = new KeyBag();

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/config/Property.java Tue Mar 15 19:55:01 2011
@@ -32,8 +32,17 @@ public interface Property 
 	public final static String JUDDI_NOTIFICATION_ACCEPTABLE_LAGTIME ="juddi.notification.acceptable.lagtime";
 	public final static String JUDDI_SUBSCRIPTION_CHUNKEXPIRATION_MINUTES="juddi.subscription.chunkexpiration.minutes";
 	public final static String JUDDI_JNDI_REGISTRATION           ="juddi.jndi.registration";
-	public final static String JUDDI_SUBSCRIPTION_NOTIFICATION   ="juddi.subscription.notification";
 	public final static String JUDDI_RMI_PORT                    ="juddi.rmi.port";
+	public final static String JUDDI_RMI_REGISTRATION            ="juddi.rmi.registration";
+	public final static String JUDDI_RMI_REGISTRY_PORT           ="juddi.rmi.registry.port";
+	public final static String JUDDI_SUBSCRIPTION_NOTIFICATION   ="juddi.subscription.notification";
+	public final static String JUDDI_EMAIL_HOST                   ="juddi.email.host";
+	public final static String JUDDI_EMAIL_PORT                   ="juddi.email.port";
+	public final static String JUDDI_EMAIL_AUTH                   ="juddi.email.auth";
+	public final static String JUDDI_EMAIL_USER                   ="juddi.email.user";
+	public final static String JUDDI_EMAIL_PASSWORD               ="juddi.email.password";
+	public final static String JUDDI_EMAIL_TRANSPORT              ="juddi.email.transport";
+	public final static String JUDDI_EMAIL_FROM                   ="juddi.email.from";
 	
 	public final static String DEFAULT_CRYPTOR                   ="org.apache.juddi.cryptor.DefaultCryptor";
 	public final static String DEFAULT_USERSFILE                 ="juddi-users.properties";
@@ -43,4 +52,5 @@ public interface Property 
 	public final static boolean DEFAULT_LOAD_INSTALL_DATA        =true;
 	public final static String DEFAULT_BASE_URL                  ="http://localhost:8080/juddiv3";
 	
+	
 }

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/EntityQuery.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/EntityQuery.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/EntityQuery.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/EntityQuery.java Tue Mar 15 19:55:01 2011
@@ -123,7 +123,7 @@ public abstract class EntityQuery {
 		// If keysIn is null, then no IN list is applied to the query - we simply need to run the query.  Otherwise, the IN list is chunked based on
 		// the application property.
 		if (keysIn == null) {
-			log.debug(dynamicQry);
+			if (log.isDebugEnabled()) log.debug(dynamicQry);
 			Query qry = dynamicQry.buildJPAQuery(em);
 			result = qry.getResultList();
 		}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/RMIRegistration.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/RMIRegistration.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/RMIRegistration.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/rmi/RMIRegistration.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,149 @@
+/*
+ * 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.rmi;
+
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+
+import javax.naming.NamingException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * @author Kurt Stam (kstam@apache.org)
+ */
+public class RMIRegistration
+{
+	public static String JUDDI = "/juddiv3";
+	public static String UDDI_SECURITY_SERVICE    = JUDDI + "/UDDISecurityService";
+	public static String UDDI_PUBLICATION_SERVICE = JUDDI + "/UDDIPublicationService";
+	public static String UDDI_INQUIRY_SERVICE     = JUDDI + "/UDDIInquiryService";
+	public static String UDDI_SUBSCRIPTION_SERVICE = JUDDI + "/UDDISubscriptionService";
+	public static String UDDI_SUBSCRIPTION_LISTENER_SERVICE = JUDDI + "/UDDISubscriptionListenerService";
+	public static String UDDI_CUSTODY_TRANSFER_SERVICE = JUDDI + "/UDDICustodyTransferService";
+	public static String JUDDI_PUBLISHER_SERVICE  = JUDDI + "/JUDDIApiService";
+	
+	private UDDISecurityService securityService = null;
+	private UDDIPublicationService publicationService = null;
+	private UDDIInquiryService inquiryService = null;
+	private UDDISubscriptionService subscriptionService = null;
+	private UDDISubscriptionListenerService subscriptionListenerService = null;
+	private UDDICustodyTransferService custodyTransferService = null;
+	private JUDDIApiService publisherService = null;
+	
+	private Log log = LogFactory.getLog(this.getClass());
+	Registry registry = null;
+	private static RMIRegistration registration = null;
+	
+	public static RMIRegistration getInstance(int port) throws NamingException, RemoteException {
+		if (registration==null) {
+			registration = new RMIRegistration(port);
+		}
+		return registration;
+	}
+	
+	private RMIRegistration(int port) throws NamingException, RemoteException{
+		super();
+		registry = LocateRegistry.createRegistry(port);
+	}
+	/**
+	 * Registers the Publish and Inquiry Services to JNDI and instantiates a
+	 * instance of each so we can remotely attach to it later.
+	 */
+	public void register(int port) {
+		try {
+			securityService = new UDDISecurityService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_SECURITY_SERVICE + ", " + securityService.getClass());
+			registry.bind(UDDI_SECURITY_SERVICE, securityService);
+			
+			publicationService = new UDDIPublicationService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_PUBLICATION_SERVICE + ", " + publicationService.getClass());
+			registry.bind(UDDI_PUBLICATION_SERVICE, publicationService);
+			
+			inquiryService = new UDDIInquiryService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_INQUIRY_SERVICE + ", " + inquiryService.getClass());
+			registry.bind(UDDI_INQUIRY_SERVICE, inquiryService);
+			
+			subscriptionService = new UDDISubscriptionService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_SUBSCRIPTION_SERVICE + ", " + subscriptionService.getClass());
+			registry.bind(UDDI_SUBSCRIPTION_SERVICE, subscriptionService);
+			
+			subscriptionListenerService = new UDDISubscriptionListenerService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_SUBSCRIPTION_LISTENER_SERVICE + ", " + subscriptionListenerService.getClass());
+			registry.bind(UDDI_SUBSCRIPTION_LISTENER_SERVICE, subscriptionListenerService);
+			
+			custodyTransferService = new UDDICustodyTransferService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + UDDI_CUSTODY_TRANSFER_SERVICE + ", " + custodyTransferService.getClass());
+			registry.bind(UDDI_CUSTODY_TRANSFER_SERVICE, custodyTransferService);
+			
+			publisherService = new JUDDIApiService(port);
+			if (log.isDebugEnabled()) log.debug("Setting " + JUDDI_PUBLISHER_SERVICE + ", " + publisherService.getClass());
+			registry.bind(JUDDI_PUBLISHER_SERVICE, publisherService);
+			
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+	}
+	
+	public void unregister() {
+		
+		try {
+			registry.unbind(UDDI_SECURITY_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		securityService = null;
+		try {
+			registry.unbind(UDDI_PUBLICATION_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		publicationService = null;
+		try {
+			registry.unbind(UDDI_INQUIRY_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		inquiryService = null;
+		try {
+			registry.unbind(UDDI_SUBSCRIPTION_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		subscriptionService = null;
+		try {
+			registry.unbind(UDDI_SUBSCRIPTION_LISTENER_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		subscriptionListenerService = null;
+		try {
+			registry.unbind(UDDI_CUSTODY_TRANSFER_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		custodyTransferService = null;
+		try {
+			registry.unbind(JUDDI_PUBLISHER_SERVICE);
+		} catch (Exception e) {
+			log.error(e.getMessage(),e);
+		}
+		publisherService = null;
+		
+	}
+}

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java Tue Mar 15 19:55:01 2011
@@ -17,7 +17,6 @@
 package org.apache.juddi.subscription;
 
 import java.net.MalformedURLException;
-import java.net.URL;
 import java.util.Collection;
 import java.util.Date;
 import java.util.GregorianCalendar;
@@ -43,14 +42,13 @@ import org.apache.juddi.config.Persisten
 import org.apache.juddi.config.Property;
 import org.apache.juddi.model.Subscription;
 import org.apache.juddi.model.UddiEntityPublisher;
-import org.apache.juddi.v3.client.UDDIService;
-import org.apache.juddi.v3.client.UDDIServiceWSDL;
+import org.apache.juddi.subscription.notify.Notifier;
+import org.apache.juddi.subscription.notify.NotifierFactory;
 import org.uddi.sub_v3.CoveragePeriod;
 import org.uddi.sub_v3.GetSubscriptionResults;
 import org.uddi.sub_v3.SubscriptionResultsList;
 import org.uddi.subr_v3.NotifySubscriptionListener;
 import org.uddi.v3_service.DispositionReportFaultMessage;
-import org.uddi.v3_service.UDDISubscriptionListenerPortType;
 
 /**
  * 
@@ -65,6 +63,8 @@ public class SubscriptionNotifier extend
 	private long interval = AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_INTERVAL, 300000l); //5 min default
 	private long acceptableLagTime = AppConfig.getConfiguration().getLong(Property.JUDDI_NOTIFICATION_ACCEPTABLE_LAGTIME, 500l); //500 milliseconds
 	private UDDISubscriptionImpl subscriptionImpl = new UDDISubscriptionImpl();
+	private Boolean registryHasChanges = true;
+	private Boolean alwaysNotify = false;
 	
 	public SubscriptionNotifier() throws ConfigurationException {
 		super();
@@ -74,12 +74,13 @@ public class SubscriptionNotifier extend
 
 	public void run() 
 	{
-		if (firedOnTime(scheduledExecutionTime())) {
+		if (alwaysNotify || (registryHasChanges && firedOnTime(scheduledExecutionTime()))) {
 			long startTime = System.currentTimeMillis();
 			log.debug("Start Notification background task; checking if subscription notifications need to be send out..");
 			
 			Collection<Subscription> subscriptions = getAllAsyncSubscriptions();
 			for (Subscription subscription : subscriptions) {
+				//expireCache after subscription.getExpiresAfter().getTime()
 				if (subscription.getExpiresAfter()==null || subscription.getExpiresAfter().getTime() > startTime) {
 					try {
 						GetSubscriptionResults getSubscriptionResults = buildGetSubscriptionResults(subscription, new Date(scheduledExecutionTime()));
@@ -96,8 +97,7 @@ public class SubscriptionNotifier extend
 					} catch (Exception e) {
 						log.error("Could not obtain subscriptionResult for subscriptionKey " 
 								+ subscription.getSubscriptionKey() + ". " + e.getMessage(),e);
-					}
-						
+					}	
 				}
 			}
             long endTime   = System.currentTimeMillis();
@@ -137,22 +137,22 @@ public class SubscriptionNotifier extend
 		throws DispositionReportFaultMessage, DatatypeConfigurationException {
 		
 		GetSubscriptionResults getSubscriptionResults = null;
-		Date startPoint = subscription.getLastNotified();
-		if (startPoint==null) startPoint = new Date(0);
-
 		Duration duration = TypeConvertor.convertStringToDuration(subscription.getNotificationInterval());
-		Date nextDesiredNotificationDate = new Date(startPoint.getTime());
+		Date startPoint = subscription.getLastNotified();
+		Date nextDesiredNotificationDate = null;
+		if (startPoint==null) startPoint = subscription.getCreateDate();
+		nextDesiredNotificationDate = new Date(startPoint.getTime());
 		duration.addTo(nextDesiredNotificationDate);
 
 		if (subscription.getLastNotified()==null || nextDesiredNotificationDate.after(startPoint) && nextDesiredNotificationDate.before(endPoint)) {
 			getSubscriptionResults = new GetSubscriptionResults();
-			
 			CoveragePeriod period = new CoveragePeriod();
 			GregorianCalendar calendar = new GregorianCalendar();
 			calendar.setTimeInMillis(startPoint.getTime());
 			period.setStartPoint(DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar));
 			calendar.setTimeInMillis(endPoint.getTime());
 			period.setEndPoint(DatatypeFactory.newInstance().newXMLGregorianCalendar(calendar));
+			log.info("Period " + period.getStartPoint() + " " + period.getEndPoint());
 			getSubscriptionResults.setCoveragePeriod(period);
 		}
 		return getSubscriptionResults;
@@ -235,13 +235,12 @@ public class SubscriptionNotifier extend
 			}
 			
 			if (bindingTemplate!=null) {
-				if (AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+				if (AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType()) ||
+						AccessPointType.WSDL_DEPLOYMENT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
 					try {
-						URL tmpWSDLFile = new UDDIServiceWSDL().getWSDLFilePath(UDDIServiceWSDL.WSDLEndPointType.SUBSCRIPTION_LISTENER, bindingTemplate.getAccessPointUrl());
-						UDDIService service = new UDDIService(tmpWSDLFile);
-						UDDISubscriptionListenerPortType subscriptionListenerPort =  service.getUDDISubscriptionListenerPort();
+						Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
 						log.info("Sending out notification to " + bindingTemplate.getAccessPointUrl());
-						subscriptionListenerPort.notifySubscriptionListener(body);
+						notifier.notifySubscriptionListener(body);
 						//there maybe more chunks we have to send
 						String chunkToken=body.getSubscriptionResultsList().getChunkToken();
 						while(chunkToken!=null) {
@@ -251,7 +250,7 @@ public class SubscriptionNotifier extend
 							getSubscriptionResults.setChunkToken(chunkToken);
 							resultList = subscriptionImpl.getSubscriptionResults(getSubscriptionResults, publisher);
 							body.setSubscriptionResultsList(resultList);
-							subscriptionListenerPort.notifySubscriptionListener(body);
+							notifier.notifySubscriptionListener(body);
 							chunkToken=body.getSubscriptionResultsList().getChunkToken();
 						}
 						//now log to the db that we completed sending the notification.

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,53 @@
+package org.apache.juddi.subscription.notify;
+
+import java.io.IOException;
+import java.net.URL;
+import java.rmi.RemoteException;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Service;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.v3.client.UDDIService;
+import org.apache.juddi.v3.client.UDDIServiceWSDL;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISubscriptionListenerPortType;
+
+public class HTTPNotifier implements Notifier {
+	
+	private static String SUBR_V3_NAMESPACE = "urn:uddi-org:v3_service";
+	private static String SUBSCRIPTION_LISTENER_SERVICE = "UDDI_SubscriptionListener_Port";
+	
+	Log log = LogFactory.getLog(this.getClass());
+	UDDISubscriptionListenerPortType subscriptionListenerPort = null;
+	
+	public HTTPNotifier(BindingTemplate bindingTemplate) throws IOException {
+		super();
+		String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
+		if (!accessPointUrl.startsWith("http")) {
+			log.warn("http accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
+					" should start with 'http' or 'https'");
+		}
+		if (AccessPointType.WSDL_DEPLOYMENT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+			//WSDL deployment types
+			//TODO, let user override the SUBSCRIPTION_LISTENER_SERVICE setting
+			QName qName = new QName(SUBR_V3_NAMESPACE, SUBSCRIPTION_LISTENER_SERVICE);
+			Service service = Service.create(new URL(bindingTemplate.getAccessPointUrl()), qName);
+			subscriptionListenerPort = (UDDISubscriptionListenerPortType) service.getPort(UDDISubscriptionListenerPortType.class);
+		} else if (AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+			//endpoint deployment type
+			URL tmpWSDLFile = new UDDIServiceWSDL().getWSDLFilePath(UDDIServiceWSDL.WSDLEndPointType.SUBSCRIPTION_LISTENER, accessPointUrl);
+			UDDIService uddiService = new UDDIService(tmpWSDLFile);
+			subscriptionListenerPort =  uddiService.getUDDISubscriptionListenerPort();
+		}
+	}
+
+	public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+		return subscriptionListenerPort.notifySubscriptionListener(body);
+	}
+}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/JNDI_RMINotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/JNDI_RMINotifier.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/JNDI_RMINotifier.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/JNDI_RMINotifier.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,75 @@
+package org.apache.juddi.subscription.notify;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.util.Properties;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.xml.bind.JAXBException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.InitialContextInfo;
+import org.apache.juddi.Property;
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.jaxb.JAXBMarshaller;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.model.TmodelInstanceInfo;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISubscriptionListenerPortType;
+
+public class JNDI_RMINotifier implements Notifier {
+	
+	Log log = LogFactory.getLog(this.getClass());
+	UDDISubscriptionListenerPortType  subscriptionListenerPort = null;
+	public static String JNDI_RMI_TRANSPORT_KEY = "uddi:uddi.org:transport:jndi-rmi";
+	
+	public JNDI_RMINotifier(BindingTemplate bindingTemplate) throws IOException, 
+	URISyntaxException, NotBoundException, NamingException, JAXBException {
+		super();
+		if (!AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+			log.error("jndi-rmi enpoints only support AccessPointType " + AccessPointType.END_POINT);
+		}
+		String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
+		if (!accessPointUrl.startsWith("jndi-rmi")) {
+			log.warn("jndi-rmi accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
+					" should start with 'jndi-rmi'");
+		}
+		InitialContext context = new InitialContext();
+		for (TmodelInstanceInfo tModelInstanceInfo : bindingTemplate.getTmodelInstanceInfos()) {
+			if (tModelInstanceInfo.getTmodelKey().equals(JNDI_RMI_TRANSPORT_KEY)) {
+				if (log.isDebugEnabled()) log.debug("Found transport tModelKey " + tModelInstanceInfo.getTmodelKey());
+				String instanceParmsStr = tModelInstanceInfo.getInstanceParms();
+				if (instanceParmsStr!=null) {
+					if (log.isDebugEnabled()) log.debug("Found instanceParms with value: " + instanceParmsStr);
+					InitialContextInfo icInfo = (InitialContextInfo) JAXBMarshaller.unmarshallFromString(instanceParmsStr, JAXBMarshaller.PACKAGE_JUDDI);
+					Properties properties = new Properties();
+					for (Property property: icInfo.getContextProperty()) {
+						if (log.isDebugEnabled()) {
+							log.debug("Initial Context Property from instanceParms " + 
+									   property.getName() + ":" + property.getValue());
+						}	
+						properties.put(property.getName(), property.getValue());
+					}
+					context = new InitialContext(properties);
+					break;
+				}
+			}
+		}
+		URI accessPointURI = new URI(accessPointUrl);
+		String path = accessPointURI.getPath();
+		
+		subscriptionListenerPort = (UDDISubscriptionListenerPortType) context.lookup(path);
+		log.info("Successfully located " + path);
+	}
+
+	public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+		return subscriptionListenerPort.notifySubscriptionListener(body);
+	}
+}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/Notifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/Notifier.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/Notifier.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/Notifier.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,14 @@
+package org.apache.juddi.subscription.notify;
+
+import java.rmi.RemoteException;
+
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+public interface Notifier {
+
+	public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) 
+		throws DispositionReportFaultMessage, RemoteException;
+	
+}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,49 @@
+package org.apache.juddi.subscription.notify;
+
+import java.lang.reflect.InvocationTargetException;
+import java.net.URISyntaxException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.ClassUtil;
+import org.apache.juddi.model.BindingTemplate;
+import org.apache.juddi.model.TmodelInstanceInfo;
+/**
+ * The factory figures out which Notifier class to instantiate.
+ * 
+ * @author kstam
+ *
+ */
+public class NotifierFactory {
+	
+	Log log = LogFactory.getLog(this.getClass());
+	public static String UDDI_TRANSPORT_KEY = "uddi:uddi.org:transport:";
+	
+	public Notifier getNotifier(BindingTemplate bindingTemplate) 
+		throws URISyntaxException, IllegalArgumentException, SecurityException, 
+		InstantiationException, IllegalAccessException, InvocationTargetException, 
+		NoSuchMethodException, ClassNotFoundException 
+	{
+	    String notifierClassName = null;
+		for (TmodelInstanceInfo tModelInstanceInfo : bindingTemplate.getTmodelInstanceInfos()) {
+			if (tModelInstanceInfo.getTmodelKey().startsWith(UDDI_TRANSPORT_KEY)) {
+				log.debug("Found transport tModelKey " + tModelInstanceInfo.getTmodelKey());
+				String transport = tModelInstanceInfo.getTmodelKey().substring(UDDI_TRANSPORT_KEY.length(),tModelInstanceInfo.getTmodelKey().length());
+				transport = transport.replaceAll("-", "_");
+				notifierClassName = "org.apache.juddi.subscription.notify." + transport.toUpperCase() +  "Notifier";
+				break;
+			}
+		}
+		if (notifierClassName == null) {
+			log.error("The bindingTemplate " + bindingTemplate.getEntityKey() + " does not contain a tModel to define its type of transport." +
+				" Therefore no notification can be sent out. The user needs to fix the subscription data.");
+		} else {
+			if (log.isDebugEnabled()) log.debug("Going find and instantiate notifier class: " + notifierClassName);
+		}
+		@SuppressWarnings("unchecked")
+		Class<Notifier> notifierClass = (Class<Notifier>) ClassUtil.forName(notifierClassName,this.getClass());
+		Notifier notifier = notifierClass.getConstructor(BindingTemplate.class).newInstance(bindingTemplate);
+	    return notifier;
+	}
+	
+}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/RMINotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/RMINotifier.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/RMINotifier.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/RMINotifier.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,47 @@
+package org.apache.juddi.subscription.notify;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.rmi.NotBoundException;
+import java.rmi.RemoteException;
+import java.rmi.registry.LocateRegistry;
+import java.rmi.registry.Registry;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.model.BindingTemplate;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+import org.uddi.v3_service.UDDISubscriptionListenerPortType;
+
+public class RMINotifier implements Notifier {
+	
+	Log log = LogFactory.getLog(this.getClass());
+	UDDISubscriptionListenerPortType  subscriptionListenerPort = null;
+	
+	public RMINotifier(BindingTemplate bindingTemplate) throws IOException, URISyntaxException, NotBoundException {
+		super();
+		if (!AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+			log.error("rmi enpoints only support AccessPointType " + AccessPointType.END_POINT);
+		}
+		String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
+		if (!accessPointUrl.startsWith("rmi")) {
+			log.warn("rmi accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
+					" should start with 'rmi'");
+		}
+		URI accessPointURI = new URI(accessPointUrl);
+		String host = accessPointURI.getHost();
+		int port = accessPointURI.getPort();
+		String path = accessPointURI.getPath();
+		log.debug("Connecting to " + host + ":" + port);
+		Registry registry = LocateRegistry.getRegistry(host, port);
+		subscriptionListenerPort = (UDDISubscriptionListenerPortType) registry.lookup(path);
+	}
+
+	public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+		return subscriptionListenerPort.notifySubscriptionListener(body);
+	}
+}

Added: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java (added)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,88 @@
+package org.apache.juddi.subscription.notify;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.rmi.RemoteException;
+import java.util.Properties;
+
+import javax.mail.Session;
+import javax.mail.Transport;
+import javax.mail.internet.InternetAddress;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api_v3.AccessPointType;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.jaxb.JAXBMarshaller;
+import org.apache.juddi.model.BindingTemplate;
+import org.uddi.api_v3.DispositionReport;
+import org.uddi.api_v3.Result;
+import org.uddi.subr_v3.NotifySubscriptionListener;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+public class SMTPNotifier implements Notifier {
+	
+	Log log = LogFactory.getLog(this.getClass());
+	String notificationEmailAddress = null;
+	String from = null;
+	Session session = null;
+	String transport = null;
+	
+	public SMTPNotifier(BindingTemplate bindingTemplate) throws URISyntaxException, ConfigurationException {
+		super();
+		if (!AccessPointType.END_POINT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
+			log.error("smtp enpoints only support AccessPointType " + AccessPointType.END_POINT);
+		}
+		String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
+		if (!accessPointUrl.startsWith("mailto")) {
+			log.warn("smtp accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
+					" should start with 'mailto'");
+		}
+		URI accessPointURI = new URI(accessPointUrl);
+		notificationEmailAddress = accessPointURI.getUserInfo() + "@" + accessPointURI.getHost();
+		
+		Properties properties = new Properties();
+		String host = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_HOST,"localhost");
+		properties.put("mail.smtp.host", host);
+		String port = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_PORT,"25");
+		properties.put("mail.smtp.port", port);
+		
+		boolean isAuth = AppConfig.getConfiguration().getBoolean(Property.JUDDI_EMAIL_AUTH,false);
+		if (isAuth) {
+			String user = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_USER,"juddi");
+			properties.put("mail.smtp.user", user);
+			String password = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_PASSWORD,"juddi");
+			properties.put("mail.smtp.user", password);
+		}
+		session = Session.getDefaultInstance(properties);
+		from = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_FROM,"juddi");
+		transport = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_TRANSPORT,"smtp");
+	}
+
+	public DispositionReport notifySubscriptionListener(NotifySubscriptionListener body) throws DispositionReportFaultMessage, RemoteException {
+		
+		log.info("Sending notification email to " + notificationEmailAddress);
+		try {
+			MimeMessage message = new MimeMessage(session);
+			message.setFrom(new InternetAddress(from));
+			//maybe nice to use a template rather then sending raw xml.
+			String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_UDDIAPI);
+			message.setText(subscriptionResultXML);
+			message.setSubject("UDDI Subscription Notification for subscription " 
+					+ body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
+			Transport.send(message);
+			
+		} catch (Exception e) {
+			throw new DispositionReportFaultMessage(e.getMessage(), null);
+		}
+		
+		DispositionReport dr = new DispositionReport();
+		Result res = new Result();
+		dr.getResult().add(res);
+		
+		return dr;
+	}
+}

Modified: juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties
URL: http://svn.apache.org/viewvc/juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties (original)
+++ juddi/trunk/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties Tue Mar 15 19:55:01 2011
@@ -75,7 +75,7 @@ juddi.authenticate.Inquiry=false
 # Specifies the interval at which the notification timer triggers
 juddi.notification.interval=5000
 # Specifies the amount of time to wait before the notification timer initially fires
-juddi.notification.start.buffer=20000
+juddi.notification.start.buffer=2000
 
 # Register the jUDDI RMIServices to JNDI (true, false), false by default since the JNDI
 # implementation in tomcat is readonly. You can use the web.xml instead.

Modified: juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java (original)
+++ juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusinessService.java Tue Mar 15 19:55:01 2011
@@ -24,9 +24,13 @@ import org.apache.juddi.jaxb.EntityCreat
 import org.junit.Assert;
 import org.uddi.api_v3.BusinessService;
 import org.uddi.api_v3.DeleteService;
+import org.uddi.api_v3.FindQualifiers;
+import org.uddi.api_v3.FindService;
 import org.uddi.api_v3.GetServiceDetail;
+import org.uddi.api_v3.Name;
 import org.uddi.api_v3.SaveService;
 import org.uddi.api_v3.ServiceDetail;
+import org.uddi.api_v3.ServiceList;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
 /**
@@ -61,6 +65,10 @@ public class TckBusinessService 
 		saveService(authInfoJoe, JOE_SERVICE_XML, JOE_SERVICE_KEY);
 	}
 	
+	public void updateJoePublisherService(String authInfoJoe, String description) {
+		saveService(authInfoJoe, JOE_SERVICE_XML, JOE_SERVICE_KEY, description);
+	}
+	
 	public void saveJoePublisherService2(String authInfoJoe) {
 		saveService2(authInfoJoe, JOE_SERVICE_KEY, JOE_SERVICE_XML_2, JOE_SERVICE_KEY_2);
 	}
@@ -130,15 +138,20 @@ public class TckBusinessService 
 		}
 	}
 	
-	
 	public void saveService(String authInfo, String serviceXML, String serviceKey) {
+		saveService(authInfo, serviceXML, serviceKey, null);
+	}
+	
+	public void saveService(String authInfo, String serviceXML, String serviceKey, String description) {
 		try {
 			// First save the entity
 			SaveService ss = new SaveService();
 			ss.setAuthInfo(authInfo);
 			
 			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(serviceXML, "org.uddi.api_v3");
-			ss.getBusinessService().add(bsIn);
+			
+			if (description!=null) bsIn.getDescription().get(0).setValue("updated description");
+		    ss.getBusinessService().add(bsIn);
 			publication.saveService(ss);
 			
 			// Now get the entity and check the values
@@ -154,6 +167,7 @@ public class TckBusinessService 
 			TckValidator.checkDescriptions(bsIn.getDescription(), bsOut.getDescription());
 			TckValidator.checkBindingTemplates(bsIn.getBindingTemplates(), bsOut.getBindingTemplates());
 			TckValidator.checkCategories(bsIn.getCategoryBag(), bsOut.getCategoryBag());
+			
 		}
 		catch(Exception e) {
 			logger.error(e.getMessage(), e);

Modified: juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java (original)
+++ juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java Tue Mar 15 19:55:01 2011
@@ -40,21 +40,12 @@ import org.uddi.v3_service.UDDISubscript
  */
 public class TckSubscriptionListener
 {
-	public final static String SUBSCRIBED_SERVICE_XML              = "uddi_data/subscriptionnotifier/businessService.xml";
-    public final static String SUBSCRIBED_SERVICE_KEY              = "uddi:uddi.joepublisher.com:notifierone";
+	public String LISTENER_SERVICE_XML              = "uddi_data/subscriptionnotifier/listenerService.xml";
+    public String LISTENER_SERVICE_KEY              = "uddi:uddi.joepublisher.com:listenerone";
 
-	final static String JOE_SERVICE_XML              = "uddi_data/joepublisher/businessService.xml";
-    final static String JOE_SERVICE_KEY              = "uddi:uddi.joepublisher.com:serviceone";
-    final static String SAM_SERVICE_XML              = "uddi_data/samsyndicator/businessService.xml";
-    final static String SAM_SERVICE_KEY              = "uddi:www.samco.com:listingservice";
-   
-	final static String JOE_SUBSCRIPTION_XML = "uddi_data/subscription/subscription1.xml";
-    final static String JOE_SUBSCRIPTION_KEY = "uddi:uddi.joepublisher.com:subscriptionone";
-	final static String JOE_SUBSCRIPTIONRESULTS_XML = "uddi_data/subscription/subscriptionresults1.xml";   
-    
 	/** note that the subscription1.xml contains the binding template for the UDDI server to call back into */
-	public final static String SUBSCRIPTION_XML = "uddi_data/subscriptionnotifier/subscription1.xml";
-    public final static String SUBSCRIPTION_KEY = "uddi:uddi.joepublisher.com:subscriptionone";
+	public String SUBSCRIPTION_XML = "uddi_data/subscriptionnotifier/subscription1.xml";
+    public String SUBSCRIPTION_KEY = "uddi:uddi.joepublisher.com:subscriptionone";
     
     private Log logger = LogFactory.getLog(this.getClass());
 	private UDDIPublicationPortType publication = null;
@@ -105,7 +96,7 @@ public class TckSubscriptionListener
 			ss = new SaveService();
 			ss.setAuthInfo(authInfo);
 			
-			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(SUBSCRIBED_SERVICE_XML, "org.uddi.api_v3");
+			org.uddi.api_v3.BusinessService bsIn = (org.uddi.api_v3.BusinessService)EntityCreator.buildFromDoc(LISTENER_SERVICE_XML, "org.uddi.api_v3");
 			ss.getBusinessService().add(bsIn);
 			publication.saveService(ss);
 			
@@ -115,18 +106,6 @@ public class TckSubscriptionListener
 			Assert.fail("No exception should be thrown.");
 		}
 	}
-	
-	public void changeSubscribedObject(String authInfo) {
-		try	{
-			ss.getBusinessService().get(0).getDescription().get(0).setValue("foo");
-			publication.saveService(ss);
-		} catch(Exception e) {
-			e.printStackTrace();
-			logger.error(e.getMessage(), e);
-			Assert.fail("No exception should be thrown. " + e.getMessage());
-		}
-
-	}
 
 	public void saveNotifierSubscription(String authInfo) {
 		saveSubscription(authInfo, SUBSCRIPTION_XML, SUBSCRIPTION_KEY);

Added: juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java (added)
+++ juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java Tue Mar 15 19:55:01 2011
@@ -0,0 +1,62 @@
+package org.apache.juddi.v3.tck;
+
+/*
+ * 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 static junit.framework.Assert.assertEquals;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.ws.Holder;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.jaxb.EntityCreator;
+import org.junit.Assert;
+import org.uddi.api_v3.BindingTemplate;
+import org.uddi.api_v3.DeleteBinding;
+import org.uddi.api_v3.SaveBinding;
+import org.uddi.api_v3.SaveService;
+import org.uddi.sub_v3.DeleteSubscription;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.v3_service.UDDIPublicationPortType;
+import org.uddi.v3_service.UDDISubscriptionPortType;
+
+
+/**
+ * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
+ */
+public class TckSubscriptionListenerRMI extends TckSubscriptionListener
+{
+	public final String LISTENER_SERVICE_XML_RMI   = "uddi_data/subscriptionnotifier/listenerServiceRMI.xml";
+    public final String LISTENER_SERVICE_KEY_RMI   = "uddi:uddi.joepublisher.com:listeneronermi";
+
+	/** note that the subscription1.xml contains the binding template for the UDDI server to call back into */
+	public final static String SUBSCRIPTION_XML_RMI = "uddi_data/subscriptionnotifier/subscription1RMI.xml";
+    public final static String SUBSCRIPTION_KEY_RMI = "uddi:uddi.joepublisher.com:subscriptiononermi";
+    
+    public TckSubscriptionListenerRMI(
+			UDDISubscriptionPortType subscription,
+			UDDIPublicationPortType publication) {
+    	
+		super(subscription, publication);
+		this.LISTENER_SERVICE_KEY = LISTENER_SERVICE_KEY_RMI;
+    	this.LISTENER_SERVICE_XML = LISTENER_SERVICE_XML_RMI;
+    	this.SUBSCRIPTION_KEY     = SUBSCRIPTION_KEY_RMI;
+    	this.SUBSCRIPTION_XML     = SUBSCRIPTION_XML_RMI;
+    	
+	}
+	
+}
\ No newline at end of file

Copied: juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/UDDISubscriptionListenerImpl.java (from r1080729, juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/TCK_UDDISubscriptionListenerImpl.java)
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/UDDISubscriptionListenerImpl.java?p2=juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/UDDISubscriptionListenerImpl.java&p1=juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/TCK_UDDISubscriptionListenerImpl.java&r1=1080729&r2=1081918&rev=1081918&view=diff
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/TCK_UDDISubscriptionListenerImpl.java (original)
+++ juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/UDDISubscriptionListenerImpl.java Tue Mar 15 19:55:01 2011
@@ -18,6 +18,8 @@
 package org.apache.juddi.v3.tck;
 
 import java.io.StringWriter;
+import java.rmi.RemoteException;
+import java.rmi.server.UnicastRemoteObject;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -44,13 +46,22 @@ import org.uddi.v3_service.UDDISubscript
 @WebService(serviceName="UDDISubscriptionListenerService", 
 			endpointInterface="org.uddi.v3_service.UDDISubscriptionListenerPortType",
 			targetNamespace = "urn:uddi-org:v3_service")
-public class TCK_UDDISubscriptionListenerImpl implements
+public class UDDISubscriptionListenerImpl extends UnicastRemoteObject  implements
 		UDDISubscriptionListenerPortType {
 	
-	private static Log logger = LogFactory.getLog(TCK_UDDISubscriptionListenerImpl.class);
+	private static final long serialVersionUID = -4621713293140278731L;
+	private static Log logger = LogFactory.getLog(UDDISubscriptionListenerImpl.class);
 	public static Integer notificationCount = 0;
 	public static Map<Integer,String> notifcationMap = new HashMap<Integer,String>();
 	
+	public UDDISubscriptionListenerImpl() throws RemoteException  {
+		super();
+	}
+	
+	public UDDISubscriptionListenerImpl(int port) throws RemoteException {
+		super(port);
+	}
+	
 	public DispositionReport notifySubscriptionListener(
 			NotifySubscriptionListener body)
 			throws DispositionReportFaultMessage 

Added: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerService.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerService.xml?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerService.xml (added)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerService.xml Tue Mar 15 19:55:01 2011
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+ *
+ */ -->
+<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     businessKey="uddi:uddi.joepublisher.com:businessone" serviceKey="uddi:uddi.joepublisher.com:listenerone">
+  <name xml:lang="en">Listener One</name>
+  <name xml:lang="es">Listener Uno</name>
+  <description xml:lang="en">This is the description of listener one.</description>
+  <description xml:lang="es">Ésta es la descripción del listener uno.</description>
+  <bindingTemplates>
+	<bindingTemplate xmlns="urn:uddi-org:api_v3" bindingKey="uddi:uddi.joepublisher.com:bindinglistener">
+	  <description xml:lang="en">This is the endpoint for the subscription listener</description>
+	  <accessPoint useType="endPoint">http://localhost:12345/tcksubscriptionlistener</accessPoint>
+	  <tModelInstanceDetails>
+		<tModelInstanceInfo tModelKey="uddi:uddi.org:transport:http" />
+	  </tModelInstanceDetails>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:tmodelkey:categories:bindings" keyName="category" keyValue="secure" />
+	  </categoryBag>
+	</bindingTemplate>
+  </bindingTemplates>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="peaches" />
+    <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="plums" />
+    <keyedReferenceGroup tModelKey="uddi:tmodelkey:group">
+      <keyedReference tModelKey="uddi:tmodelkey:blank" keyName="blank" keyValue="blank" />
+    </keyedReferenceGroup>
+  </categoryBag>
+</businessService>

Added: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml (added)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml Tue Mar 15 19:55:01 2011
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+ *
+ */ -->
+<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace"
+     businessKey="uddi:uddi.joepublisher.com:businessone" serviceKey="uddi:uddi.joepublisher.com:listeneronermi">
+  <name xml:lang="en">Listener One RMI</name>
+  <name xml:lang="es">Listener Uno RMI </name>
+  <description xml:lang="en">This is the description of listener one rmi.</description>
+  <description xml:lang="es">Ésta es la descripción del listener uno rmi.</description>
+  <bindingTemplates>
+	<bindingTemplate xmlns="urn:uddi-org:api_v3" bindingKey="uddi:uddi.joepublisher.com:bindinglistenerrmi">
+	  <description xml:lang="en">This is the endpoint for the RMI subscription listener</description>
+	  <accessPoint useType="endPoint">rmi://localhost:9876/tck/rmisubscriptionlistener</accessPoint>
+	  <tModelInstanceDetails>
+		<tModelInstanceInfo tModelKey="uddi:uddi.org:transport:rmi" />
+	  </tModelInstanceDetails>
+	  <categoryBag>
+	    <keyedReference tModelKey="uddi:tmodelkey:categories:bindings" keyName="category" keyValue="secure" />
+	  </categoryBag>
+	</bindingTemplate>
+  </bindingTemplates>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="peaches" />
+    <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="plums" />
+    <keyedReferenceGroup tModelKey="uddi:tmodelkey:group">
+      <keyedReference tModelKey="uddi:tmodelkey:blank" keyName="blank" keyValue="blank" />
+    </keyedReferenceGroup>
+  </categoryBag>
+</businessService>

Modified: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1.xml?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1.xml (original)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1.xml Tue Mar 15 19:55:01 2011
@@ -23,17 +23,10 @@
       <findQualifiers>
         <findQualifier>exactMatch</findQualifier>
       </findQualifiers>
-      <name xml:lang="en">Notifier One</name>
-      <categoryBag>
-        <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="peaches" />
-        <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="plums" />
-        <keyedReferenceGroup tModelKey="uddi:tmodelkey:group">
-          <keyedReference tModelKey="uddi:tmodelkey:blank" keyName="blank" keyValue="blank" />
-        </keyedReferenceGroup>
-      </categoryBag>
+      <name xml:lang="en">Service One</name>
     </find_service>
   </subscriptionFilter>
-  <bindingKey xmlns="urn:uddi-org:api_v3">uddi:uddi.joepublisher.com:bindingnotifier</bindingKey>
+  <bindingKey xmlns="urn:uddi-org:api_v3">uddi:uddi.joepublisher.com:bindinglistener</bindingKey>
   <notificationInterval>P5D</notificationInterval>
   <maxEntities>1000</maxEntities>
 </subscription>

Added: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1RMI.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1RMI.xml?rev=1081918&view=auto
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1RMI.xml (added)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1RMI.xml Tue Mar 15 19:55:01 2011
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+ *
+ */
+-->
+<subscription xmlns="urn:uddi-org:sub_v3">
+  <subscriptionKey>uddi:uddi.joepublisher.com:subscriptiononermi</subscriptionKey>
+  <subscriptionFilter>
+    <find_service xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+      <findQualifiers>
+        <findQualifier>exactMatch</findQualifier>
+      </findQualifiers>
+      <name xml:lang="en">Service One</name>
+    </find_service>
+  </subscriptionFilter>
+  <bindingKey xmlns="urn:uddi-org:api_v3">uddi:uddi.joepublisher.com:bindinglistenerrmi</bindingKey>
+  <notificationInterval>P5D</notificationInterval>
+  <maxEntities>1000</maxEntities>
+</subscription>

Modified: juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java?rev=1081918&r1=1081917&r2=1081918&view=diff
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java (original)
+++ juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_010_PublisherIntegrationTest.java Tue Mar 15 19:55:01 2011
@@ -22,6 +22,8 @@ import java.util.List;
 import javax.xml.ws.soap.SOAPFaultException;
 
 import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.juddi.api_v3.DeletePublisher;
 import org.apache.juddi.api_v3.GetAllPublisherDetail;
 import org.apache.juddi.api_v3.GetPublisherDetail;
@@ -32,7 +34,6 @@ import org.apache.juddi.jaxb.EntityCreat
 import org.apache.juddi.v3.client.config.UDDIClerkManager;
 import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
-import org.apache.log4j.Logger;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
@@ -47,7 +48,7 @@ import org.uddi.v3_service.UDDISecurityP
  */
 public class JUDDI_010_PublisherIntegrationTest {
 	
-	private static Logger logger = Logger.getLogger(JUDDI_010_PublisherIntegrationTest.class);
+	private static Log logger = LogFactory.getLog(JUDDI_010_PublisherIntegrationTest.class);
 	private static UDDIClerkManager manager;
 	private static UDDISecurityPortType security =null;
 	private static JUDDIApiPortType publisher = null;



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


Mime
View raw message