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