You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by al...@apache.org on 2013/04/24 00:19:36 UTC

svn commit: r1471182 [1/8] - in /juddi/branches/juddi-3.2.x: ./ juddi-core-openjpa/ juddi-core-openjpa/src/test/resources/ juddi-core/ juddi-core/src/main/java/org/apache/juddi/config/ juddi-core/src/main/java/org/apache/juddi/keygen/ juddi-core/src/ma...

Author: alexoree
Date: Tue Apr 23 22:19:34 2013
New Revision: 1471182

URL: http://svn.apache.org/r1471182
Log:
bring in the last set of changes from the trunk
gui changes:
-fix for null tmodelinstance parameters
-initial support for creating per entity subscriptions (find_* still not implemented)
-new Font-Awesome library for larger, clearer icons
-several new bootstrap plugins for calendar and duration pickers
-tmodel chooser, a ui component that provides a browseable selector of tmodels was added to all pages to make entering a tmodel simpler 

tmodel signatures still do not validate

Added:
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_140_NegativePublicationTest.java
      - copied unchanged from r1470373, juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_140_NegativePublicationTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
      - copied unchanged from r1470373, juddi/trunk/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
    juddi/branches/juddi-3.2.x/juddi-gui/license/FontAwesome.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-datetimepicker.txt
    juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-timepicker.txt
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/subscription.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap-datetimepicker.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/bootstrap-timepicker.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/font-awesome-ie7.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/font-awesome.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/css/font-awesome.min.css
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/FontAwesome.otf   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/fontawesome-webfont.eot   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/fontawesome-webfont.svg
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/fontawesome-webfont.ttf   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/font/fontawesome-webfont.woff   (with props)
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/bootstrap-datetimepicker.min.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/bootstrap-timepicker.min.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/tmodelChooser.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelChooser.jsp
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceSMTP.xml
      - copied unchanged from r1470373, juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceSMTP.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1SMTP.xml
      - copied unchanged from r1470373, juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/subscription1SMTP.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/tmodels/
      - copied from r1470373, juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/tmodels/
Removed:
    juddi/branches/juddi-3.2.x/juddi-gui/junit-3.8.2.jar
Modified:
    juddi/branches/juddi-3.2.x/   (props changed)
    juddi/branches/juddi-3.2.x/juddi-core-openjpa/pom.xml
    juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties
    juddi/branches/juddi-3.2.x/juddi-core/pom.xml
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/Property.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/   (props changed)
    juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/UDDI_tModels.xml
    juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties   (contents, props changed)
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_030_BusinessEntityTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_080_SubscriptionTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/keygen/KeyGeneratorTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/builders/Builders.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/builders/Printers.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/resources/web.properties
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/resources/web_es.properties
    juddi/branches/juddi-3.2.x/juddi-gui/web/WEB-INF/web.xml
    juddi/branches/juddi-3.2.x/juddi-gui/web/ajax/tmodelsearch.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/assertions.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/businessBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/businessEditor2.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/createSubscription.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/header-bottom.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/header-top.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/businessEditor.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/i18n.js.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/serviceEditor.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/js/tmodelsearch.js
    juddi/branches/juddi-3.2.x/juddi-gui/web/login.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/reginfo.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/search.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/serviceBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/serviceEditor.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelBrowse.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelEditor.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/tmodelPartitions.jsp
    juddi/branches/juddi-3.2.x/juddi-gui/web/viewSubscriptions.jsp
    juddi/branches/juddi-3.2.x/juddiv3-war/pom.xml
    juddi/branches/juddi-3.2.x/juddiv3-war/src/main/webapp/WEB-INF/classes/juddiv3.properties
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/Property.java
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckBusiness.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckPublisher.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListener.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckSubscriptionListenerRMI.java
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/tck.properties
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/   (props changed)
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/find/findService1.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/joepublisher/businessEntity.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/joepublisher/businessService.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscription/subscription1.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscriptionnotifier/listenerServiceRMI.xml
    juddi/branches/juddi-3.2.x/uddi-tck/pom.xml
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/JUDDI_091_RMISubscriptionListenerIntegrationTest.java
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_030_BusinessEntityIntegrationTest.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_040_BusinessServiceIntegrationTest.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_050_BindingTemplateIntegrationTest.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_080_SubscriptionIntegrationTest.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_090_SubscriptionListenerIntegrationTest.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_140_NegativePublicationIntegrationTest.java
    juddi/branches/juddi-3.2.x/uddi-ws/src/main/java/org/apache/juddi/jaxb/JAXBMarshaller.java   (contents, props changed)
    juddi/branches/juddi-3.2.x/uddi-ws/src/main/java/org/uddi/v3_service/UDDICustodyTransferPortType.java

Propchange: juddi/branches/juddi-3.2.x/
------------------------------------------------------------------------------
  Merged /juddi/trunk:r1467813-1470373

Modified: juddi/branches/juddi-3.2.x/juddi-core-openjpa/pom.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core-openjpa/pom.xml?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core-openjpa/pom.xml (original)
+++ juddi/branches/juddi-3.2.x/juddi-core-openjpa/pom.xml Tue Apr 23 22:19:34 2013
@@ -189,7 +189,12 @@
             <version>1.8.2</version>
             <scope>provided</scope>
         </dependency>
-
+        <dependency>
+            <groupId>dumbster</groupId>
+            <artifactId>dumbster</artifactId>
+            <version>1.5</version>
+            <scope>test</scope>
+        </dependency>
 	</dependencies>
 	
 </project>

Modified: juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties (original)
+++ juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties Tue Apr 23 22:19:34 2013
@@ -86,5 +86,5 @@ juddi.auth.token.Timeout=15
 # category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host),
 # tModelinstanceparms and anything else that references a KeyName
 # default value is true.
-# set to false for backword compatability or for a more lax registry
-juddi.validation.enforceReferentialIntegrity=false
\ No newline at end of file
+# set to false for backwards compatibility or for a more lax registry
+juddi.validation.enforceReferentialIntegrity=true
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-core/pom.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/pom.xml?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/pom.xml (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/pom.xml Tue Apr 23 22:19:34 2013
@@ -175,6 +175,12 @@
 			<version>0.6-beta2</version>
 			<scope>test</scope>
 		</dependency>
+		<dependency>
+			<groupId>dumbster</groupId>
+			<artifactId>dumbster</artifactId>
+			<version>1.5</version>
+			<scope>test</scope>
+		</dependency>
 	</dependencies>
 		
 </project>

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/AppConfig.java Tue Apr 23 22:19:34 2013
@@ -75,9 +75,8 @@ public class AppConfig 
 		compositeConfig.addConfiguration(new SystemConfiguration());
 		//Properties from file
 		PropertiesConfiguration propConfig = null;
-	        final String filename = System.getProperty("juddi.propertiesFile");
-		if (filename != null)
-        	{
+	    final String filename = System.getProperty("juddi.propertiesFile");
+		if (filename != null) {
 			propConfig = new PropertiesConfiguration(filename);
 		} else {
 			propConfig = new PropertiesConfiguration(JUDDI_PROPERTIES);

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/Property.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/Property.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/Property.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/config/Property.java Tue Apr 23 22:19:34 2013
@@ -41,13 +41,9 @@ public interface Property {
     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 JUDDI_EMAIL_PREFIX = "juddi.mail.smtp.prefix";
+    public final static String JUDDI_EMAIL_FROM   = "juddi.mail.smtp.from";
+    public final static String DEFAULT_JUDDI_EMAIL_PREFIX = "juddi.";
     public final static String DEFAULT_CRYPTOR = "org.apache.juddi.cryptor.DefaultCryptor";
     public final static String DEFAULT_USERSFILE = "juddi-users.properties";
     public final static String DEFAULT_XML_USERSFILE = "juddi-users.xml";

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/keygen/KeyGeneratorFactory.java Tue Apr 23 22:19:34 2013
@@ -51,6 +51,12 @@ public abstract class KeyGeneratorFactor
 			keyGenerator = createKeyGenerator();
 		return keyGenerator;
 	}
+	
+	public static KeyGenerator forceNewKeyGenerator() {
+		keyGenerator = null;
+		keyGenerator = createKeyGenerator();
+		return keyGenerator;
+	}
 
 	/*
 	 * Returns a new instance of a Cryptor.

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/model/UddiEntityPublisher.java Tue Apr 23 22:19:34 2013
@@ -104,7 +104,7 @@ public class UddiEntityPublisher {
 		if (keyGeneratorKeys == null)
 			populateKeyGeneratorKeys(em);
 		
-
+		if (! key.contains(KeyGenerator.PARTITION_SEPARATOR)) return true; //v2 style key
 		String keyPartition = key.substring(0, key.lastIndexOf(KeyGenerator.PARTITION_SEPARATOR));
 		
 		for (String keyGenKey : keyGeneratorKeys) {

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java Tue Apr 23 22:19:34 2013
@@ -343,23 +343,25 @@ public class SubscriptionNotifier extend
 						AccessPointType.WSDL_DEPLOYMENT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
 					try {
 						Notifier notifier = new NotifierFactory().getNotifier(bindingTemplate);
-						log.info("Sending out notification to " + bindingTemplate.getAccessPointUrl());
-						notifier.notifySubscriptionListener(body);
-						//there maybe more chunks we have to send
-						String chunkToken=body.getSubscriptionResultsList().getChunkToken();
-						while(chunkToken!=null) {
-							UddiEntityPublisher publisher = new UddiEntityPublisher();
-							publisher.setAuthorizedName(modelSubscription.getAuthorizedName());
-							log.debug("Sending out next chunk: " + chunkToken + " to " + bindingTemplate.getAccessPointUrl());
-							getSubscriptionResults.setChunkToken(chunkToken);
-							resultList = subscriptionImpl.getSubscriptionResults(getSubscriptionResults, publisher);
-							body.setSubscriptionResultsList(resultList);
+						if (notifier!=null) {
+							log.info("Sending out notification to " + bindingTemplate.getAccessPointUrl());
 							notifier.notifySubscriptionListener(body);
-							chunkToken=body.getSubscriptionResultsList().getChunkToken();
+							//there maybe more chunks we have to send
+							String chunkToken=body.getSubscriptionResultsList().getChunkToken();
+							while(chunkToken!=null) {
+								UddiEntityPublisher publisher = new UddiEntityPublisher();
+								publisher.setAuthorizedName(modelSubscription.getAuthorizedName());
+								log.debug("Sending out next chunk: " + chunkToken + " to " + bindingTemplate.getAccessPointUrl());
+								getSubscriptionResults.setChunkToken(chunkToken);
+								resultList = subscriptionImpl.getSubscriptionResults(getSubscriptionResults, publisher);
+								body.setSubscriptionResultsList(resultList);
+								notifier.notifySubscriptionListener(body);
+								chunkToken=body.getSubscriptionResultsList().getChunkToken();
+							}
+							//successful notification so remove from the badNotificationList
+							if (badNotifications.containsKey(resultList.getSubscription().getSubscriptionKey()))
+								badNotifications.remove(resultList.getSubscription().getSubscriptionKey());
 						}
-						//successful notification so remove from the badNotificationList
-						if (badNotifications.containsKey(resultList.getSubscription().getSubscriptionKey()))
-							badNotifications.remove(resultList.getSubscription().getSubscriptionKey());
 					} catch (WebServiceException e) {
 						if (e.getCause() instanceof IOException) {
 							addBadNotificationToList(subscriptionKey, bindingTemplate.getAccessPointUrl());

Propchange: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java
------------------------------------------------------------------------------
  Merged /juddi/trunk/juddi-core/src/main/java/org/apache/juddi/subscription/SubscriptionNotifier.java:r1460934-1470373

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/HTTPNotifier.java Tue Apr 23 22:19:34 2013
@@ -34,6 +34,8 @@ public class HTTPNotifier implements Not
 			log.warn("http accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
 					" should start with 'http' or 'https'");
 		}
+		//fix for JIRA JUDDI-597
+		accessPointUrl = bindingTemplate.getAccessPointUrl();
 		if (AccessPointType.WSDL_DEPLOYMENT.toString().equalsIgnoreCase(bindingTemplate.getAccessPointType())) {
 			//WSDL deployment type
 			//TODO, let user override the SUBSCRIPTION_LISTENER_SERVICE setting

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/NotifierFactory.java Tue Apr 23 22:19:34 2013
@@ -36,9 +36,9 @@ public class NotifierFactory {
 		}
 		if (notifierClassName == null) {
 			//JUDDI-496 TODO make sure the tModel is loaded
-			log.debug("The bindingTemplate " + bindingTemplate.getEntityKey() + " does not contain a tModel to define its type of transport. Defaulting " 
+			log.error("The bindingTemplate " + bindingTemplate.getEntityKey() + " does not contain a tModel to define its type of transport. Defaulting " 
 				  +	"to http.");
-			notifierClassName = "org.apache.juddi.subscription.notify.HTTPNotifier";
+			return null;
 		}
 		if (log.isDebugEnabled()) log.debug("Going find and instantiate notifier class: " + notifierClassName);
 		

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/subscription/notify/SMTPNotifier.java Tue Apr 23 22:19:34 2013
@@ -1,10 +1,13 @@
 package org.apache.juddi.subscription.notify;
 
-import java.net.URI;
+import java.io.File;
+import java.io.FileInputStream;
 import java.net.URISyntaxException;
 import java.rmi.RemoteException;
 import java.util.Properties;
 
+import javax.mail.Address;
+import javax.mail.Message.RecipientType;
 import javax.mail.Session;
 import javax.mail.Transport;
 import javax.mail.internet.InternetAddress;
@@ -18,6 +21,7 @@ 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.apache.juddi.v3.client.Release;
 import org.uddi.api_v3.DispositionReport;
 import org.uddi.api_v3.Result;
 import org.uddi.subr_v3.NotifySubscriptionListener;
@@ -29,7 +33,51 @@ public class SMTPNotifier implements Not
 	String notificationEmailAddress = null;
 	String from = null;
 	Session session = null;
-	String transport = null;
+	Properties properties = null;
+	
+	private final static String[] mailProps = {"mail.smtp.from", "mail.smtp.host", "mail.smtp.port", 
+		"mail.smtp.socketFactory.class", "mail.smtp.socketFactory.fallback", "mail.smtp.starttls.enable",
+		"mail.smtp.socketFactory.port","mail.smtp.auth"};
+	
+	protected Properties getEMailProperties() throws ConfigurationException {
+		if (properties==null) {
+			properties = new Properties();
+			String mailPrefix = AppConfig.getConfiguration().getString(Property.JUDDI_EMAIL_PREFIX, Property.DEFAULT_JUDDI_EMAIL_PREFIX);
+			if (! mailPrefix.endsWith(".")) mailPrefix = mailPrefix + ".";
+			for (String key: mailProps) {
+				if (AppConfig.getConfiguration().containsKey(mailPrefix + key)) {
+					properties.put(key, AppConfig.getConfiguration().getProperty(mailPrefix + key));
+				} else if (System.getProperty(mailPrefix + key) != null) {
+					properties.put(key, System.getProperty(mailPrefix + key));
+				}
+			}
+			// only read from file during testing
+			if (properties.size()==0 || "jUDDI@example.org".equals(properties.getProperty("mail.smtp.from"))) {
+				String curDir = System.getProperty("user.dir");
+				if (! curDir.endsWith("uddi-tck")) curDir += "/uddi-tck";
+				String version = Release.getRegistryVersion().replaceAll(".SNAPSHOT", "-SNAPSHOT");
+				String path = curDir + "/target/juddi-tomcat-" + version + "/temp/";
+				log.info("Path="+ path);
+				File tmpFile = new File(path + "/juddi-mail.properties");
+				if (tmpFile.exists()) {
+					try {
+						Properties fileProperties = new Properties();
+						fileProperties.load(new FileInputStream(tmpFile));
+						for (String key: mailProps) {
+							if (fileProperties.containsKey(mailPrefix + key)) {
+								properties.put(key, fileProperties.get(mailPrefix + key));
+							}
+						}
+					} catch (Exception e) {
+						// TODO Auto-generated catch block
+						e.printStackTrace();
+					}
+					log.info("TEST only: Reading properties from " + tmpFile.getAbsolutePath() + ":" + properties);
+				}
+			}
+		}
+		return properties;
+	}
 	
 	public SMTPNotifier(BindingTemplate bindingTemplate) throws URISyntaxException, ConfigurationException {
 		super();
@@ -37,45 +85,36 @@ public class SMTPNotifier implements Not
 			log.error("smtp enpoints only support AccessPointType " + AccessPointType.END_POINT);
 		}
 		String accessPointUrl = bindingTemplate.getAccessPointUrl().toLowerCase();
-		if (!accessPointUrl.startsWith("mailto")) {
+		if (!accessPointUrl.startsWith("mailto:")) {
 			log.warn("smtp accessPointUrl for bindingTemplate " + bindingTemplate.getEntityKey() + 
 					" should start with 'mailto'");
+			//TODO maybe update the user's bindingTemplate with the error?
+		} else {
+			notificationEmailAddress = accessPointUrl.substring(accessPointUrl.indexOf(":")+1);
+			session = Session.getInstance(getEMailProperties());
 		}
-		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);
-			
+			if (session !=null && notificationEmailAddress != null) {
+				MimeMessage message = new MimeMessage(session);
+				InternetAddress address = new InternetAddress(notificationEmailAddress);
+				Address[] to = {address};
+				message.setRecipients(RecipientType.TO, to);
+				message.setFrom(new InternetAddress(getEMailProperties().getProperty("mail.smtp.from", "jUDDI")));
+				//maybe nice to use a template rather then sending raw xml.
+				String subscriptionResultXML = JAXBMarshaller.marshallToString(body, JAXBMarshaller.PACKAGE_SUBSCR_RES);
+				message.setText(subscriptionResultXML);
+				message.setSubject("UDDI Subscription Notification for subscription " 
+						+ body.getSubscriptionResultsList().getSubscription().getSubscriptionKey());
+				Transport.send(message);
+			}
 		} catch (Exception e) {
+			log.error(e.getMessage(),e);
 			throw new DispositionReportFaultMessage(e.getMessage(), null);
 		}
 		

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Tue Apr 23 22:19:34 2013
@@ -18,15 +18,14 @@ package org.apache.juddi.validation;
 
 import java.net.MalformedURLException;
 import java.net.URL;
-import java.util.AbstractSequentialList;
-import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
+
 import javax.persistence.EntityManager;
 import javax.persistence.EntityTransaction;
 import javax.xml.ws.Holder;
+
 import org.apache.commons.configuration.Configuration;
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.logging.Log;
@@ -42,6 +41,7 @@ import org.apache.juddi.config.Property;
 import org.apache.juddi.keygen.KeyGenerator;
 import org.apache.juddi.keygen.KeyGeneratorFactory;
 import org.apache.juddi.model.Publisher;
+import org.apache.juddi.model.Tmodel;
 import org.apache.juddi.model.UddiEntity;
 import org.apache.juddi.model.UddiEntityPublisher;
 import org.apache.juddi.query.FindBusinessByPublisherQuery;
@@ -97,7 +97,6 @@ public class ValidatePublish extends Val
      * This flag will add additional output to stdout for debugging purposes,
      * set this to true if
      */
-    private static final boolean DEBUG = false;
     private Log log = LogFactory.getLog(this.getClass());
     Set<String> buildInTmodels = null;
 
@@ -1104,8 +1103,8 @@ public class ValidatePublish extends Val
     }
 
     public void validateContact(org.uddi.api_v3.Contact contact, Configuration config) throws DispositionReportFaultMessage {
-        if (DEBUG) {
-            System.out.println("validateContact");
+        if (log.isDebugEnabled()) {
+            log.debug("validateContact");
         }
         // A supplied contact can't be null
         if (contact == null) {
@@ -1133,17 +1132,21 @@ public class ValidatePublish extends Val
                     validateKeyLength(address.getTModelKey());
                     validateLang(address.getLang());
                     validateUseType(address.getUseType());
+                    boolean checked = true;
                     // Per section 4.4: keys must be case-folded
                     if (address.getTModelKey() != null) {
                         address.setTModelKey(address.getTModelKey().toLowerCase());
 
-                        verifyTModelKeyExists(address.getTModelKey(), config);
+                        checked = verifyTModelKeyExistsAndChecked(address.getTModelKey(), config);
 
                     }
                     if (address.getAddressLine() == null || address.getAddressLine().size() == 0) {
                         throw new ValueNotAllowedException(new ErrorMessage("errors.contact.NoAddressLine"));
                     }
-                    validateAddressLines(address.getAddressLine(), config);
+                    
+                    if (checked) {
+                    	validateAddressLines(address.getAddressLine(), config);
+                    }
                 }
             }
         }
@@ -1215,8 +1218,8 @@ public class ValidatePublish extends Val
 
     public void validateKeyedReferenceGroup(KeyedReferenceGroup krg, Configuration config) throws DispositionReportFaultMessage {
         // Keyed reference groups must contain a tModelKey
-        if (DEBUG) {
-            System.out.println("validateKeyedReferenceGroup");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateKeyedReferenceGroup");
         }
         if (krg.getTModelKey() == null || krg.getTModelKey().length() == 0) {
             throw new ValueNotAllowedException(new ErrorMessage("errors.keyedreference.NoTModelKey"));
@@ -1227,21 +1230,22 @@ public class ValidatePublish extends Val
         krg.setTModelKey(tmodelKey);
         validateKeyLength(tmodelKey);
 
-        verifyTModelKeyExists(tmodelKey, config);
+        boolean checked = verifyTModelKeyExistsAndChecked(tmodelKey, config);
 
-        List<KeyedReference> keyedRefs = krg.getKeyedReference();
-        // Should being empty raise an error?
-        if (keyedRefs != null && keyedRefs.size() > 0) {
-            for (KeyedReference keyedRef : keyedRefs) {
-                validateKeyedReference(keyedRef, config);
-            }
+        if (checked) {
+	        List<KeyedReference> keyedRefs = krg.getKeyedReference();
+	        // Should being empty raise an error?
+	        if (keyedRefs != null && keyedRefs.size() > 0) {
+	            for (KeyedReference keyedRef : keyedRefs) {
+	                validateKeyedReference(keyedRef, config);
+	            }
+	        }
         }
-
     }
 
     public void validateKeyedReference(KeyedReference kr, Configuration config) throws DispositionReportFaultMessage {
-        if (DEBUG) {
-            System.out.println("validateKeyedReference");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateKeyedReference");
         }
         String tmodelKey = kr.getTModelKey();
 
@@ -1260,8 +1264,6 @@ public class ValidatePublish extends Val
         validateKeyValue(kr.getKeyValue());
         validateKeyName(kr.getKeyName());
 
-        verifyTModelKeyExists(tmodelKey, config);
-
         String rootPublisherStr = config.getString(Property.JUDDI_ROOT_PUBLISHER);
         // Per section 6.2.2.1 of the specification, no publishers (except the root) are allowed to use the node categorization tmodelKey
         if (Constants.NODE_CATEGORY_TMODEL.equalsIgnoreCase(kr.getTModelKey())) {
@@ -1272,8 +1274,8 @@ public class ValidatePublish extends Val
     }
 
     public void validateTModelInstanceDetails(org.uddi.api_v3.TModelInstanceDetails tmodelInstDetails, Configuration config) throws DispositionReportFaultMessage {
-        if (DEBUG) {
-            System.out.println("validateTModelInstanceDetails");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateTModelInstanceDetails");
         }
         // tModel Instance Details is optional
         if (tmodelInstDetails == null) {
@@ -1306,12 +1308,10 @@ public class ValidatePublish extends Val
         tmodelInstInfo.setTModelKey((tmodelInstInfo.getTModelKey().toLowerCase()));
 
         validateInstanceDetails(tmodelInstInfo.getInstanceDetails());
-        if (DEBUG) {
-            System.out.println("validateTModelInstanceInfo");
+        if (log.isDebugEnabled()) {
+            log.debug("validateTModelInstanceInfo");
         }
 
-        verifyTModelKeyExists(tmodelInstInfo.getTModelKey(), config);
-
         validateKeyLength(tmodelInstInfo.getTModelKey());
         validateDescriptions(tmodelInstInfo.getDescription());
 
@@ -1508,8 +1508,8 @@ public class ValidatePublish extends Val
     }
 
     private void validateAccessPoint(EntityManager em, AccessPoint value, Configuration config) throws ValueNotAllowedException {
-        if (DEBUG) {
-            System.out.println("validateAccessPoint");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateAccessPoint");
         }
         boolean checkRef = false;
 
@@ -1549,8 +1549,8 @@ public class ValidatePublish extends Val
     }
 
     private void validateHostingRedirector(EntityManager em, HostingRedirector hostingRedirector, Configuration config) throws ValueNotAllowedException {
-        if (DEBUG) {
-            System.out.println("validateHostingRedirector");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateHostingRedirector");
         }
         if (hostingRedirector == null) {
             return;
@@ -1595,13 +1595,13 @@ public class ValidatePublish extends Val
     }
 
     private void validateAddressLines(List<AddressLine> addressLine, Configuration config) throws ValueNotAllowedException {
-        if (DEBUG) {
-            System.out.println("validateAddressLines");
+    	if (log.isDebugEnabled()) {
+            log.debug("validateAddressLines");
         }
         if (addressLine != null) {
             for (int i = 0; i < addressLine.size(); i++) {
                 validateKeyName(addressLine.get(i).getKeyName());
-                verifyTModelKeyExists(addressLine.get(i).getKeyName(), config);
+                verifyTModelKeyExistsAndChecked(addressLine.get(i).getKeyName(), config);
 
                 validateKeyValue(addressLine.get(i).getKeyValue());
                 if (addressLine.get(i).getValue() == null || addressLine.get(i).getValue().length() == 0) {
@@ -1696,38 +1696,39 @@ public class ValidatePublish extends Val
      * @throws ValueNotAllowedException
      * @see org.apache.juddi.config.Install
      */
-    private void verifyTModelKeyExists(String tmodelKey, Configuration config) throws ValueNotAllowedException {
-        if (tmodelKey == null || tmodelKey.length()==0) {
-            return;
+    private boolean verifyTModelKeyExistsAndChecked(String tmodelKey, Configuration config) throws ValueNotAllowedException {
+    	boolean checked = true;
+    	if (tmodelKey == null || tmodelKey.length()==0) {
+            return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:categorization:types")) {
-            return;
+            return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:categorization:nodes")) {
-            return;
+            return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_inquiry")) {
-            return;
+        	return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_publication")) {
-            return;
+        	return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_security")) {
-            return;
+        	return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_ownership_transfer")) {
-            return;
+        	return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_subscription")) {
-            return;
+        	return false;
         }
         if (tmodelKey.equalsIgnoreCase("uddi:uddi.org:v3_subscriptionlistener")) {
-            return;
+        	return false;
         }
 
         if (config == null) {
             log.warn(new ErrorMessage("errors.tmodel.ReferentialIntegrityNullConfig"));
-            return;
+            return false;
         }
         boolean checkRef = false;
         try {
@@ -1736,8 +1737,8 @@ public class ValidatePublish extends Val
             log.warn("Error caught reading " + Property.JUDDI_ENFORCE_REFERENTIAL_INTEGRITY + " from config file", ex);
         }
         if (checkRef) {
-            if (DEBUG) {
-                System.out.println("verifyTModelKeyExists " + tmodelKey);
+        	if (log.isDebugEnabled()) {
+                log.debug("verifyTModelKeyExists " + tmodelKey);
             }
             EntityManager em = PersistenceManager.getEntityManager();
 
@@ -1746,15 +1747,25 @@ public class ValidatePublish extends Val
                 log.warn(new ErrorMessage("errors.tmodel.ReferentialIntegrityNullEM"));
             } else {
                 //Collections.sort(buildInTmodels);
-                //if ((buildInTmodels, tmodelKey) == -1) 
+                //if ((buildInTmodels, tmodelKey) == -1)
+            	Tmodel modelTModel = null;
                 {
-
-                    org.apache.juddi.model.Tmodel modelTModel = null;
                     EntityTransaction tx = em.getTransaction();
                     try {
 
                         tx.begin();
                         modelTModel = em.find(org.apache.juddi.model.Tmodel.class, tmodelKey);
+                        
+                    	if (modelTModel == null) checked = false;
+                    	else {
+                	    	for (org.apache.juddi.model.KeyedReference ref : modelTModel.getCategoryBag().getKeyedReferences()) {
+                	    		if ("uddi-org:types:unchecked".equalsIgnoreCase(ref.getKeyName())) {
+                	    			checked = false;
+                	    			break;
+                	    		}
+                	    	}
+                    	}
+                        
                         tx.commit();
 
                     } finally {
@@ -1769,5 +1780,20 @@ public class ValidatePublish extends Val
                 }
             }
         }
+        return checked;
+    }
+    
+    private boolean verifyTModelKeyChecked(Tmodel modelTModel) {
+    	boolean checked = true;
+    	if (modelTModel == null) checked = false;
+    	else {
+	    	for (org.apache.juddi.model.KeyedReference ref : modelTModel.getCategoryBag().getKeyedReferences()) {
+	    		if ("uddi-org:types:unchecked".equalsIgnoreCase(ref.getTmodelKeyRef())) {
+	    			checked = false;
+	    			break;
+	    		}
+	    	}
+    	}
+    	return checked;
     }
 }

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateUDDIKey.java Tue Apr 23 22:19:34 2013
@@ -36,14 +36,14 @@ public class ValidateUDDIKey {
 		if (key == null)
 			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NullKey"));
 		
+		if (! key.contains(KeyGenerator.PARTITION_SEPARATOR)) return; //v2 style key; no other validation rules apply
+		
 		String keyToTest = key.trim();
 		if (keyToTest.endsWith(KeyGenerator.PARTITION_SEPARATOR))
 			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
 
 		StringTokenizer tokenizer = new StringTokenizer(key.toLowerCase(), KeyGenerator.PARTITION_SEPARATOR);
-		int tokensCount = tokenizer.countTokens();
-		if(tokensCount <= 1)
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.MalformedKey", key));
+		
 		for(int count = 0; tokenizer.hasMoreTokens(); count++) {
 			String nextToken = tokenizer.nextToken();
 

Propchange: juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/
------------------------------------------------------------------------------
  Merged /juddi/trunk/juddi-core/src/main/resources/juddi_install_data:r1460934-1470373

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/UDDI_tModels.xml
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/UDDI_tModels.xml?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/UDDI_tModels.xml (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/juddi_install_data/UDDI_tModels.xml Tue Apr 23 22:19:34 2013
@@ -975,7 +975,23 @@
         </categoryBag>
     </tModel>
   
-  
+    <tModel tModelKey="uddi:uddi.org:ubr:postaladdress">
+	  <name>ubr-uddi-org:postalAddress</name>
+	  <description xml:lang="EN">Postal address structure</description>
+	  <overviewDoc>
+	    <overviewURL useType="text">
+	      http://uddi.org/taxonomies/UDDI_Taxonomy_tModels.htm#postal
+	    </overviewURL>
+	  </overviewDoc>
+	  <categoryBag>
+	    <keyedReference keyName="uddi-org:types:postalAddress"
+	      keyValue="postalAddress"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	    <keyedReference keyName="uddi-org:types:unchecked"
+	      keyValue="unchecked"
+	      tModelKey="uddi:uddi.org:categorization:types"/>
+	   </categoryBag>
+	</tModel>
   
   
     <tModel tModelKey="uddi:tmodelkey:keygenerator" xmlns="urn:uddi-org:api_v3">
@@ -995,7 +1011,10 @@
         <description xml:lang="en">Identifies an address. This can be a physical, mailing, or electric address.</description>
        
         <categoryBag>
-            <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:categorization" 
+                keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
+            <keyedReference keyName="uddi-org:types:unchecked"
+                keyValue="unchecked" tModelKey="uddi:uddi.org:categorization:types"/>
         </categoryBag>
     </tModel>
     
@@ -1007,10 +1026,8 @@
             <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
         </categoryBag>
     </tModel>
-    
-    
-    
-     <tModel tModelKey="uddi:tmodelkey:blank">
+
+    <tModel tModelKey="uddi:tmodelkey:blank">
         <name>uddi:tmodelkey:blank</name>
         <description xml:lang="en">Identifies a blank tModel</description>
        
@@ -1018,7 +1035,4 @@
             <keyedReference keyName="uddi-org:types:categorization" keyValue="categorization" tModelKey="uddi:uddi.org:categorization:types" />
         </categoryBag>
     </tModel>
-    
-    
-    
 </save_tModel>
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties Tue Apr 23 22:19:34 2013
@@ -128,7 +128,7 @@ errors.names.TooLong=At least one name i
 errors.names.NoValue=A name was provided with no value
 errors.names.LangTooLong=A name language was provided that is too long, only 26 characters are permitted.
 errors.names.UseTypeTooLong=The field 'useType' must be less than 256 characters
-errors.DescriptionTooLong=The field 'useType' must be less than 256 characters
+errors.DescriptionTooLong=The field 'description' must be less than 256 characters
 errors.keys.TooLong=Key lengths are limited to 255 characters or less
 errors.url.overviewTooLong=Overview URLs are limited to 4096 characters
 errors.accessPoint.TooLong=Access points are limited to 4096 characters

Propchange: juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties
------------------------------------------------------------------------------
  Merged /juddi/trunk/juddi-core/src/main/resources/messages.properties:r1460934-1470373

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_030_BusinessEntityTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_030_BusinessEntityTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_030_BusinessEntityTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_030_BusinessEntityTest.java Tue Apr 23 22:19:34 2013
@@ -56,6 +56,9 @@ public class API_030_BusinessEntityTest 
 			UDDISecurityPortType security      = new UDDISecurityImpl();
 			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
 			authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(),  TckPublisher.getSamPassword());
+			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
 		} catch (RemoteException e) {
 			logger.error(e.getMessage(), e);
 			Assert.fail("Could not obtain authInfo token.");
@@ -71,8 +74,12 @@ public class API_030_BusinessEntityTest 
 	public void testJoePublisherBusinessEntity() {
 		try {
 			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+			
 			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
 			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+		} catch (Exception e) {
+			e.printStackTrace();
+			
 		} finally {
 			tckTModel.deleteJoePublisherTmodel(authInfoJoe);
 		}

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTest.java Tue Apr 23 22:19:34 2013
@@ -57,6 +57,9 @@ public class API_040_BusinessServiceTest
 			UDDISecurityPortType security      = new UDDISecurityImpl();
 			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
 			authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(),  TckPublisher.getSamPassword());
+			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
 		} catch (RemoteException e) {
 			logger.error(e.getMessage(), e);
 			Assert.fail("Could not obtain authInfo token.");

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_040_BusinessServiceTestPerformance.java Tue Apr 23 22:19:34 2013
@@ -64,6 +64,9 @@ public class API_040_BusinessServiceTest
 			api010.saveJoePublisher();
 			UDDISecurityPortType security      = new UDDISecurityImpl();
 			authInfoJoe = TckSecurity.getAuthToken(security, TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
+			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
 		} catch (RemoteException e) {
 			logger.error(e.getMessage(), e);
 			Assert.fail("Could not obtain authInfo token.");

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java Tue Apr 23 22:19:34 2013
@@ -31,6 +31,7 @@ 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:jfaath@apache.org">Jeff Faath</a>
@@ -56,6 +57,10 @@ public class API_050_BindingTemplateTest
 		try {
 			api010.saveJoePublisher();
 			authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
+			UDDISecurityPortType security      = new UDDISecurityImpl();
+			String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
 		} catch (RemoteException e) {
 			logger.error(e.getMessage(), e);
 			Assert.fail("Could not obtain authInfo token.");

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_080_SubscriptionTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_080_SubscriptionTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_080_SubscriptionTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_080_SubscriptionTest.java Tue Apr 23 22:19:34 2013
@@ -61,6 +61,9 @@ public class API_080_SubscriptionTest 
 			api010.saveSamSyndicator();
 			authInfoSam = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getSamPublisherId(),  TckPublisher.getSamPassword());
 
+			String authInfoUDDI  = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
+			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
 		} catch (RemoteException e) {
 			logger.error(e.getMessage(), e);
 			Assert.fail("Could not obtain authInfo token.");

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_090_SubscriptionListenerIntegrationTest.java Tue Apr 23 22:19:34 2013
@@ -14,12 +14,16 @@ package org.apache.juddi.api.impl;
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+import java.util.Iterator;
+import java.util.Random;
+
 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.config.Property;
 import org.apache.juddi.v3.tck.TckBusiness;
 import org.apache.juddi.v3.tck.TckBusinessService;
 import org.apache.juddi.v3.tck.TckPublisher;
@@ -33,6 +37,9 @@ import org.junit.BeforeClass;
 import org.junit.Test;
 import org.uddi.v3_service.UDDISecurityPortType;
 
+import com.dumbster.smtp.SimpleSmtpServer;
+import com.dumbster.smtp.SmtpMessage;
+
 /**
  * @author <a href="mailto:tcunning@apache.org">Tom Cunningham</a>
  */
@@ -46,34 +53,36 @@ public class API_090_SubscriptionListene
 	private static TckSubscriptionListener tckSubscriptionListener = new TckSubscriptionListener(new UDDISubscriptionImpl(), new UDDIPublicationImpl());
 	private static Endpoint endPoint;
 	private static String authInfoJoe = null;
-	
+	private static SimpleSmtpServer mailServer;
+	private static Integer smtpPort = 25;
 
 	@AfterClass
 	public static void stopManager() throws ConfigurationException {
 		//manager.stop();
 		//shutting down the TCK SubscriptionListener
 		endPoint.stop();
-		
 		Registry.stop();
+		mailServer.stop();
 	}
 	
 	@BeforeClass
 	public static void startManager() throws ConfigurationException {
 		Registry.start();
 		try {
-			//bring up the TCK SubscriptionListener
+			smtpPort = 9700 + new Random().nextInt(99);
+			System.setProperty(Property.DEFAULT_JUDDI_EMAIL_PREFIX + "mail.smtp.host", "localhost");
+			System.setProperty(Property.DEFAULT_JUDDI_EMAIL_PREFIX + "mail.smtp.port", String.valueOf(smtpPort));
+			System.setProperty(Property.DEFAULT_JUDDI_EMAIL_PREFIX + "mail.smtp.from", "jUDDI@example.org");
+			mailServer = SimpleSmtpServer.start(smtpPort);
+			//bring up the TCK HTTP 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);
+			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);
@@ -82,18 +91,116 @@ public class API_090_SubscriptionListene
 	}
 	
 	@Test
-	public void joePublisher() {
+	public void joePublisherUpdateService_HTTP() {
+		try {
+			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+			//Saving the binding template that will be called by the server for a subscription event
+			tckBusinessService.saveJoePublisherService(authInfoJoe);
+			//Saving the HTTP Listener Service
+			tckSubscriptionListener.saveService(authInfoJoe, TckSubscriptionListener.LISTENER_HTTP_SERVICE_XML, 0);
+			//Saving the HTTP Subscription
+			tckSubscriptionListener.saveNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_XML);
+            //Changing the service we subscribed to "JoePublisherService"
+			Thread.sleep(1000);
+			logger.info("Updating Service ********** ");
+			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
+			
+            //waiting up to 100 seconds for the listener to notice the change.
+			for (int i=0; i<200; i++) {
+				Thread.sleep(500);
+				System.out.print(".");
+				if (UDDISubscriptionListenerImpl.notificationCount > 0) {
+					logger.info("Received HTTP Notification");
+					break;
+				}
+			}
+			if (UDDISubscriptionListenerImpl.notificationCount == 0) {
+				Assert.fail("No HttpNotification 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) {
+			logger.error("No exceptions please.");
+			e.printStackTrace();
+
+			Assert.fail();
+		} finally {
+				tckSubscriptionListener.deleteNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_KEY);
+				tckBusinessService.deleteJoePublisherService(authInfoJoe);
+				tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+				tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		}
+	}
+	
+	@Test
+	public void joePublisherUpdateService_SMTP() {
+		try {
+			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+			//Saving the binding template that will be called by the server for a subscription event
+			tckBusinessService.saveJoePublisherService(authInfoJoe);
+			//Saving the SMTP Listener Service
+			tckSubscriptionListener.saveService(authInfoJoe, TckSubscriptionListener.LISTENER_SMTP_SERVICE_XML, 0);
+			//Saving the SMTP Subscription
+			tckSubscriptionListener.saveNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_SMTP_XML);
+            //Changing the service we subscribed to "JoePublisherService"
+			Thread.sleep(1000);
+			logger.info("Updating Service ********** ");
+			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
+			
+            //waiting up to 100 seconds for the listener to notice the change.
+			for (int i=0; i<200; i++) {
+				Thread.sleep(500);
+				System.out.print(".");
+				if (mailServer.getReceivedEmailSize() > 0) {
+					logger.info("Received Email Notification");
+					break;
+				}
+			}
+			if (mailServer.getReceivedEmailSize() == 0) {
+				Assert.fail("No SmtpNotification was sent");
+			}
+			@SuppressWarnings("rawtypes")
+			Iterator emailIter = mailServer.getReceivedEmail();
+			SmtpMessage email = (SmtpMessage)emailIter.next();
+			System.out.println("Subject:" + email.getHeaderValue("Subject"));
+			System.out.println("Body:" + email.getBody());
+			
+			if (!email.getBody().contains("<name xml:lang=\"en\">Service One</name>")) {
+				Assert.fail("Notification does not contain the correct service");
+			}
+			
+		} catch (Exception e) {
+			logger.error("No exceptions please.");
+			e.printStackTrace();
+
+			Assert.fail();
+		} finally {
+				tckSubscriptionListener.deleteNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_SMTP_KEY);
+				tckBusinessService.deleteJoePublisherService(authInfoJoe);
+				tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+				tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		}
+	}
+	
+	
+	@Test
+	public void joePublisherUpdateBusiness_HTTP() {
 		try {
 			tckTModel.saveJoePublisherTmodel(authInfoJoe);
 			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
 			tckBusinessService.saveJoePublisherService(authInfoJoe);
 			//Saving the Listener Service
-			tckSubscriptionListener.saveService(authInfoJoe);
+			tckSubscriptionListener.saveService(authInfoJoe, TckSubscriptionListener.LISTENER_HTTP_SERVICE_XML, 0);
 			//Saving the Subscription
-			tckSubscriptionListener.saveNotifierSubscription(authInfoJoe);
-			//Changing the service we subscribed to "JoePublisherService"
-			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
-			//tckSubscriptionListener.changeSubscribedObject(authInfoJoe);
+			tckSubscriptionListener.saveNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_XML);
+            //Changing the service we subscribed to "JoePublisherService"
+			Thread.sleep(1000);
+			logger.info("Deleting Business ********** ");
+			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
 			
             //waiting up to 100 seconds for the listener to notice the change.
 			String test="";
@@ -101,6 +208,7 @@ public class API_090_SubscriptionListene
 				Thread.sleep(500);
 				System.out.print(".");
 				if (UDDISubscriptionListenerImpl.notificationCount > 0) {
+					logger.info("Received Notification");
 					break;
 				} else {
 					System.out.print(test);
@@ -114,15 +222,13 @@ public class API_090_SubscriptionListene
 			}
 			
 		} catch (Exception e) {
+			logger.error("No exceptions please.");
 			e.printStackTrace();
 
 			Assert.fail();
 		} finally {
-			
-			tckSubscriptionListener.deleteNotifierSubscription(authInfoJoe);
-			tckBusinessService.deleteJoePublisherService(authInfoJoe);
-			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
-			tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+				tckSubscriptionListener.deleteNotifierSubscription(authInfoJoe, TckSubscriptionListener.SUBSCRIPTION_KEY);
+				tckTModel.deleteJoePublisherTmodel(authInfoJoe);
 		}
 	}	
     

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_091_RMISubscriptionListenerIntegrationTest.java Tue Apr 23 22:19:34 2013
@@ -20,14 +20,17 @@ import java.rmi.NotBoundException;
 import java.rmi.RemoteException;
 import java.rmi.registry.LocateRegistry;
 import java.rmi.registry.Registry;
+import java.util.Random;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api.util.SubscriptionListenerQuery;
 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.TckSubscriptionListenerRMI;
 import org.apache.juddi.v3.tck.TckTModel;
 import org.apache.juddi.v3.tck.UDDISubscriptionListenerImpl;
@@ -55,6 +58,7 @@ public class API_091_RMISubscriptionList
 	private static UDDISubscriptionListenerImpl rmiSubscriptionListenerService = null;
 	private static Registry registry;
 	private static String path = null;
+	private static Integer randomPort = null;
 
 	@AfterClass
 	public static void stopManager() throws ConfigurationException, AccessException, RemoteException, NotBoundException {
@@ -68,8 +72,11 @@ public class API_091_RMISubscriptionList
 	public static void startManager() throws ConfigurationException {
 		org.apache.juddi.Registry.start();
 		try {
+			//random port
+			randomPort = 19800 + new Random().nextInt(99);
+			System.out.println("RMI Random port=" + randomPort);
 			//bring up the RMISubscriptionListener
-			URI rmiEndPoint = new URI("rmi://localhost:9876/tck/rmisubscriptionlistener");
+			URI rmiEndPoint = new URI("rmi://localhost:" + randomPort + "/tck/rmisubscriptionlistener");
 			registry = LocateRegistry.createRegistry(rmiEndPoint.getPort());
 			path = rmiEndPoint.getPath();
 			
@@ -113,9 +120,9 @@ public class API_091_RMISubscriptionList
 			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
 			tckBusinessService.saveJoePublisherService(authInfoJoe);
 			//Saving the Listener Service
-			tckSubscriptionListenerRMI.saveService(authInfoJoe);
+			tckSubscriptionListenerRMI.saveService(authInfoJoe, TckSubscriptionListener.LISTENER_RMI_SERVICE_XML, randomPort);
 			//Saving the Subscription
-			tckSubscriptionListenerRMI.saveNotifierSubscription(authInfoJoe);
+			tckSubscriptionListenerRMI.saveNotifierSubscription(authInfoJoe, TckSubscriptionListenerRMI.SUBSCRIPTION_XML_RMI);
 			//Changing the service we subscribed to "JoePublisherService"
 			tckBusinessService.updateJoePublisherService(authInfoJoe, "foo");
 			
@@ -143,7 +150,7 @@ public class API_091_RMISubscriptionList
 			Assert.fail();
 		} finally {
 			
-			tckSubscriptionListenerRMI.deleteNotifierSubscription(authInfoJoe);
+			tckSubscriptionListenerRMI.deleteNotifierSubscription(authInfoJoe, TckSubscriptionListenerRMI.SUBSCRIPTION_KEY_RMI);
 			tckBusinessService.deleteJoePublisherService(authInfoJoe);
 			tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
 			tckTModel.deleteJoePublisherTmodel(authInfoJoe);

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/keygen/KeyGeneratorTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/keygen/KeyGeneratorTest.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/keygen/KeyGeneratorTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/keygen/KeyGeneratorTest.java Tue Apr 23 22:19:34 2013
@@ -34,7 +34,8 @@ public class KeyGeneratorTest 
 	{
 		System.setProperty(Property.JUDDI_KEYGENERATOR, "org.apache.juddi.keygen.FooGenerator");
 		try {
-			KeyGeneratorFactory.getKeyGenerator();
+			KeyGenerator keyGenerator = KeyGeneratorFactory.forceNewKeyGenerator();
+			System.out.println("Generator = " + keyGenerator.getClass());
 			Assert.fail("This should have thrown an exception because this class does not exist.");
 		} catch (Exception e) {
 			String message = e.getMessage();
@@ -47,7 +48,8 @@ public class KeyGeneratorTest 
 	{
 		System.setProperty(Property.JUDDI_KEYGENERATOR, "org.apache.juddi.keygen.KeyGenerator");
 		try {
-			KeyGeneratorFactory.getKeyGenerator();
+			KeyGenerator keyGenerator = KeyGeneratorFactory.forceNewKeyGenerator();
+			System.out.println("Generator = " + keyGenerator.getClass());
 			Assert.fail("This should have thrown an exception because you cannot instantiate an interface.");
 		} catch (Exception e) {
 			String message = e.getMessage();
@@ -63,7 +65,7 @@ public class KeyGeneratorTest 
 	{
 		System.setProperty(Property.JUDDI_KEYGENERATOR, "org.apache.juddi.keygen.DefaultKeyGenerator");
 		try {
-			KeyGenerator keyGenerator = KeyGeneratorFactory.getKeyGenerator();
+			KeyGenerator keyGenerator = KeyGeneratorFactory.forceNewKeyGenerator();
 			Assert.assertEquals(org.apache.juddi.keygen.DefaultKeyGenerator.class, keyGenerator.getClass());
 			String key = keyGenerator.generate();
 			Assert.assertNotNull(key);

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties Tue Apr 23 22:19:34 2013
@@ -87,5 +87,5 @@ juddi.auth.token.Timeout=15
 # category bags, bindingTemplate/AccessPoint/hostingRedirector (referencing another host),
 # tModelinstanceparms and anything else that references a KeyName
 # default value is true.
-# set to false for backword compatability or for a more lax registry
-juddi.validation.enforceReferentialIntegrity=false
\ No newline at end of file
+# set to false for backwards compatibility or for a more lax registry
+juddi.validation.enforceReferentialIntegrity=true
\ No newline at end of file

Added: juddi/branches/juddi-3.2.x/juddi-gui/license/FontAwesome.txt
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/license/FontAwesome.txt?rev=1471182&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/license/FontAwesome.txt (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui/license/FontAwesome.txt Tue Apr 23 22:19:34 2013
@@ -0,0 +1,7 @@
+http://fortawesome.github.io/Font-Awesome/#license
+The Font Awesome font is licensed under the SIL Open Font License - http://scripts.sil.org/OFL. These fonts can only be distributed as part of a piece of software, but not individually. See the license for details.
+Font Awesome CSS, LESS, and SASS files are licensed under the MIT License - http://opensource.org/licenses/mit-license.html.
+The Font Awesome pictograms are licensed under the CC BY 3.0 License - http://creativecommons.org/licenses/by/3.0/
+Attribution is no longer required in Font Awesome 3.0, but much appreciated: Font Awesome by Dave Gandy - http://fortawesome.github.com/Font-Awesome.
+
+Font Awesome includes a number of fonts protected by the Open Font License.
\ No newline at end of file

Added: juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-datetimepicker.txt
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-datetimepicker.txt?rev=1471182&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-datetimepicker.txt (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-datetimepicker.txt Tue Apr 23 22:19:34 2013
@@ -0,0 +1,4 @@
+http://tarruda.github.io/bootstrap-datetimepicker/
+Apache 2.0 License
+
+Simple date/time picker component based on the work of Stefan Petre, with contributions taken from Andrew Rowls and jdewit.
\ No newline at end of file

Added: juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-timepicker.txt
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-timepicker.txt?rev=1471182&view=auto
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-timepicker.txt (added)
+++ juddi/branches/juddi-3.2.x/juddi-gui/license/bootstrap-timepicker.txt Tue Apr 23 22:19:34 2013
@@ -0,0 +1,4 @@
+https://github.com/jdewit/bootstrap-timepicker
+http://jdewit.github.io/bootstrap-timepicker/
+
+MIT license
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/AES.java Tue Apr 23 22:19:34 2013
@@ -276,7 +276,7 @@ public class AES {
         try {
             return AES.EN(clear, key);
         } catch (Exception ex) {
-            Logger.getLogger(logname).log(Level.FATAL, "I cannot encrypt sensitive information! Check to make sure the unlimited strength JCE is installed " + ex.getMessage());
+            Logger.getLogger(logname).log(Level.FATAL, "Cannot encrypt sensitive information! Check to make sure the unlimited strength JCE is installed " + ex.getMessage());
         }
         return "";
     }
@@ -297,7 +297,7 @@ public class AES {
         try {
             return AES.DE(cipher, key);
         } catch (Exception ex) {
-            Logger.getLogger(logname).log(Level.FATAL, "trouble decrypted data, check to make sure the unlimited strength JCE is installed " + ex.getMessage());
+            Logger.getLogger(logname).log(Level.FATAL, "trouble decrypting data, check to make sure the unlimited strength JCE is installed. If this error occured during deployment, I'll automatically try a smaller key size. " + ex.getMessage());
         }
         return cipher;
 

Modified: juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/PostBackConstants.java Tue Apr 23 22:19:34 2013
@@ -13,12 +13,12 @@ package org.apache.juddi.webconsole;
  * @author Alex O'Ree
  */
 public class PostBackConstants {
-    public static final String INSTANCE="instance";
-    public static final String ACCESSPOINT_TYPE="accessPointType";
-    public static final String ACCESSPOINT_VALUE="accessPointValue";
-    
+
+    public static final String INSTANCE = "instance";
+    public static final String ACCESSPOINT_TYPE = "accessPointType";
+    public static final String ACCESSPOINT_VALUE = "accessPointValue";
     @Deprecated
-public static final String HOSTINGREDIRECTOR="hostingRedirector";
+    public static final String HOSTINGREDIRECTOR = "hostingRedirector";
     public static final String OVERVIEW = "overviewDoc";
     public static final String TMODELINSTANCE = "tmodelInstance";
     public static final String BINDINGTEMPLATE = "bindingTemplate";
@@ -44,5 +44,7 @@ public static final String HOSTINGREDIRE
     public static final String IDENT_KEY_REF = "identbagkeyref";
     public static final String CATBAG_KEY_REF_GRP = "catbaggrpkeyref";
     public static final String KEY_REF = "keyref";
-    public static final String TMODEL_DELETED="isDeleted";
+    public static final String TMODEL_DELETED = "isDeleted";
+    
+
 }

Modified: juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java?rev=1471182&r1=1471181&r2=1471182&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java Tue Apr 23 22:19:34 2013
@@ -330,7 +330,7 @@ public class UddiHub {
                     }
                     sb.append("</a><a class=\"btn btn-primary\" href=\"serviceEditor.jsp?bizid=").
                             append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
-                            append("\"><i class=\"icon-plus-sign icon-white\"></i></a></td></tr>");
+                            append("\"><i class=\"icon-plus-sign icon-white  icon-large\"></i></a></td></tr>");
 
                     sb.append("<tr><td colspan=3><div id=\"").
                             append(StringEscapeUtils.escapeHtml(findBusiness.getBusinessInfos().getBusinessInfo().get(i).getBusinessKey())).
@@ -972,9 +972,11 @@ public class UddiHub {
      * @param lang
      * @param offset
      * @param maxrecords
+     * @param isChooser if true, tModel keys will not be clickable and will
+     * instead be render for a modal dialog box
      * @return
      */
-    public PagableContainer tModelListAsHtml(String keyword, String lang, int offset, int maxrecords) {
+    public PagableContainer tModelListAsHtml(String keyword, String lang, int offset, int maxrecords, boolean isChooser) {
         PagableContainer ret = new PagableContainer();
         try {
             FindTModel fm = new FindTModel();
@@ -1012,32 +1014,12 @@ public class UddiHub {
             if (findTModel == null || findTModel.getTModelInfos() == null || findTModel.getTModelInfos().getTModelInfo().isEmpty()) {
                 ret.renderedHtml = ResourceLoader.GetResource(session, "errors.norecordsfound");//"No tModels are defined";
             } else {
-                StringBuilder sb = new StringBuilder();
-
-                sb.append("<table class=\"table table-hover\"><tr><th>")
-                        .append(ResourceLoader.GetResource(session, "items.key"))
-                        .append("</th><th>")
-                        .append(ResourceLoader.GetResource(session, "items.name"))
-                        .append("</th><th>")
-                        .append(ResourceLoader.GetResource(session, "items.description"))
-                        .append("</th></tr>");
-                for (int i = 0; i < findTModel.getTModelInfos().getTModelInfo().size(); i++) {
-                    sb.append("<tr><td><a href=\"tmodelEditor.jsp?id=")
-                            .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()))
-                            .append("\" >")
-                            .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getTModelKey()))
-                            .append("</a></td><td>")
-                            .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getValue()));
-                    if (findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang() != null) {
-                        sb.append(", ")
-                                .append(StringEscapeUtils.escapeHtml(findTModel.getTModelInfos().getTModelInfo().get(i).getName().getLang()));
-                    }
-                    sb.append("</td><td>")
-                            .append(StringEscapeUtils.escapeHtml(Printers.ListToDescString(findTModel.getTModelInfos().getTModelInfo().get(i).getDescription())))
-                            .append("</td></tr>");
+                if (!isChooser) {
+                    ret.renderedHtml = Printers.PrintTModelListAsHtml(findTModel, session);
                 }
-                sb.append("</table>");
-                ret.renderedHtml = sb.toString();
+                else
+                    ret.renderedHtml = Printers.PrintTModelListAsHtmlModel(findTModel, session);
+
             }
         } catch (Exception ex) {
             ret.renderedHtml = HandleException(ex);



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