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/05/16 04:59:37 UTC

svn commit: r1483162 [1/2] - in /juddi/branches/juddi-3.2.x: juddi-core-openjpa/src/test/resources/ juddi-core/src/main/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/config/ juddi-core/src/main/java/org/apache/juddi/validati...

Author: alexoree
Date: Thu May 16 02:59:36 2013
New Revision: 1483162

URL: http://svn.apache.org/r1483162
Log:
Adding default maxEntities config field
Javadoc on a few classes, default constructors for a few UDDI entities.
Work on the subscription api to enforce ref integ on binding templates. Some tests may still fail

Added:
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiFindService.java
      - copied, changed from r1478745, juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiFindBinding.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiSubscribeGet.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/WsdlImport.java
Modified:
    juddi/branches/juddi-3.2.x/juddi-core-openjpa/src/test/resources/juddiv3.properties
    juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.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/validation/ValidateSubscription.java
    juddi/branches/juddi-3.2.x/juddi-core/src/main/resources/messages.properties
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java
    juddi/branches/juddi-3.2.x/juddi-core/src/test/resources/juddiv3.properties
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-annotations/src/main/webapp/WEB-INF/classes/juddiv3.properties
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCreatebulk.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCustodyTransfer.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureBusiness.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureSearch.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureService.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureTmodel.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiFindBinding.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiRelatedBusinesses.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiSubscribe.java
    juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiSubscribeValidate.java
    juddi/branches/juddi-3.2.x/juddi-gui/src/java/org/apache/juddi/webconsole/hub/UddiHub.java
    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/TckSubscription.java
    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/subscription/subscription2.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscription/subscription3.xml
    juddi/branches/juddi-3.2.x/uddi-tck-base/src/main/resources/uddi_data/subscription/subscription4.xml
    juddi/branches/juddi-3.2.x/uddi-ws/src/main/java/org/uddi/api_v3/AccessPoint.java
    juddi/branches/juddi-3.2.x/uddi-ws/src/main/java/org/uddi/api_v3/Name.java
    juddi/branches/juddi-3.2.x/uddi-ws/src/main/java/org/uddi/sub_v3/Subscription.java

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=1483162&r1=1483161&r2=1483162&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 Thu May 16 02:59:36 2013
@@ -121,4 +121,9 @@ juddi.validation.enforceReferentialInteg
 
 #juddi.mail.smtp.password
 ##Password used to authenticate to the SMTP server
-##used only if juddi.mail.smtp.auth is true
\ No newline at end of file
+##used only if juddi.mail.smtp.auth is true
+
+
+
+#Since 3.1.5 the maxium ammount of returned subscription entities allowed
+juddi.subscription.maxentities = 1000
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java Thu May 16 02:59:36 2013
@@ -22,7 +22,6 @@ import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.List;
 import java.util.UUID;
-
 import javax.jws.WebService;
 import javax.persistence.EntityManager;
 import javax.persistence.EntityTransaction;
@@ -30,7 +29,25 @@ import javax.xml.bind.JAXBException;
 import javax.xml.datatype.DatatypeConfigurationException;
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.ws.Holder;
-
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.juddi.api.util.QueryStatus;
+import org.apache.juddi.api.util.SubscriptionQuery;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.PersistenceManager;
+import org.apache.juddi.config.Property;
+import org.apache.juddi.jaxb.JAXBMarshaller;
+import org.apache.juddi.mapping.MappingApiToModel;
+import org.apache.juddi.mapping.MappingModelToApi;
+import org.apache.juddi.model.SubscriptionChunkToken;
+import org.apache.juddi.model.SubscriptionMatch;
+import org.apache.juddi.model.UddiEntityPublisher;
+import org.apache.juddi.query.FindSubscriptionByPublisherQuery;
+import org.apache.juddi.v3.error.ErrorMessage;
+import org.apache.juddi.v3.error.FatalErrorException;
+import org.apache.juddi.v3.error.InvalidValueException;
+import org.apache.juddi.validation.ValidateSubscription;
 import org.uddi.api_v3.AssertionStatusItem;
 import org.uddi.api_v3.AssertionStatusReport;
 import org.uddi.api_v3.BindingDetail;
@@ -59,26 +76,6 @@ import org.uddi.sub_v3.SubscriptionFilte
 import org.uddi.sub_v3.SubscriptionResultsList;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDISubscriptionPortType;
-import org.apache.commons.configuration.ConfigurationException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.juddi.api.util.QueryStatus;
-import org.apache.juddi.api.util.SecurityQuery;
-import org.apache.juddi.api.util.SubscriptionQuery;
-import org.apache.juddi.config.AppConfig;
-import org.apache.juddi.config.PersistenceManager;
-import org.apache.juddi.config.Property;
-import org.apache.juddi.jaxb.JAXBMarshaller;
-import org.apache.juddi.mapping.MappingApiToModel;
-import org.apache.juddi.mapping.MappingModelToApi;
-import org.apache.juddi.model.SubscriptionChunkToken;
-import org.apache.juddi.model.SubscriptionMatch;
-import org.apache.juddi.model.UddiEntityPublisher;
-import org.apache.juddi.query.FindSubscriptionByPublisherQuery;
-import org.apache.juddi.v3.error.ErrorMessage;
-import org.apache.juddi.v3.error.FatalErrorException;
-import org.apache.juddi.v3.error.InvalidValueException;
-import org.apache.juddi.validation.ValidateSubscription;
 
 /**
  * 
@@ -858,7 +855,7 @@ public class UDDISubscriptionImpl extend
 				} else {
 					modelSubscription.setCreateDate(new Date());
 				}
-	
+                              
 				doSubscriptionExpirationDate(apiSubscription);
 				
 				MappingApiToModel.mapSubscription(apiSubscription, modelSubscription);

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=1483162&r1=1483161&r2=1483162&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 Thu May 16 02:59:36 2013
@@ -1,7 +1,7 @@
 package org.apache.juddi.config;
 
 public interface Property {
-
+    public final static String JDDU_SUBSCRIPTION_MAXENTITIES="juddi.subscription.maxentities";
     public final static String JUDDI_ROOT_PUBLISHER = "juddi.root.publisher";
     public final static String JUDDI_LOAD_INSTALL_DATA = "juddi.load.install.data";
     public final static String JUDDI_PERSISTENCEUNIT_NAME = "juddi.persistenceunit.name";

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/main/java/org/apache/juddi/validation/ValidateSubscription.java Thu May 16 02:59:36 2013
@@ -14,15 +14,21 @@
  * limitations under the License.
  *
  */
-
- package org.apache.juddi.validation;
+package org.apache.juddi.validation;
 
 import java.util.Date;
 import java.util.GregorianCalendar;
 import java.util.HashSet;
 import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
 
 import javax.persistence.EntityManager;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.juddi.config.AppConfig;
+import org.apache.juddi.config.Property;
 
 import org.apache.juddi.keygen.KeyGenerator;
 import org.apache.juddi.keygen.KeyGeneratorFactory;
@@ -45,214 +51,271 @@ import org.uddi.v3_service.DispositionRe
  */
 public class ValidateSubscription extends ValidateUDDIApi {
 
-	public ValidateSubscription(UddiEntityPublisher publisher) {
-		super(publisher);
-	}
-
-	public void validateSubscriptions(EntityManager em, List<org.uddi.sub_v3.Subscription> entityList) throws DispositionReportFaultMessage {
-
-		// No null or empty list
-		if (entityList == null || entityList.size() == 0)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.savesubscription.NoInput"));
-		
-		for (org.uddi.sub_v3.Subscription entity : entityList) {
-			validateSubscription(em, entity);
-		}
-	}
-	
-	private void validateSubscription(EntityManager em, org.uddi.sub_v3.Subscription subscription) throws DispositionReportFaultMessage {
-
-		// A supplied subscription can't be null
-		if (subscription == null)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.NullInput"));
-		
-		boolean entityExists = false;
-		String entityKey = subscription.getSubscriptionKey();
-		if (entityKey == null || entityKey.length() == 0) {
-			KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
-			entityKey = keyGen.generate();
-			subscription.setSubscriptionKey(entityKey);
-		}
-		else {
-			// Per section 4.4: keys must be case-folded
-			entityKey = entityKey.toLowerCase();
-			subscription.setSubscriptionKey(entityKey);
-
-			Object obj = em.find(org.apache.juddi.model.Subscription.class, entityKey);
-			if (obj != null) {
-				entityExists = true;
-
-				// Make sure publisher owns this entity.
-				if (!publisher.getAuthorizedName().equals(((org.apache.juddi.model.Subscription)obj).getAuthorizedName()))
-					throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
-			}
-			else {
-				// Inside this block, we have a key proposed by the publisher on a new entity
-
-				// Validate key and then check to see that the proposed key is valid for this publisher
-				ValidateUDDIKey.validateUDDIv3Key(entityKey);
-				if (!publisher.isValidPublisherKey(em, entityKey))
-					throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
-
-			}
-			
-		}
-
-		if (!entityExists) {
-			// Check to make sure key isn't used by another entity.
-			if (!isUniqueKey(em, entityKey))
-				throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.KeyExists", entityKey));
-		}
-                //AO, if it's already expired, why even allow it?
-		if (subscription.getExpiresAfter()!=null)
-                {
-                    long expiresat= subscription.getExpiresAfter().toGregorianCalendar().getTimeInMillis();
-                    if (System.currentTimeMillis() > expiresat)
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.expired"));
-                }
-                if (subscription.getMaxEntities()!=null)
-                {
-                    if (subscription.getMaxEntities().intValue() <= 0)
-                    {
-                        throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.maxrecordstoosmall"));
-                    }
+    public ValidateSubscription(UddiEntityPublisher publisher) {
+        super(publisher);
+    }
+    private DatatypeFactory df = null;
+
+    public void validateSubscriptions(EntityManager em, List<org.uddi.sub_v3.Subscription> entityList) throws DispositionReportFaultMessage {
+
+        // No null or empty list
+        if (entityList == null || entityList.size() == 0) {
+            throw new ValueNotAllowedException(new ErrorMessage("errors.savesubscription.NoInput"));
+        }
+
+        for (org.uddi.sub_v3.Subscription entity : entityList) {
+            validateSubscription(em, entity);
+        }
+    }
+
+    private void validateSubscription(EntityManager em, org.uddi.sub_v3.Subscription subscription) throws DispositionReportFaultMessage {
+
+        // A supplied subscription can't be null
+        if (subscription == null) {
+            throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.NullInput"));
+        }
+        if (df == null) {
+            try {
+                df = DatatypeFactory.newInstance();
+            } catch (DatatypeConfigurationException ex) {
+                throw new FatalErrorException(new ErrorMessage("errors.DatatypeFactor"));
+            }
+        }
+        boolean entityExists = false;
+        String entityKey = subscription.getSubscriptionKey();
+        //no key specified, make a new one
+        if (entityKey == null || entityKey.length() == 0) {
+            KeyGenerator keyGen = KeyGeneratorFactory.getKeyGenerator();
+            entityKey = keyGen.generate();
+            subscription.setSubscriptionKey(entityKey);
+        } else {
+            //key specified, validate it
+            // Per section 4.4: keys must be case-folded
+            entityKey = entityKey.toLowerCase();
+            subscription.setSubscriptionKey(entityKey);
+
+            Object obj = em.find(org.apache.juddi.model.Subscription.class, entityKey);
+            if (obj != null) {
+                entityExists = true;
+                //revising a new item
+                // Make sure publisher owns this entity.
+                if (!publisher.getAuthorizedName().equals(((org.apache.juddi.model.Subscription) obj).getAuthorizedName())) {
+                    throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
                 }
-		if (subscription.getNotificationInterval()==null)
-                {
-                    //TODO default value?
-                     throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.notificationintervalnotdefined"));
+            } else {
+                //new item
+                // Inside this block, we have a key proposed by the publisher on a new entity
+
+                // Validate key and then check to see that the proposed key is valid for this publisher
+                ValidateUDDIKey.validateUDDIv3Key(entityKey);
+                if (!publisher.isValidPublisherKey(em, entityKey)) {
+                    throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.BadPartition", entityKey));
                 }
-		validateSubscriptionFilter(subscription.getSubscriptionFilter(), entityExists);
-	}
-        /**
-         * this handles just the filter items only
-         * @param subscriptionFilter
-         * @param entityExists or more accurately, is this a new item or not?
-         * @throws DispositionReportFaultMessage 
+
+            }
+
+        }
+
+        if (!entityExists) {
+            // Check to make sure key isn't used by another entity.
+            if (!isUniqueKey(em, entityKey)) {
+                throw new KeyUnavailableException(new ErrorMessage("errors.keyunavailable.KeyExists", entityKey));
+            }
+        }
+        //AO, if it's already expired, why even allow it?
+        if (subscription.getExpiresAfter() != null) {
+            long expiresat = subscription.getExpiresAfter().toGregorianCalendar().getTimeInMillis();
+            if (System.currentTimeMillis() > expiresat) {
+                throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.expired"));
+            }
+        }
+        if (subscription.getMaxEntities() != null) {
+            if (subscription.getMaxEntities().intValue() <= 0) {
+                throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.maxrecordstoosmall"));
+            }
+        }
+        //maxEntities:  This optional integer specifies the maximum number of entities in a notification returned to a subscription listener. 
+        //If not specified, the number of entities sent is not limited, unless by node policy.
+        try {
+            if (subscription.getMaxEntities() == null
+                    || subscription.getMaxEntities().intValue() > AppConfig.getConfiguration().getInt(Property.JDDU_SUBSCRIPTION_MAXENTITIES, 1000)) {
+                subscription.setMaxEntities(AppConfig.getConfiguration().getInt(Property.JDDU_SUBSCRIPTION_MAXENTITIES, 1000));
+            }
+        } catch (ConfigurationException x) {
+            subscription.setMaxEntities(1000);
+        }
+        /*
+         *  notificationInterval:  This optional argument is only required when asynchronous notifications are used. 
+         * It is of type xsd:duration and specifies how often change notifications are to be provided to a subscriber. 
+         * If the notificationInterval specified is not acceptable due to node policy, then the node adjusts the value to
+         * match the next longer time period that is supported.  The adjusted value is provided with the returns from this
+         * API.  Also see Section 5.5.1.1 Specifying Durations.
          */
-	private void validateSubscriptionFilter(SubscriptionFilter subscriptionFilter, boolean entityExists) throws DispositionReportFaultMessage {
-		if (!entityExists && subscriptionFilter == null)
-			throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.NoFilterOnNewSubscription"));
-			
-		if (subscriptionFilter != null) {
-			int filterCount = 0;
-			ValidateInquiry validateInquiry = new ValidateInquiry(publisher);
-			if (subscriptionFilter.getFindBinding() != null) {
-				filterCount++;
-				validateInquiry.validateFindBinding(subscriptionFilter.getFindBinding());
-			}
-			if (subscriptionFilter.getFindBusiness() != null) {
-				filterCount++;
-				validateInquiry.validateFindBusiness(subscriptionFilter.getFindBusiness());
-			}
-			if (subscriptionFilter.getFindService() != null) {
-				filterCount++;
-				validateInquiry.validateFindService(subscriptionFilter.getFindService());
-			}
-			if (subscriptionFilter.getFindTModel() != null) {
-				filterCount++;
-				validateInquiry.validateFindTModel(subscriptionFilter.getFindTModel(), false);
-			}
-			if (subscriptionFilter.getFindRelatedBusinesses() != null) {
-				filterCount++;
-				validateInquiry.validateFindRelatedBusinesses(subscriptionFilter.getFindRelatedBusinesses(), false);
-			}
-			if (subscriptionFilter.getGetBindingDetail() != null) {
-				filterCount++;
-				validateInquiry.validateGetBindingDetail(subscriptionFilter.getGetBindingDetail());
-			}
-			if (subscriptionFilter.getGetBusinessDetail() != null) {
-				filterCount++;
-				validateInquiry.validateGetBusinessDetail(subscriptionFilter.getGetBusinessDetail());
-			}
-			if (subscriptionFilter.getGetServiceDetail() != null) {
-				filterCount++;
-				validateInquiry.validateGetServiceDetail(subscriptionFilter.getGetServiceDetail());
-			}
-			if (subscriptionFilter.getGetTModelDetail() != null) {
-				filterCount++;
-				validateInquiry.validateGetTModelDetail(subscriptionFilter.getGetTModelDetail());
-			}
-			if (subscriptionFilter.getGetAssertionStatusReport() != null) {
-				filterCount++;
-			}
-
-			if (filterCount == 0)
-				throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.BlankFilter"));
-			
-			if (filterCount > 1)
-				throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.TooManyFilters", String.valueOf(filterCount)));
-
-		}
-		
-	}
-	
-	public void validateDeleteSubscription(EntityManager em, DeleteSubscription body) throws DispositionReportFaultMessage {
-		// No null input
-		if (body == null)
-			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
-
-		// No null or empty list
-		List<String> entityKeyList = body.getSubscriptionKey();
-		if (entityKeyList == null || entityKeyList.size() == 0)
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
-		
-		HashSet<String> dupCheck = new HashSet<String>();
-		int i = 0;
-		for (String entityKey : entityKeyList) {
-
-			// Per section 4.4: keys must be case-folded
-			entityKey = entityKey.toLowerCase();
-			entityKeyList.set(i, entityKey);
-			
-			boolean inserted = dupCheck.add(entityKey);
-			if (!inserted)
-				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
-			
-			Object obj = em.find(org.apache.juddi.model.Subscription.class, entityKey);
-			if (obj == null)
-				throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscriptionNotFound", entityKey));
-			
-			// Make sure publisher owns this entity.
-			if (!publisher.getAuthorizedName().equals(((org.apache.juddi.model.Subscription)obj).getAuthorizedName()))
-				throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
-			
-			i++;
-		}
-	}
-
-	public void validateGetSubscriptionResults(EntityManager em, GetSubscriptionResults body) throws DispositionReportFaultMessage {
-		// No null input
-		if (body == null)
-			throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
-		
-		String subscriptionKey = body.getSubscriptionKey();
-		if (subscriptionKey == null || subscriptionKey.length() == 0)
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NullKey", subscriptionKey));
-		
-		// Per section 4.4: keys must be case-folded
-		subscriptionKey = subscriptionKey.toLowerCase();
-		body.setSubscriptionKey(subscriptionKey);
-		
-		Object obj = em.find(org.apache.juddi.model.Subscription.class, subscriptionKey);
-		if (obj == null)
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscriptionNotFound", subscriptionKey));
-		
-		Date expiresAfter = ((org.apache.juddi.model.Subscription)obj).getExpiresAfter();
-		Date now = new Date();
-		if (expiresAfter.getTime() < now.getTime())
-			throw new InvalidKeyPassedException(new ErrorMessage("errors.getsubscriptionresult.SubscriptionExpired", subscriptionKey));
-		
-		CoveragePeriod coveragePeriod = body.getCoveragePeriod();
-		if (coveragePeriod == null)
-			throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.NullCoveragePeriod"));
-		
-		if (coveragePeriod.getStartPoint() == null || coveragePeriod.getEndPoint() == null)
-			throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.InvalidDateInCoveragePeriod"));
-		
-		GregorianCalendar startPoint = coveragePeriod.getStartPoint().toGregorianCalendar();
-		GregorianCalendar endPoint = coveragePeriod.getEndPoint().toGregorianCalendar();
-		if (startPoint.getTimeInMillis() > endPoint.getTimeInMillis())
-			throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.StartPointAfterEndPoint", startPoint.toString()));		
-	}
+        if (subscription.getNotificationInterval() == null && subscription.getBindingKey() != null) {
+            throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.notificationintervalnotdefined"));
+        }
+        
+        //validate that the binding key exists
+        validateSubscriptionBindingkeyExists(em,subscription.getBindingKey());
+        
+        validateSubscriptionFilter(subscription.getSubscriptionFilter(), entityExists);
+    }
+
+    /**
+     * this handles just the filter items only
+     *
+     * @param subscriptionFilter
+     * @param entityExists or more accurately, is this a new item or not?
+     * @throws DispositionReportFaultMessage
+     */
+    private void validateSubscriptionFilter(SubscriptionFilter subscriptionFilter, boolean entityExists) throws DispositionReportFaultMessage {
+        if (!entityExists && subscriptionFilter == null) {
+            throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.NoFilterOnNewSubscription"));
+        }
+
+        if (subscriptionFilter != null) {
+            int filterCount = 0;
+            ValidateInquiry validateInquiry = new ValidateInquiry(publisher);
+            if (subscriptionFilter.getFindBinding() != null) {
+                filterCount++;
+                validateInquiry.validateFindBinding(subscriptionFilter.getFindBinding());
+            }
+            if (subscriptionFilter.getFindBusiness() != null) {
+                filterCount++;
+                validateInquiry.validateFindBusiness(subscriptionFilter.getFindBusiness());
+            }
+            if (subscriptionFilter.getFindService() != null) {
+                filterCount++;
+                validateInquiry.validateFindService(subscriptionFilter.getFindService());
+            }
+            if (subscriptionFilter.getFindTModel() != null) {
+                filterCount++;
+                validateInquiry.validateFindTModel(subscriptionFilter.getFindTModel(), false);
+            }
+            if (subscriptionFilter.getFindRelatedBusinesses() != null) {
+                filterCount++;
+                validateInquiry.validateFindRelatedBusinesses(subscriptionFilter.getFindRelatedBusinesses(), false);
+            }
+            if (subscriptionFilter.getGetBindingDetail() != null) {
+                filterCount++;
+                validateInquiry.validateGetBindingDetail(subscriptionFilter.getGetBindingDetail());
+            }
+            if (subscriptionFilter.getGetBusinessDetail() != null) {
+                filterCount++;
+                validateInquiry.validateGetBusinessDetail(subscriptionFilter.getGetBusinessDetail());
+            }
+            if (subscriptionFilter.getGetServiceDetail() != null) {
+                filterCount++;
+                validateInquiry.validateGetServiceDetail(subscriptionFilter.getGetServiceDetail());
+            }
+            if (subscriptionFilter.getGetTModelDetail() != null) {
+                filterCount++;
+                validateInquiry.validateGetTModelDetail(subscriptionFilter.getGetTModelDetail());
+            }
+            if (subscriptionFilter.getGetAssertionStatusReport() != null) {
+                filterCount++;
+            }
+
+            if (filterCount == 0) {
+                throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.BlankFilter"));
+            }
+
+            if (filterCount > 1) {
+                throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.TooManyFilters", String.valueOf(filterCount)));
+            }
+
+        }
+
+    }
+
+    public void validateDeleteSubscription(EntityManager em, DeleteSubscription body) throws DispositionReportFaultMessage {
+        // No null input
+        if (body == null) {
+            throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+        }
+
+        // No null or empty list
+        List<String> entityKeyList = body.getSubscriptionKey();
+        if (entityKeyList == null || entityKeyList.size() == 0) {
+            throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NoKeys"));
+        }
+
+        HashSet<String> dupCheck = new HashSet<String>();
+        int i = 0;
+        for (String entityKey : entityKeyList) {
+
+            // Per section 4.4: keys must be case-folded
+            entityKey = entityKey.toLowerCase();
+            entityKeyList.set(i, entityKey);
+
+            boolean inserted = dupCheck.add(entityKey);
+            if (!inserted) {
+                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.DuplicateKey", entityKey));
+            }
+
+            Object obj = em.find(org.apache.juddi.model.Subscription.class, entityKey);
+            if (obj == null) {
+                throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscriptionNotFound", entityKey));
+            }
+
+            // Make sure publisher owns this entity.
+            if (!publisher.getAuthorizedName().equals(((org.apache.juddi.model.Subscription) obj).getAuthorizedName())) {
+                throw new UserMismatchException(new ErrorMessage("errors.usermismatch.InvalidOwner", entityKey));
+            }
+
+            i++;
+        }
+    }
+
+    public void validateGetSubscriptionResults(EntityManager em, GetSubscriptionResults body) throws DispositionReportFaultMessage {
+        // No null input
+        if (body == null) {
+            throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+        }
+
+        String subscriptionKey = body.getSubscriptionKey();
+        if (subscriptionKey == null || subscriptionKey.length() == 0) {
+            throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.NullKey", subscriptionKey));
+        }
+
+        // Per section 4.4: keys must be case-folded
+        subscriptionKey = subscriptionKey.toLowerCase();
+        body.setSubscriptionKey(subscriptionKey);
+
+        Object obj = em.find(org.apache.juddi.model.Subscription.class, subscriptionKey);
+        if (obj == null) {
+            throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.SubscriptionNotFound", subscriptionKey));
+        }
+
+        Date expiresAfter = ((org.apache.juddi.model.Subscription) obj).getExpiresAfter();
+        Date now = new Date();
+        if (expiresAfter.getTime() < now.getTime()) {
+            throw new InvalidKeyPassedException(new ErrorMessage("errors.getsubscriptionresult.SubscriptionExpired", subscriptionKey));
+        }
+
+        CoveragePeriod coveragePeriod = body.getCoveragePeriod();
+        if (coveragePeriod == null) {
+            throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.NullCoveragePeriod"));
+        }
+
+        if (coveragePeriod.getStartPoint() == null || coveragePeriod.getEndPoint() == null) {
+            throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.InvalidDateInCoveragePeriod"));
+        }
+
+        GregorianCalendar startPoint = coveragePeriod.getStartPoint().toGregorianCalendar();
+        GregorianCalendar endPoint = coveragePeriod.getEndPoint().toGregorianCalendar();
+        if (startPoint.getTimeInMillis() > endPoint.getTimeInMillis()) {
+            throw new InvalidTimeException(new ErrorMessage("errors.getsubscriptionresult.StartPointAfterEndPoint", startPoint.toString()));
+        }
+    }
+
+    private void validateSubscriptionBindingkeyExists(EntityManager em, String bindingKey) throws ValueNotAllowedException {
+        if (bindingKey==null || bindingKey.length()==0) {
+            return;
+        }
+        Object obj = em.find(org.apache.juddi.model.BindingTemplate.class, bindingKey);
+        if (obj==null) {
+            throw new ValueNotAllowedException(new ErrorMessage("errors.subscription.BindingDoesntExist"));
+        }
+    }
 }

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=1483162&r1=1483161&r2=1483162&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 Thu May 16 02:59:36 2013
@@ -60,6 +60,7 @@ E_valueNotAllowed=A value did not pass v
 
 
 #-- General error messages
+errors.DatatypeFactor=Can't create a DatatypeFactory instance.
 errors.Unspecified=An unspecified error occurred
 errors.Unsupported=This version does not support this feature or API
 errors.Unsupported.findQualifier=Invalid findQualifier value was passed
@@ -187,12 +188,13 @@ errors.transferentities.TokenExpired=The
 errors.transferentities.KeyMismatch=A supplied key does not match a key associated with the transfer request
 errors.savesubscription.NoInput=At least one Subscription must be provided
 errors.subscription.NullInput=The subscription structure cannot be blank
+errors.subscription.BindingDoesntExist=The requested subscription has a binding key defined, however that binding template does not exist
 errors.subscription.NoFilterOnNewSubscription=No subscription filter was provided on this new subscription request
 errors.subscription.BlankFilter=A filter structure was provided but no filter criteria was specified
 errors.subscription.TooManyFilters=Only one filter is allowed per subscription request
 errors.subscription.expired=The expiration timestamp has already passed.
 errors.subscription.maxrecordstoosmall=When specifying the maxium record, it must be greater than zero
-errors.subscription.notificationintervalnotdefined=A notification interval must be specified
+errors.subscription.notificationintervalnotdefined=A notification interval must be specified and must be greater than 0ms
 errors.getsubscriptionresult.SubscriptionExpired=The passed subscription has expired
 errors.getsubscriptionresult.NullCoveragePeriod=The coverage period cannot be blank
 errors.getsubscriptionresult.InvalidDateInCoveragePeriod=The coverage period must contain valid dates for start and end points

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/api/impl/API_141_JIRATest.java Thu May 16 02:59:36 2013
@@ -14,17 +14,30 @@
  */
 package org.apache.juddi.api.impl;
 
+import java.rmi.RemoteException;
 import java.util.ArrayList;
+import java.util.Calendar;
+import java.util.GregorianCalendar;
 import java.util.List;
+import java.util.UUID;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.xml.datatype.DatatypeConfigurationException;
+import javax.xml.datatype.DatatypeFactory;
+import javax.xml.datatype.XMLGregorianCalendar;
 
 import javax.xml.soap.SOAPFault;
+import javax.xml.ws.Holder;
 
 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.api_v3.AccessPointType;
 import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.UDDIClerk;
 import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.error.ValueNotAllowedException;
 import org.apache.juddi.v3.tck.TckPublisher;
 import org.apache.juddi.v3.tck.TckSecurity;
 import org.apache.juddi.v3.tck.TckTModel;
@@ -32,6 +45,8 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.uddi.api_v3.AccessPoint;
+import org.uddi.api_v3.BindingTemplate;
 import org.uddi.api_v3.BindingTemplates;
 import org.uddi.api_v3.BusinessDetail;
 import org.uddi.api_v3.BusinessEntity;
@@ -56,10 +71,17 @@ import org.uddi.api_v3.ServiceInfos;
 import org.uddi.api_v3.ServiceList;
 import org.uddi.api_v3.TModel;
 import org.uddi.api_v3.TModelDetail;
+import org.uddi.api_v3.TModelInstanceDetails;
+import org.uddi.api_v3.TModelInstanceInfo;
 import org.uddi.api_v3.TModelList;
+import org.uddi.sub_v3.DeleteSubscription;
+import org.uddi.sub_v3.Subscription;
+import org.uddi.sub_v3.SubscriptionFilter;
+import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
+import org.uddi.v3_service.UDDISubscriptionPortType;
 
 /**
  * This test class provides test cases of items discovered or reported through
@@ -72,12 +94,11 @@ import org.uddi.v3_service.UDDISecurityP
 public class API_141_JIRATest {
 
     private static Log logger = LogFactory.getLog(API_141_JIRATest.class);
-
     static UDDISecurityPortType security = new UDDISecurityImpl();
     static UDDIInquiryPortType inquiry = new UDDIInquiryImpl();
     static UDDIPublicationPortType publication = new UDDIPublicationImpl();
-    static TckTModel tckTModel               = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-
+    static UDDISubscriptionPortType sub = new UDDISubscriptionImpl();
+    static TckTModel tckTModel = new TckTModel(new UDDIPublicationImpl(), new UDDIInquiryImpl());
     protected static String authInfoJoe = null;
     protected static String authInfoSam = null;
     private static UDDIClient manager;
@@ -97,15 +118,17 @@ public class API_141_JIRATest {
     static final String str51 = "111111111111111111111111111111111111111111111111111";
     static final String str50 = "11111111111111111111111111111111111111111111111111";
     static final String MISSING_RESOURCE = "Can't find resource for bundle";
+    static DatatypeFactory df = null;
 
     @AfterClass
-    public static  void stopManager() throws ConfigurationException {
-    	Registry.stop();
+    public static void stopManager() throws ConfigurationException {
+        Registry.stop();
     }
 
     @BeforeClass
-    public static void startManager() throws ConfigurationException {
-    	Registry.start();
+    public static void startManager() throws ConfigurationException, DatatypeConfigurationException {
+        df = DatatypeFactory.newInstance();
+        Registry.start();
 
         logger.debug("Getting auth tokens..");
         try {
@@ -113,10 +136,10 @@ public class API_141_JIRATest {
             authInfoSam = TckSecurity.getAuthToken(security, TckPublisher.getSamPublisherId(), TckPublisher.getSamPassword());
             Assert.assertNotNull(authInfoJoe);
             Assert.assertNotNull(authInfoSam);
-            String authInfoUDDI  = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(),  TckPublisher.getUDDIPassword());
-			tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
-			tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
-			tckTModel.saveJoePublisherTmodel(authInfoJoe);
+            String authInfoUDDI = TckSecurity.getAuthToken(security, TckPublisher.getUDDIPublisherId(), TckPublisher.getUDDIPassword());
+            tckTModel.saveUDDIPublisherTmodel(authInfoUDDI);
+            tckTModel.saveTModels(authInfoUDDI, TckTModel.TMODELS_XML);
+            tckTModel.saveJoePublisherTmodel(authInfoJoe);
         } catch (Exception e) {
             logger.error(e.getMessage(), e);
             Assert.fail("Could not obtain authInfo token.");
@@ -510,6 +533,359 @@ public class API_141_JIRATest {
     //TODO binding template tmodel instance info
     //TODO tmodel tests
     //TODO create tests for enforcing ref integrity of tmodel keys, after enforcing this, the tests in this class will need to be heavily revised
+    /**
+     * test when the subscription expiration is null
+     */
+    @Test
+    public void JUDDI_606_1() {
+        System.out.println("JUDDI_606_1 Null expiration time");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(1);
+        sub1.setExpiresAfter(null);
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            key = data.value.get(0).getSubscriptionKey();
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            HandleException(ex);
+            Assert.fail("null expires after should be allowed");
+
+        } finally {
+            DeleteSubscriptionInternal(authInfoJoe, key);
+        }
+
+
+    }
+
+    /**
+     * test when the subscription expiration is null
+     */
+    @Test(expected = ValueNotAllowedException.class)
+    public void JUDDI_606_2() throws Exception {
+
+        System.out.println("JUDDI_606_2 invalid expiration time");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(1);
+        GregorianCalendar gcal = new GregorianCalendar();
+        gcal.add(Calendar.DATE, -1);
+        sub1.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("request should have been rejected, saving a subscription that's already expired");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            //HandleException(ex);
+            throw ex;
+        }
+    }
+
+    /**
+     * confirm a subscription key is returned
+     */
+    @Test
+    public void JUDDI_606_3() throws Exception {
+
+        System.out.println("JUDDI_606_3 confirm a subscription key is returned");
+
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(1);
+        GregorianCalendar gcal = new GregorianCalendar();
+        gcal.add(Calendar.DATE, 1);
+        sub1.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.assertNotNull(data);
+            Assert.assertNotNull(data.value);
+            key = data.value.get(0).getSubscriptionKey();
+            Assert.assertFalse(data.value.isEmpty());
+            Assert.assertEquals(data.value.size(), 1);
+            Assert.assertNotNull(data.value.get(0).getSubscriptionKey());
+            Assert.assertTrue("subscription key is empty or invalid", (data.value.get(0).getSubscriptionKey().length() > 5));
+
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            HandleException(ex);
+            Assert.fail("this should have worked");
+        } finally {
+            DeleteSubscriptionInternal(authInfoJoe, key);
+        }
+    }
+
+    /**
+     * JUDDI_606_4 null subscription filter
+     */
+    @Test
+    public void JUDDI_606_4() throws Exception {
+
+        System.out.println("JUDDI_606_4 null subscription filter");
+
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(1);
+        GregorianCalendar gcal = new GregorianCalendar();
+        gcal.add(Calendar.DATE, 1);
+        sub1.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(null);
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        //sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("this should have been rejected");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            //HandleException(ex);
+        }
+    }
+
+    /**
+     * JUDDI_606_5 empty subscription filter
+     */
+    @Test
+    public void JUDDI_606_5() throws Exception {
+
+        System.out.println("JUDDI_606_5 empty subscription filter");
+
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(1);
+        GregorianCalendar gcal = new GregorianCalendar();
+        gcal.add(Calendar.DATE, 1);
+        sub1.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        //sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("this should have been rejected");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            //HandleException(ex);
+        }
+    }
+
+    /**
+     * JUDDI_606_6 negative max entities
+     */
+    @Test(expected = ValueNotAllowedException.class)
+    public void JUDDI_606_6() throws Exception {
+
+        System.out.println("JUDDI_606_6 negative max entities");
+
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setMaxEntities(-1);
+        GregorianCalendar gcal = new GregorianCalendar();
+        gcal.add(Calendar.DATE, 1);
+        sub1.setExpiresAfter(df.newXMLGregorianCalendar(gcal));
+        sub1.setNotificationInterval(df.newDuration(5000));
+        sub1.setBrief(false);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        //sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("this should have been rejected");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            // HandleException(ex);
+            throw ex;
+        }
+    }
+
+    /**
+     * JUDDI_606_7 minimal settings
+     */
+    @Test()
+    public void JUDDI_606_7() throws Exception {
+
+        System.out.println("JUDDI_606_7 minimal settings");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setExpiresAfter(null);
+        sub1.setNotificationInterval(null);
+        sub1.setBrief(null);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            key = data.value.get(0).getSubscriptionKey();
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            HandleException(ex);
+            Assert.fail("this should have worked");
+        } finally {
+            DeleteSubscriptionInternal(authInfoJoe, key);
+        }
+    }
+
+    /**
+     * JUDDI_606_8 reset expiration Invoking save_subscription automatically
+     * resets the expiration period for the subscription in question to a value
+     * based upon the node’s policy.
+     */
+    @Test()
+    public void JUDDI_606_8() throws Exception {
+
+        System.out.println("JUDDI_606_8 reset expiration");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setExpiresAfter(null);
+        sub1.setNotificationInterval(null);
+        sub1.setBrief(null);
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            XMLGregorianCalendar initialExpiration = data.value.get(0).getExpiresAfter();
+            key = data.value.get(0).getSubscriptionKey();
+            Thread.sleep(5000);
+            data.value.get(0).setExpiresAfter(null);
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.assertFalse("timestamp should have been reset", initialExpiration.equals(data.value.get(0).getExpiresAfter()));
+            Assert.assertEquals(key, data.value.get(0).getSubscriptionKey());
+
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            HandleException(ex);
+            Assert.fail("this should have worked");
+        } finally {
+            DeleteSubscriptionInternal(authInfoJoe, key);
+        }
+    }
+
+    /**
+     * JUDDI_606_9 asynch subscriptions, key doesn't exist
+     */
+    @Test(expected = ValueNotAllowedException.class)
+    public void JUDDI_606_9() throws Exception {
+
+        System.out.println("JUDDI_606_9 asynch subscriptions, key doesn't exist");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setExpiresAfter(null);
+        sub1.setNotificationInterval(df.newDuration(60000));
+        sub1.setBrief(null);
+        sub1.setBindingKey("uddi:juddi.apache.org:" + UUID.randomUUID().toString());
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("this should have failed");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            throw ex;
+        } finally {
+        }
+    }
+
+    
+    /**
+     * JUDDI_606_10 asynch subscriptions, key exists, null interval
+     */
+    @Test(expected = ValueNotAllowedException.class)
+    public void JUDDI_606_10() throws Exception {
+
+        System.out.println("JUDDI_606_10 asynch subscriptions, key exists, null interval");
+        org.uddi.sub_v3.Subscription sub1 = new org.uddi.sub_v3.Subscription();
+        sub1.setExpiresAfter(null);
+        sub1.setNotificationInterval(null);
+        sub1.setBrief(null);
+        sub1.setBindingKey(CreateBindingForSubscription(authInfoJoe));
+        sub1.setSubscriptionFilter(new SubscriptionFilter());
+        FindBusiness fb = new FindBusiness();
+        fb.setFindQualifiers(new FindQualifiers());
+        fb.getFindQualifiers().getFindQualifier().add(UDDIConstants.APPROXIMATE_MATCH);
+        fb.getName().add(new Name("%", null));
+        sub1.getSubscriptionFilter().setFindBusiness(fb);
+        Holder<List<Subscription>> data = new Holder<List<Subscription>>();
+        data.value = new ArrayList<Subscription>();
+        data.value.add(sub1);
+        String key = null;
+        try {
+            sub.saveSubscription(authInfoJoe, data);
+            Assert.fail("this should have failed");
+        } //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
+        catch (Exception ex) {
+            throw ex;
+        } finally {
+        }
+    }
+
     //<editor-fold defaultstate="collapsed" desc="Some basic util functions to print out the data structure">
     /**
      * Converts category bags of tmodels to a readable string
@@ -680,4 +1056,41 @@ public class API_141_JIRATest {
             ex.printStackTrace();
         }
     }
+
+    private void DeleteSubscriptionInternal(String token, String key) {
+
+        //cleanup
+        try {
+            DeleteSubscription x = new DeleteSubscription();
+            x.setAuthInfo(token);
+            x.getSubscriptionKey().add(key);
+            sub.deleteSubscription(x);
+        } catch (Exception ex) {
+            ex.printStackTrace();
+        }
+    }
+
+    private String CreateBindingForSubscription(String authInfoJoe) throws Exception {
+        SaveBusiness sb = new SaveBusiness();
+        BusinessEntity be = new BusinessEntity();
+        be.getName().add(new Name("joe's callback", "en"));
+        be.setBusinessServices(new BusinessServices());
+        BusinessService bs = new BusinessService();
+        bs.getName().add(new Name("Joe's callback service", "en"));
+        bs.setBindingTemplates(new BindingTemplates());
+        BindingTemplate bt = new BindingTemplate();
+        bt.setAccessPoint(new AccessPoint("http://localhost/somewhere", AccessPointType.END_POINT.toString()));
+       
+        TModelInstanceInfo instanceInfo = new TModelInstanceInfo();
+        instanceInfo.setTModelKey("uddi:uddi.org:transport:http");
+        bt.setTModelInstanceDetails(new TModelInstanceDetails());
+        bt.getTModelInstanceDetails().getTModelInstanceInfo().add(instanceInfo);
+
+
+        be.getBusinessServices().getBusinessService().add(bs);
+        sb.getBusinessEntity().add(be);
+        sb.setAuthInfo(authInfoJoe);
+        BusinessDetail saveBusiness = publication.saveBusiness(sb);
+        return saveBusiness.getBusinessEntity().get(0).getBusinessServices().getBusinessService().get(0).getBindingTemplates().getBindingTemplate().get(0).getBindingKey();
+    }
 }

Modified: juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-core/src/test/java/org/apache/juddi/subscription/SubscriptionNotifierTest.java Thu May 16 02:59:36 2013
@@ -49,71 +49,95 @@ import org.uddi.v3_service.DispositionRe
 /**
  * @author <a href="mailto:kstam@apache.org">Kurt T Stam</a>
  */
-public class SubscriptionNotifierTest 
-{
-	private static Log logger = LogFactory.getLog(SubscriptionNotifierTest.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 TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
-	private static TckSubscription tckSubscription = new TckSubscription(new UDDISubscriptionImpl(), new UDDISecurityImpl());
+public class SubscriptionNotifierTest {
 
-	private static String authInfoJoe = null;
-	
-	@BeforeClass
-	public static void setup() {
-		logger.debug("Getting auth token..");
-		try {
-			api010.saveJoePublisher();
-			authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(),  TckPublisher.getJoePassword());
-			tckTModel.saveJoePublisherTmodel(authInfoJoe);
-			tckBusiness.saveJoePublisherBusiness(authInfoJoe);
-			tckBusinessService.saveJoePublisherService(authInfoJoe);
-			//tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
-			tckSubscription.saveJoePublisherSubscription(authInfoJoe);
-			//tckSubscription.getJoePublisherSubscriptionResults(authInfoJoe);
-		} catch (RemoteException e) {
-			logger.error(e.getMessage(), e);
-			Assert.fail("Could not obtain authInfo token.");
-		}
-	}
-	@Test
-	public void testGetSubscriptionResults() 
-		throws ConfigurationException, MalformedURLException, DispositionReportFaultMessage, DatatypeConfigurationException
-	{
-		SubscriptionNotifier notifier = new SubscriptionNotifier();
-		notifier.cancel();
-		Collection<Subscription> subscriptions = notifier.getAllAsyncSubscriptions();
-		Assert.assertEquals(1, subscriptions.size());
-		Subscription subscription = subscriptions.iterator().next();
-		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);
-		logger.info("Expecting the resultList to be null: " + resultList.getServiceList());
-		Assert.assertNull(resultList.getServiceList());
-		tckBusinessService.updateJoePublisherService(authInfoJoe, "updated description");
-		resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
-		//We're expecting a changed service
-		logger.info("Expecting the resultList to have 1 service: " + resultList.getServiceList());
-		Assert.assertNotNull(resultList.getServiceList());
-		//We should detect these changes.
-		boolean hasChanges = notifier.resultListContainsChanges(resultList);
-		Assert.assertTrue(hasChanges);
-		System.out.print(resultList);
-		notifier.notify(getSubscriptionResults,resultList,new Date());
-	}
-	
-	
-	@AfterClass
-	public static void teardown() {
-		tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
-		//tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
-		tckBusinessService.deleteJoePublisherService(authInfoJoe);
-		tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
-		tckTModel.deleteJoePublisherTmodel(authInfoJoe);
-	}
-	
+    private static Log logger = LogFactory.getLog(SubscriptionNotifierTest.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 TckBindingTemplate tckBindingTemplate = new TckBindingTemplate(new UDDIPublicationImpl(), new UDDIInquiryImpl());
+    private static TckSubscription tckSubscription = new TckSubscription(new UDDISubscriptionImpl(), new UDDISecurityImpl());
+    private static String authInfoJoe = null;
+
+    @BeforeClass
+    public static void setup() {
+        logger.debug("Getting auth token..");
+        try {
+            //calls uddi-tck-base//rc/main/resources/uddi_data/joepublisher
+            //setups up a JUDDI user account
+            api010.saveJoePublisher();
+            
+            //login as joe
+            authInfoJoe = TckSecurity.getAuthToken(new UDDISecurityImpl(), TckPublisher.getJoePublisherId(), TckPublisher.getJoePassword());
+            //makes tmodel uddi:uddi.joepublisher.com:keygenerator
+            tckTModel.saveJoePublisherTmodel(authInfoJoe);
+            
+            //saves a signed business, no services
+            //key = uddi:uddi.joepublisher.com:businessone
+            tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+            
+            //service key = uddi:uddi.joepublisher.com:serviceone
+            //bt = uddi:uddi.joepublisher.com:bindingone
+            tckBusinessService.saveJoePublisherService(authInfoJoe);
+            
+            
+            //tckBindingTemplate.saveJoePublisherBinding(authInfoJoe);
+            
+            
+            //makes subscription key=uddi:uddi.joepublisher.com:subscriptionone
+            //find exact match on "Service One"
+            //callback binding key=empty string
+            tckSubscription.saveJoePublisherSubscription(authInfoJoe);
+            
+            
+            tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+           
+            
+            
+            
+            
+            
+            //tckSubscription.getJoePublisherSubscriptionResults(authInfoJoe);
+        } catch (RemoteException e) {
+            logger.error(e.getMessage(), e);
+            Assert.fail("Could not obtain authInfo token.");
+        }
+    }
+
+    @Test
+    public void testGetSubscriptionResults()
+            throws ConfigurationException, MalformedURLException, DispositionReportFaultMessage, DatatypeConfigurationException {
+        SubscriptionNotifier notifier = new SubscriptionNotifier();
+        notifier.cancel();
+        Collection<Subscription> subscriptions = notifier.getAllAsyncSubscriptions();
+        Assert.assertEquals(1, subscriptions.size());
+        Subscription subscription = subscriptions.iterator().next();
+        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);
+        logger.info("Expecting the resultList to be null: " + resultList.getServiceList());
+        Assert.assertNull(resultList.getServiceList());
+        tckBusinessService.updateJoePublisherService(authInfoJoe, "updated description");
+        resultList = notifier.getSubscriptionImpl().getSubscriptionResults(getSubscriptionResults, publisher);
+        //We're expecting a changed service
+        logger.info("Expecting the resultList to have 1 service: " + resultList.getServiceList());
+        Assert.assertNotNull(resultList.getServiceList());
+        //We should detect these changes.
+        boolean hasChanges = notifier.resultListContainsChanges(resultList);
+        Assert.assertTrue(hasChanges);
+        System.out.print(resultList);
+        notifier.notify(getSubscriptionResults, resultList, new Date());
+    }
+
+    @AfterClass
+    public static void teardown() {
+        tckSubscription.deleteJoePublisherSubscription(authInfoJoe);
+        //tckBindingTemplate.deleteJoePublisherBinding(authInfoJoe);
+        tckBusinessService.deleteJoePublisherService(authInfoJoe);
+        tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+        tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+    }
 }

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=1483162&r1=1483161&r2=1483162&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 Thu May 16 02:59:36 2013
@@ -120,4 +120,9 @@ juddi.validation.enforceReferentialInteg
 
 #juddi.mail.smtp.password
 ##Password used to authenticate to the SMTP server
-##used only if juddi.mail.smtp.auth is true
\ No newline at end of file
+##used only if juddi.mail.smtp.auth is true4
+
+
+
+#Since 3.1.5 the maxium ammount of returned subscription entities allowed
+juddi.subscription.maxentities = 1000
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-annotations/src/main/webapp/WEB-INF/classes/juddiv3.properties
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-annotations/src/main/webapp/WEB-INF/classes/juddiv3.properties?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-annotations/src/main/webapp/WEB-INF/classes/juddiv3.properties (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-annotations/src/main/webapp/WEB-INF/classes/juddiv3.properties Thu May 16 02:59:36 2013
@@ -130,4 +130,7 @@ juddi.validation.enforceReferentialInteg
 
 #juddi.mail.smtp.password
 ##Password used to authenticate to the SMTP server
-##used only if juddi.mail.smtp.auth is true
\ No newline at end of file
+##used only if juddi.mail.smtp.auth is true
+
+#Since 3.1.5 the maxium ammount of returned subscription entities allowed
+juddi.subscription.maxentities = 1000
\ No newline at end of file

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCreatebulk.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCreatebulk.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCreatebulk.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCreatebulk.java Thu May 16 02:59:36 2013
@@ -9,7 +9,7 @@ import javax.xml.datatype.DatatypeFactor
 import javax.xml.datatype.XMLGregorianCalendar;
 import org.apache.juddi.api_v3.AccessPointType;
 import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.client.config.UDDIClerkManager;
+import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
@@ -22,19 +22,18 @@ import org.uddi.v3_service.UDDISecurityP
  * @author Alex
  */
 public class UddiCreatebulk {
-    
+
     private static UDDISecurityPortType security = null;
     private static JUDDIApiPortType juddiApi = null;
     private static UDDIPublicationPortType publish = null;
-    
+
     public UddiCreatebulk() {
         try {
             // create a manager and read the config in the archive; 
             // you can use your config file name
-            UDDIClerkManager clerkManager = new UDDIClerkManager("META-INF/simple-publish-uddi.xml");
+            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
             // register the clerkManager with the client side container
-            UDDIClientContainer.addClerkManager(clerkManager);
-            // a ClerkManager can be a client to multiple UDDI nodes, so 
+            UDDIClientContainer.addClient(clerkManager);            // a ClerkManager can be a client to multiple UDDI nodes, so 
             // supply the nodeName (defined in your uddi.xml.
             // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
             Transport transport = clerkManager.getTransport("default");
@@ -46,7 +45,7 @@ public class UddiCreatebulk {
             e.printStackTrace();
         }
     }
-    
+
     public void publish() {
         try {
             // Setting up the values to get an authentication token for the 'root' user ('root' user has admin privileges
@@ -58,10 +57,10 @@ public class UddiCreatebulk {
             // Making API call that retrieves the authentication token for the 'root' user.
             AuthToken rootAuthToken = security.getAuthToken(getAuthTokenRoot);
             System.out.println("root AUTHTOKEN = " + rootAuthToken.getAuthInfo());
-            
-            int servicesPerBusiness=5;
-            int businesses=15;
-            
+
+            int servicesPerBusiness = 5;
+            int businesses = 15;
+
             DatatypeFactory df = DatatypeFactory.newInstance();
             GregorianCalendar gcal = new GregorianCalendar();
             gcal.setTimeInMillis(System.currentTimeMillis());
@@ -101,38 +100,38 @@ public class UddiCreatebulk {
                     kr.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                     kr.setKeyName("keyname1");
                     kr.setKeyValue("myvalue1");
-                    
+
                     myBindingTemplate.getCategoryBag().getKeyedReference().add(kr);
-                    
+
                     KeyedReferenceGroup krg = new KeyedReferenceGroup();
                     krg.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                     kr = new KeyedReference();
                     kr.setTModelKey(UDDIConstants.PROTOCOL_SSLv3);
                     kr.setKeyName("keyname1grp");
                     kr.setKeyValue("myvalue1grp");
-                    
+
                     krg.getKeyedReference().add(kr);
                     myBindingTemplate.getCategoryBag().getKeyedReferenceGroup().add(krg);
-                    
-                    
+
+
                     myService.setCategoryBag(new CategoryBag());
-                    
+
                     kr = new KeyedReference();
                     kr.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                     kr.setKeyName("Servicekeyname2grp");
                     kr.setKeyValue("Servicemyvalue2grp");
                     myService.getCategoryBag().getKeyedReference().add(kr);
-                    
+
                     krg = new KeyedReferenceGroup();
                     krg.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                     kr = new KeyedReference();
                     kr.setTModelKey(UDDIConstants.TRANSPORT_HTTP);
                     kr.setKeyName("keyname1grp");
                     kr.setKeyValue("myvalue1grp");
-                    
+
                     krg.getKeyedReference().add(kr);
                     myService.getCategoryBag().getKeyedReferenceGroup().add(krg);
-                    
+
                     AccessPoint accessPoint = new AccessPoint();
                     accessPoint.setUseType(AccessPointType.WSDL_DEPLOYMENT.toString());
                     accessPoint.setValue("http://example.org/services/myservice" + i + k + "?wsdl");
@@ -155,8 +154,8 @@ public class UddiCreatebulk {
                     od.getOverviewURL().setValue("www.apache.org");
                     tii.getInstanceDetails().getOverviewDoc().add(od);
                     myBindingTemplate.getTModelInstanceDetails().getTModelInstanceInfo().add(tii);
-                    
-                    
+
+
                     BindingTemplates myBindingTemplates = new BindingTemplates();
                     myBindingTemplates.getBindingTemplate().add(myBindingTemplate);
                     myService.setBindingTemplates(myBindingTemplates);
@@ -179,7 +178,7 @@ public class UddiCreatebulk {
             e.printStackTrace();
         }
     }
-    
+
     public static void main(String args[]) {
         UddiCreatebulk sp = new UddiCreatebulk();
         sp.publish();

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCustodyTransfer.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCustodyTransfer.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCustodyTransfer.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiCustodyTransfer.java Thu May 16 02:59:36 2013
@@ -12,7 +12,8 @@ import javax.xml.datatype.XMLGregorianCa
 import javax.xml.ws.Endpoint;
 import javax.xml.ws.Holder;
 import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.client.config.UDDIClerkManager;
+import org.apache.juddi.v3.client.config.UDDIClient;
+
 import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3_service.JUDDIApiPortType;
@@ -45,10 +46,9 @@ public class UddiCustodyTransfer {
         try {
             // create a manager and read the config in the archive; 
             // you can use your config file name
-            UDDIClerkManager clerkManager = new UDDIClerkManager("META-INF/simple-publish-uddi.xml");
+            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
             // register the clerkManager with the client side container
-            UDDIClientContainer.addClerkManager(clerkManager);
-            // a ClerkManager can be a client to multiple UDDI nodes, so 
+            UDDIClientContainer.addClient(clerkManager);            // a ClerkManager can be a client to multiple UDDI nodes, so 
             // supply the nodeName (defined in your uddi.xml.
             // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
             Transport transport = clerkManager.getTransport("default");

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureBusiness.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureBusiness.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureBusiness.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureBusiness.java Thu May 16 02:59:36 2013
@@ -11,7 +11,7 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.juddi.api_v3.AccessPointType;
 import org.apache.juddi.api_v3.Publisher;
 import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.client.config.UDDIClerkManager;
+import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.crypto.DigSigUtil;
 import org.apache.juddi.v3.client.transport.Transport;
@@ -34,10 +34,9 @@ public class UddiDigitalSignatureBusines
         try {
             // create a manager and read the config in the archive; 
             // you can use your config file name
-            UDDIClerkManager clerkManager = new UDDIClerkManager("META-INF/simple-publish-uddi.xml");
+            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
             // register the clerkManager with the client side container
-            UDDIClientContainer.addClerkManager(clerkManager);
-            // a ClerkManager can be a client to multiple UDDI nodes, so 
+            UDDIClientContainer.addClient(clerkManager);            // a ClerkManager can be a client to multiple UDDI nodes, so 
             // supply the nodeName (defined in your uddi.xml.
             // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
             Transport transport = clerkManager.getTransport("default");
@@ -92,13 +91,13 @@ public class UddiDigitalSignatureBusines
             ob.getName().add(name);
             sb.getBusinessEntity().add(ob);
             BusinessDetail saveBusiness = publish.saveBusiness(sb);
-            
+
             System.out.println("business created with key " + saveBusiness.getBusinessEntity().get(0).getBusinessKey());
 
-            
+
             BusinessEntity be = saveBusiness.getBusinessEntity().get(0);//findBusiness.getBusinessInfos().getBusinessInfo().get(0));
             DigSigUtil.JAXB_ToStdOut(be);
-            
+
             be.getSignature().clear();
             //DigSigUtil.JAXB_ToStdOut(be);
             System.out.println("signing");
@@ -112,7 +111,7 @@ public class UddiDigitalSignatureBusines
             publish.saveBusiness(sb);
             System.out.println("saved, fetching");
 
-           // findBusiness = GetBusinessList(token);
+            // findBusiness = GetBusinessList(token);
             GetBusinessDetail gb = new GetBusinessDetail();
             gb.setAuthInfo(token);
             gb.getBusinessKey().add(be.getBusinessKey());
@@ -284,7 +283,6 @@ public class UddiDigitalSignatureBusines
         }
     }
 
-    
     private enum AuthStyle {
 
         HTTP_BASIC,

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureSearch.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureSearch.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureSearch.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureSearch.java Thu May 16 02:59:36 2013
@@ -11,7 +11,7 @@ import java.util.concurrent.atomic.Atomi
 import org.apache.juddi.api_v3.AccessPointType;
 import org.apache.juddi.api_v3.Publisher;
 import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.client.config.UDDIClerkManager;
+import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.crypto.DigSigUtil;
 import org.apache.juddi.v3.client.transport.Transport;
@@ -34,10 +34,9 @@ public class UddiDigitalSignatureSearch 
         try {
             // create a manager and read the config in the archive; 
             // you can use your config file name
-            UDDIClerkManager clerkManager = new UDDIClerkManager("META-INF/simple-publish-uddi.xml");
+            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
             // register the clerkManager with the client side container
-            UDDIClientContainer.addClerkManager(clerkManager);
-            // a ClerkManager can be a client to multiple UDDI nodes, so 
+            UDDIClientContainer.addClient(clerkManager);            // a ClerkManager can be a client to multiple UDDI nodes, so 
             // supply the nodeName (defined in your uddi.xml.
             // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
             Transport transport = clerkManager.getTransport("default");
@@ -85,8 +84,7 @@ public class UddiDigitalSignatureSearch 
             n.setValue("%");
             fs.getName().add(n);
             ServiceList findService = inquiry.findService(fs);
-            for (int i =0; i < findService.getServiceInfos().getServiceInfo().size(); i++)
-            {
+            for (int i = 0; i < findService.getServiceInfos().getServiceInfo().size(); i++) {
                 System.out.println(ListToString(findService.getServiceInfos().getServiceInfo().get(i).getName()));
             }
         } catch (Exception e) {

Modified: juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureService.java
URL: http://svn.apache.org/viewvc/juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureService.java?rev=1483162&r1=1483161&r2=1483162&view=diff
==============================================================================
--- juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureService.java (original)
+++ juddi/branches/juddi-3.2.x/juddi-examples/uddi-createbulk/src/uddi/createbulk/UddiDigitalSignatureService.java Thu May 16 02:59:36 2013
@@ -7,16 +7,13 @@ package uddi.createbulk;
 import java.util.List;
 import java.util.Properties;
 import java.util.concurrent.atomic.AtomicReference;
-
 import org.apache.juddi.api_v3.AccessPointType;
-import org.apache.juddi.api_v3.Publisher;
 import org.apache.juddi.v3.client.UDDIConstants;
-import org.apache.juddi.v3.client.config.UDDIClerkManager;
+import org.apache.juddi.v3.client.config.UDDIClient;
 import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.crypto.DigSigUtil;
 import org.apache.juddi.v3.client.transport.Transport;
 import org.uddi.api_v3.*;
-import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
@@ -34,10 +31,9 @@ public class UddiDigitalSignatureService
         try {
             // create a manager and read the config in the archive; 
             // you can use your config file name
-            UDDIClerkManager clerkManager = new UDDIClerkManager("META-INF/simple-publish-uddi.xml");
+            UDDIClient clerkManager = new UDDIClient("META-INF/simple-publish-uddi.xml");
             // register the clerkManager with the client side container
-            UDDIClientContainer.addClerkManager(clerkManager);
-            // a ClerkManager can be a client to multiple UDDI nodes, so 
+            UDDIClientContainer.addClient(clerkManager);            // a ClerkManager can be a client to multiple UDDI nodes, so 
             // supply the nodeName (defined in your uddi.xml.
             // The transport can be WS, inVM, RMI etc which is defined in the uddi.xml
             Transport transport = clerkManager.getTransport("default");
@@ -146,8 +142,8 @@ public class UddiDigitalSignatureService
              */
             System.out.println("this is the real test =====================");
 
-           // BusinessList findBusiness = GetBusinessList(token);
-            
+            // BusinessList findBusiness = GetBusinessList(token);
+
             BusinessService be = null;
             be = GetBusinessDetails();//findBusiness.getBusinessInfos().getBusinessInfo().get(0));
             be.getSignature().clear();
@@ -163,7 +159,7 @@ public class UddiDigitalSignatureService
             publish.saveService(sb);
             System.out.println("saved, fetching");
 
-           // findBusiness = GetBusinessList(token);
+            // findBusiness = GetBusinessList(token);
             be = GetBusinessDetails();//findBusiness.getBusinessInfos().getBusinessInfo().get(0));
             DigSigUtil.JAXB_ToStdOut(be);
             System.out.println("verifing");
@@ -333,7 +329,7 @@ public class UddiDigitalSignatureService
     }
 
     private BusinessService GetBusinessDetails() throws Exception {
-     //   BusinessInfo get
+        //   BusinessInfo get
         GetServiceDetail r = new GetServiceDetail();
         //GetBusinessDetail r = new GetBusinessDetail();
         r.getServiceKey().add("uddi:juddi.apache.org:da314f49-b84f-4ede-a434-0b0178632f10");



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