You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by jf...@apache.org on 2008/11/19 00:58:50 UTC
svn commit: r718804 [1/2] - in
/webservices/juddi/branches/v3_trunk/juddi-core: ./
src/main/java/org/apache/juddi/api/impl/
src/main/java/org/apache/juddi/mapping/
src/main/java/org/apache/juddi/model/ src/main/java/org/apache/juddi/query/
src/main/jav...
Author: jfaath
Date: Tue Nov 18 15:58:49 2008
New Revision: 718804
URL: http://svn.apache.org/viewvc?rev=718804&view=rev
Log:
Finished the Publication API by completing the Publisher Assertion-related calls. Enhanced the testing suite to a more streamlined approach.
Added:
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml (contents, props changed)
- copied, changed from r713229, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity2.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml (contents, props changed)
- copied, changed from r713229, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService2.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-clean.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-delete.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-init.xml (with props)
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-save.xml (contents, props changed)
- copied, changed from r713229, webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml
Removed:
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity2.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService2.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/test/resources/suite-one.xml
Modified:
webservices/juddi/branches/v3_trunk/juddi-core/pom.xml
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBindingTemplatesQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessEntitiesQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessServicesQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchTModelsQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBindingByTModelKeyQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByCategoryQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByIdentifierQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByNamesQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByNameQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties
webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java
Modified: webservices/juddi/branches/v3_trunk/juddi-core/pom.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/pom.xml?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/pom.xml (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/pom.xml Tue Nov 18 15:58:49 2008
@@ -47,7 +47,7 @@
<version>2.4.2</version>
<configuration>
<suiteXmlFiles>
- <suiteXmlFile>src/test/resources/suite-one.xml</suiteXmlFile>
+ <suiteXmlFile>src/test/resources/suite-init.xml,src/test/resources/suite-save.xml,src/test/resources/suite-delete.xml,src/test/resources/suite-clean.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIPublicationImpl.java Tue Nov 18 15:58:49 2008
@@ -18,7 +18,7 @@
package org.apache.juddi.api.impl;
import java.util.List;
-import java.util.Iterator;
+import java.util.ArrayList;
import javax.jws.WebService;
import javax.persistence.EntityManager;
@@ -48,15 +48,21 @@
import org.uddi.v3_service.UDDIPublicationPortType;
import org.apache.juddi.mapping.MappingApiToModel;
-import org.apache.juddi.util.JPAUtil;
+import org.apache.juddi.mapping.MappingModelToApi;
import org.apache.juddi.validation.ValidatePublish;
+import org.apache.juddi.query.FetchBusinessEntitiesQuery;
+import org.apache.juddi.query.FetchTModelsQuery;
+import org.apache.juddi.query.FindBusinessByPublisherQuery;
+import org.apache.juddi.query.FindTModelByPublisherQuery;
+import org.apache.juddi.query.FindPublisherAssertionByBusinessQuery;
+import org.apache.juddi.query.DeletePublisherAssertionByBusinessQuery;
import org.apache.juddi.query.PersistenceManager;
import org.apache.juddi.model.UddiEntityPublisher;
-
import org.apache.juddi.model.Publisher;
import org.apache.juddi.api.datatype.PublisherDetail;
import org.apache.juddi.api.datatype.SavePublisher;
import org.apache.juddi.api.datatype.DeletePublisher;
+import org.apache.juddi.query.util.FindQualifiers;
/**
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
@@ -68,23 +74,65 @@
public void addPublisherAssertions(AddPublisherAssertions body)
throws DispositionReportFaultMessage {
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
- // TODO: Perform necessary authentication logic
- String authInfo = body.getAuthInfo();
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ ValidatePublish.validateAddPublisherAssertions(em, publisher, body);
List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = body.getPublisherAssertion();
- Iterator<org.uddi.api_v3.PublisherAssertion> apiPubAssertionListItr = apiPubAssertionList.iterator();
- while (apiPubAssertionListItr.hasNext()) {
- org.uddi.api_v3.PublisherAssertion apiPubAssertion = apiPubAssertionListItr.next();
-
- //TODO: Validate the input here
+ for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
- JPAUtil.persistEntity(modelPubAssertion, modelPubAssertion.getId());
+ org.apache.juddi.model.PublisherAssertion existingPubAssertion = em.find(modelPubAssertion.getClass(), modelPubAssertion.getId());
+ boolean persistNewAssertion = true;
+ if (existingPubAssertion != null) {
+ if (modelPubAssertion.getTmodelKey().equalsIgnoreCase(existingPubAssertion.getTmodelKey()) &&
+ modelPubAssertion.getKeyName().equalsIgnoreCase(existingPubAssertion.getKeyName()) &&
+ modelPubAssertion.getKeyValue().equalsIgnoreCase(existingPubAssertion.getKeyValue())) {
+ // This pub assertion is already been "asserted". Simply need to set the "check" value on the existing (and persistent) assertion
+ if (publisher.isOwner(existingPubAssertion.getBusinessEntityByFromKey()))
+ existingPubAssertion.setFromCheck("true");
+ if (publisher.isOwner(existingPubAssertion.getBusinessEntityByToKey()))
+ existingPubAssertion.setToCheck("true");
+
+ persistNewAssertion = false;
+ }
+ else {
+ // Otherwise, it is a new relationship between these entities. Remove the old one so the new one can be added.
+ // TODO: the model only seems to allow one assertion per two business (primary key is fromKey and toKey). Spec seems to imply as
+ // many relationships as desired (the differentiator would be the keyedRef values).
+ em.remove(existingPubAssertion);
+ }
+ }
+
+ if (persistNewAssertion) {
+ org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
+ org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
+ modelPubAssertion.setBusinessEntityByFromKey(beFrom);
+ modelPubAssertion.setBusinessEntityByToKey(beTo);
+
+ modelPubAssertion.setFromCheck("false");
+ modelPubAssertion.setToCheck("false");
+
+ em.persist(modelPubAssertion);
+
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey()))
+ modelPubAssertion.setFromCheck("true");
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey()))
+ modelPubAssertion.setToCheck("true");
+ }
+
}
+
+ tx.commit();
+ em.close();
}
public void deleteBinding(DeleteBinding body)
@@ -138,12 +186,12 @@
UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
- ValidatePublish.validateDeletePublisherAssertions(em, body);
+ ValidatePublish.validateDeletePublisherAssertions(em, publisher, body);
List<org.uddi.api_v3.PublisherAssertion> entityList = body.getPublisherAssertion();
for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
org.apache.juddi.model.PublisherAssertionId pubAssertionId = new org.apache.juddi.model.PublisherAssertionId(entity.getFromKey(), entity.getToKey());
- Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, pubAssertionId);
+ Object obj = em.find(org.apache.juddi.model.PublisherAssertion.class, pubAssertionId);
em.remove(obj);
}
@@ -199,22 +247,113 @@
public List<AssertionStatusItem> getAssertionStatusReport(String authInfo,
CompletionStatus completionStatus)
throws DispositionReportFaultMessage {
- // TODO Auto-generated method stub
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ List<org.uddi.api_v3.AssertionStatusItem> result = new ArrayList<org.uddi.api_v3.AssertionStatusItem>(0);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ List<org.apache.juddi.model.PublisherAssertion> pubAssertionList = FindPublisherAssertionByBusinessQuery.select(em, businessKeysFound, completionStatus);
+ for(org.apache.juddi.model.PublisherAssertion modelPubAssertion : pubAssertionList) {
+ org.uddi.api_v3.AssertionStatusItem apiAssertionStatusItem = new org.uddi.api_v3.AssertionStatusItem();
+
+ MappingModelToApi.mapAssertionStatusItem(modelPubAssertion, apiAssertionStatusItem, businessKeysFound);
+
+ result.add(apiAssertionStatusItem);
+ }
+
+ tx.commit();
+ em.close();
+
return null;
}
public List<PublisherAssertion> getPublisherAssertions(String authInfo)
throws DispositionReportFaultMessage {
- // TODO Auto-generated method stub
- return null;
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ List<org.uddi.api_v3.PublisherAssertion> result = new ArrayList<org.uddi.api_v3.PublisherAssertion>(0);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ List<org.apache.juddi.model.PublisherAssertion> pubAssertionList = FindPublisherAssertionByBusinessQuery.select(em, businessKeysFound, null);
+ for(org.apache.juddi.model.PublisherAssertion modelPubAssertion : pubAssertionList) {
+ org.uddi.api_v3.PublisherAssertion apiPubAssertion = new org.uddi.api_v3.PublisherAssertion();
+
+ MappingModelToApi.mapPublisherAssertion(modelPubAssertion, apiPubAssertion);
+
+ result.add(apiPubAssertion);
+ }
+
+ tx.commit();
+ em.close();
+
+ return result;
}
public RegisteredInfo getRegisteredInfo(GetRegisteredInfo body)
throws DispositionReportFaultMessage {
- // TODO Auto-generated method stub
- return null;
+
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, body.getAuthInfo());
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ List<?> tmodelKeysFound = null;
+ tmodelKeysFound = FindTModelByPublisherQuery.select(em, null, publisher, tmodelKeysFound);
+
+ RegisteredInfo result = new RegisteredInfo();
+
+ // Sort and retrieve the final results
+ List<?> queryResults = FetchBusinessEntitiesQuery.select(em, new FindQualifiers(), businessKeysFound, null, null);
+ if (queryResults != null && queryResults.size() > 0)
+ result.setBusinessInfos(new org.uddi.api_v3.BusinessInfos());
+
+ for (Object item : queryResults) {
+ org.apache.juddi.model.BusinessEntity modelBusinessEntity = (org.apache.juddi.model.BusinessEntity)item;
+ org.uddi.api_v3.BusinessInfo apiBusinessInfo = new org.uddi.api_v3.BusinessInfo();
+
+ MappingModelToApi.mapBusinessInfo(modelBusinessEntity, apiBusinessInfo);
+
+ result.getBusinessInfos().getBusinessInfo().add(apiBusinessInfo);
+ }
+
+ // Sort and retrieve the final results
+ queryResults = FetchTModelsQuery.select(em, new FindQualifiers(), tmodelKeysFound, null, null);
+ if (queryResults != null && queryResults.size() > 0)
+ result.setTModelInfos(new org.uddi.api_v3.TModelInfos());
+
+ for (Object item : queryResults) {
+ org.apache.juddi.model.Tmodel modelTModel = (org.apache.juddi.model.Tmodel)item;
+ org.uddi.api_v3.TModelInfo apiTModelInfo = new org.uddi.api_v3.TModelInfo();
+
+ MappingModelToApi.mapTModelInfo(modelTModel, apiTModelInfo);
+
+ result.getTModelInfos().getTModelInfo().add(apiTModelInfo);
+ }
+
+ tx.commit();
+ em.close();
+
+ return result;
}
@@ -373,8 +512,48 @@
public void setPublisherAssertions(String authInfo,
Holder<List<PublisherAssertion>> publisherAssertion)
throws DispositionReportFaultMessage {
- // TODO Auto-generated method stub
+ EntityManager em = PersistenceManager.getEntityManager();
+ EntityTransaction tx = em.getTransaction();
+ tx.begin();
+
+ UddiEntityPublisher publisher = this.getEntityPublisher(em, authInfo);
+
+ ValidatePublish.validateSetPublisherAssertions(em, publisher, publisherAssertion);
+
+ List<?> businessKeysFound = null;
+ businessKeysFound = FindBusinessByPublisherQuery.select(em, null, publisher, businessKeysFound);
+
+ // First, wipe out all previous assertions associated with this publisher
+ DeletePublisherAssertionByBusinessQuery.delete(em, businessKeysFound);
+
+ // Slate is clean for all assertions involving this publisher, now we simply need to add the new ones (and they will all be "new").
+ List<org.uddi.api_v3.PublisherAssertion> apiPubAssertionList = publisherAssertion.value;
+ for (org.uddi.api_v3.PublisherAssertion apiPubAssertion : apiPubAssertionList) {
+
+ org.apache.juddi.model.PublisherAssertion modelPubAssertion = new org.apache.juddi.model.PublisherAssertion();
+
+ MappingApiToModel.mapPublisherAssertion(apiPubAssertion, modelPubAssertion);
+
+ org.apache.juddi.model.BusinessEntity beFrom = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getFromKey());
+ org.apache.juddi.model.BusinessEntity beTo = em.find(org.apache.juddi.model.BusinessEntity.class, modelPubAssertion.getId().getToKey());
+ modelPubAssertion.setBusinessEntityByFromKey(beFrom);
+ modelPubAssertion.setBusinessEntityByToKey(beTo);
+
+ modelPubAssertion.setFromCheck("false");
+ modelPubAssertion.setToCheck("false");
+
+ em.persist(modelPubAssertion);
+
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByFromKey()))
+ modelPubAssertion.setFromCheck("true");
+ if (publisher.isOwner(modelPubAssertion.getBusinessEntityByToKey()))
+ modelPubAssertion.setToCheck("true");
+
+ }
+
+ tx.commit();
+ em.close();
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingApiToModel.java Tue Nov 18 15:58:49 2008
@@ -560,7 +560,7 @@
if (apiKeyedRef != null) {
modelPubAssertion.setTmodelKey(apiKeyedRef.getTModelKey());
modelPubAssertion.setKeyName(apiKeyedRef.getKeyName());
- modelPubAssertion.setKeyValue(apiKeyedRef.getKeyName());
+ modelPubAssertion.setKeyValue(apiKeyedRef.getKeyValue());
}
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/mapping/MappingModelToApi.java Tue Nov 18 15:58:49 2008
@@ -17,10 +17,13 @@
package org.apache.juddi.mapping;
+import java.util.Collections;
import java.util.List;
import java.util.Set;
import javax.xml.bind.JAXBElement;
+
+import org.uddi.api_v3.CompletionStatus;
import org.uddi.api_v3.ObjectFactory;
import org.uddi.v3_service.DispositionReportFaultMessage;
@@ -606,5 +609,59 @@
}
+ public static void mapPublisherAssertion(org.apache.juddi.model.PublisherAssertion modelPublisherAssertion,
+ org.uddi.api_v3.PublisherAssertion apiPublisherAssertion)
+ throws DispositionReportFaultMessage {
+
+ apiPublisherAssertion.setFromKey(modelPublisherAssertion.getId().getFromKey());
+ apiPublisherAssertion.setToKey(modelPublisherAssertion.getId().getToKey());
+
+ org.uddi.api_v3.KeyedReference keyedRef = new org.uddi.api_v3.KeyedReference();
+ keyedRef.setTModelKey(modelPublisherAssertion.getTmodelKey());
+ keyedRef.setKeyName(modelPublisherAssertion.getKeyName());
+ keyedRef.setKeyValue(modelPublisherAssertion.getKeyValue());
+
+ apiPublisherAssertion.setKeyedReference(keyedRef);
+
+ }
+
+ public static void mapAssertionStatusItem(org.apache.juddi.model.PublisherAssertion modelPublisherAssertion,
+ org.uddi.api_v3.AssertionStatusItem apiAssertionStatusItem,
+ List<?> businessKeys)
+ throws DispositionReportFaultMessage {
+
+ apiAssertionStatusItem.setFromKey(modelPublisherAssertion.getId().getFromKey());
+ apiAssertionStatusItem.setToKey(modelPublisherAssertion.getId().getToKey());
+
+ org.uddi.api_v3.KeyedReference keyedRef = new org.uddi.api_v3.KeyedReference();
+ keyedRef.setTModelKey(modelPublisherAssertion.getTmodelKey());
+ keyedRef.setKeyName(modelPublisherAssertion.getKeyName());
+ keyedRef.setKeyValue(modelPublisherAssertion.getKeyValue());
+
+ apiAssertionStatusItem.setKeyedReference(keyedRef);
+
+ if ("true".equalsIgnoreCase(modelPublisherAssertion.getFromCheck()) &&
+ "true".equalsIgnoreCase(modelPublisherAssertion.getToCheck()))
+ apiAssertionStatusItem.setCompletionStatus(CompletionStatus.STATUS_COMPLETE);
+ else if(!"true".equalsIgnoreCase(modelPublisherAssertion.getFromCheck()) &&
+ "true".equalsIgnoreCase(modelPublisherAssertion.getToCheck()))
+ apiAssertionStatusItem.setCompletionStatus(CompletionStatus.STATUS_FROM_KEY_INCOMPLETE);
+ else if("true".equalsIgnoreCase(modelPublisherAssertion.getFromCheck()) &&
+ !"true".equalsIgnoreCase(modelPublisherAssertion.getToCheck()))
+ apiAssertionStatusItem.setCompletionStatus(CompletionStatus.STATUS_TO_KEY_INCOMPLETE);
+ else if(!"true".equalsIgnoreCase(modelPublisherAssertion.getFromCheck()) &&
+ !"true".equalsIgnoreCase(modelPublisherAssertion.getToCheck()))
+ apiAssertionStatusItem.setCompletionStatus(CompletionStatus.STATUS_BOTH_INCOMPLETE);
+
+ org.uddi.api_v3.KeysOwned keysOwned = new org.uddi.api_v3.KeysOwned();
+
+ Collections.sort((List<String>)businessKeys);
+ if (Collections.binarySearch((List<String>)businessKeys, modelPublisherAssertion.getBusinessEntityByFromKey().getBusinessKey()) >= 0)
+ keysOwned.getContent().add(new ObjectFactory().createFromKey(modelPublisherAssertion.getBusinessEntityByFromKey().getBusinessKey()));
+
+ if (Collections.binarySearch((List<String>)businessKeys, modelPublisherAssertion.getBusinessEntityByToKey().getBusinessKey()) >= 0)
+ keysOwned.getContent().add(new ObjectFactory().createToKey(modelPublisherAssertion.getBusinessEntityByToKey().getBusinessKey()));
+
+ }
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/BusinessEntity.java Tue Nov 18 15:58:49 2008
@@ -205,7 +205,7 @@
}
public String retrievePublisherId() {
- return this.publisher.getPublisherId();
+ return getPublisher().getPublisherId();
}
public void assignPublisherId(String id) {
if (id != null) {
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/model/Tmodel.java Tue Nov 18 15:58:49 2008
@@ -170,7 +170,7 @@
}
public String retrievePublisherId() {
- return this.publisher.getPublisherId();
+ return getPublisher().getPublisherId();
}
public void assignPublisherId(String id) {
if (id != null) {
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.log4j.Logger;
+
+/**
+ *
+ * Returns the list of PublisherAssertions that contain the input businessKeys as their from or to key
+ * *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class DeletePublisherAssertionByBusinessQuery extends PublisherAssertionQuery {
+
+ private static Logger log = Logger.getLogger(DeletePublisherAssertionByBusinessQuery.class);
+
+ public static int delete(EntityManager em, List<?> businessKeys) {
+ if ((businessKeys == null) || (businessKeys.size() == 0))
+ return 0;
+
+ DynamicQuery dynamicQry = new DynamicQuery(deleteSQL);
+ appendConditions(dynamicQry, businessKeys);
+
+ log.debug(dynamicQry);
+
+ Query qry = dynamicQry.buildJPAQuery(em);
+ int result = qry.executeUpdate();
+
+ return result;
+ }
+
+ /*
+ * Appends the conditions to the query based on the businessKey list. The keys can either be in the fromKey or toKey of the publisher assertion.
+ */
+ public static void appendConditions(DynamicQuery qry, List<?> businessKeys) {
+
+ qry.WHERE().pad().openParen().pad();
+
+ qry.appendInList(ENTITY_ALIAS + "." + FROM_KEY_NAME, businessKeys);
+ qry.pad().OR().pad();
+ qry.appendInList(ENTITY_ALIAS + "." + TO_KEY_NAME, businessKeys);
+ qry.closeParen().pad();
+
+
+ }
+
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/DeletePublisherAssertionByBusinessQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBindingTemplatesQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBindingTemplatesQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBindingTemplatesQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBindingTemplatesQuery.java Tue Nov 18 15:58:49 2008
@@ -57,7 +57,7 @@
DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
appendSortTables(dynamicQry);
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
appendSortCriteria(dynamicQry, fq);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessEntitiesQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessEntitiesQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessEntitiesQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessEntitiesQuery.java Tue Nov 18 15:58:49 2008
@@ -57,7 +57,7 @@
DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
appendSortTables(dynamicQry);
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
appendSortCriteria(dynamicQry, fq);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessServicesQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessServicesQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessServicesQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchBusinessServicesQuery.java Tue Nov 18 15:58:49 2008
@@ -57,7 +57,7 @@
DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
appendSortTables(dynamicQry);
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
appendSortCriteria(dynamicQry, fq);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchTModelsQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchTModelsQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchTModelsQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FetchTModelsQuery.java Tue Nov 18 15:58:49 2008
@@ -37,7 +37,7 @@
*
* @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
*/
-public class FetchTModelsQuery extends BusinessEntityQuery {
+public class FetchTModelsQuery extends TModelQuery {
private static Logger log = Logger.getLogger(FetchTModelsQuery.class);
@@ -57,7 +57,7 @@
DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
appendSortTables(dynamicQry);
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
appendSortCriteria(dynamicQry, fq);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBindingByTModelKeyQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBindingByTModelKeyQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBindingByTModelKeyQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBindingByTModelKeyQuery.java Tue Nov 18 15:58:49 2008
@@ -72,7 +72,7 @@
dynamicQry.AND().pad().appendGroupedAnd(restrictions);
// TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByCategoryQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByCategoryQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByCategoryQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByCategoryQuery.java Tue Nov 18 15:58:49 2008
@@ -126,7 +126,7 @@
}
qry.closeParen().pad();
- qry.appendInList("bc.id.businessKey", keysIn);
+ qry.appendInListWithAnd("bc.id.businessKey", keysIn);
}
public static void appendGrouping(DynamicQuery qry, FindQualifiers fq, int elemCount) {
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByDiscoveryURLQuery.java Tue Nov 18 15:58:49 2008
@@ -71,7 +71,7 @@
dynamicQry.AND().pad().appendGroupedAnd(restrictions);
// TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
log.debug(dynamicQry);
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+
+import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.model.UddiEntityPublisher;
+
+/**
+ * Returns the list of business keys possessing the publisherId in the passed UddiEntityPublisher.
+ * Output is restricted by list of business keys passed in. If null, all businesses are searched.
+ * Output is produced by building the appropriate JPA query based on input and find qualifiers.
+ *
+ *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class FindBusinessByPublisherQuery {
+
+
+ private static FindEntityByPublisherQuery findQuery;
+
+ static {
+ findQuery = new FindEntityByPublisherQuery(BusinessEntityQuery.ENTITY_NAME, BusinessEntityQuery.ENTITY_ALIAS, BusinessEntityQuery.KEY_NAME);
+ }
+
+ public static List<?> select(EntityManager em, FindQualifiers fq, UddiEntityPublisher publisher, List<?> keysIn) {
+ return findQuery.select(em, fq, publisher, keysIn);
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindBusinessByPublisherQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByIdentifierQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByIdentifierQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByIdentifierQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByIdentifierQuery.java Tue Nov 18 15:58:49 2008
@@ -111,7 +111,7 @@
dynamicQry.AND().pad().appendGroupedAnd(restrictions);
// TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
- dynamicQry.appendInList(entityAlias + "." + keyName, keysIn);
+ dynamicQry.appendInListWithAnd(entityAlias + "." + keyName, keysIn);
log.debug(dynamicQry);
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByNamesQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByNamesQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByNamesQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByNamesQuery.java Tue Nov 18 15:58:49 2008
@@ -95,7 +95,7 @@
dynamicQry.AND().pad().appendGroupedAnd(restrictions);
// TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
- dynamicQry.appendInList(entityAlias + "." + keyName, keysIn);
+ dynamicQry.appendInListWithAnd(entityAlias + "." + keyName, keysIn);
log.debug(dynamicQry);
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,106 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.log4j.Logger;
+import org.apache.juddi.model.UddiEntityPublisher;
+
+/**
+ * Returns the list of "entity" keys possessing the publisher Id in the passed in UddiEntityPublisher
+ * Output is restricted by list of "entity" keys passed in. If null, all entities are searched.
+ * Output is produced by building the appropriate JPA query based on input and find qualifiers.
+ *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class FindEntityByPublisherQuery extends EntityQuery {
+
+ private Logger log = Logger.getLogger(FindEntityByPublisherQuery.class);
+
+ public static final String PUBLISHER_ID_FIELD = "publisher.publisherId";
+
+ private String entityName;
+ private String entityAlias;
+ private String keyName;
+ private String selectSQL;
+
+ public FindEntityByPublisherQuery(String entityName, String entityAlias, String keyName) {
+ this.entityName = entityName;
+ this.entityAlias = entityAlias;
+ this.keyName = keyName;
+
+ StringBuffer sql = new StringBuffer(200);
+ sql.append("select distinct " + entityAlias + "." + keyName + " from " + entityName + " " + entityAlias + " ");
+ selectSQL = sql.toString();
+ }
+
+ public String getEntityName() {
+ return entityName;
+ }
+
+ public String getEntityAlias() {
+ return entityAlias;
+ }
+
+ public String getKeyName() {
+ return keyName;
+ }
+
+ public String getSelectSQL() {
+ return selectSQL;
+ }
+
+
+ public List<?> select(EntityManager em, FindQualifiers fq, UddiEntityPublisher publisher, List<?> keysIn, DynamicQuery.Parameter... restrictions) {
+ // If keysIn is not null and empty, then search is over.
+ if ((keysIn != null) && (keysIn.size() == 0))
+ return keysIn;
+
+ if (publisher == null)
+ return keysIn;
+
+ DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
+ appendConditions(dynamicQry, fq, publisher);
+ if (restrictions != null && restrictions.length > 0)
+ dynamicQry.AND().pad().appendGroupedAnd(restrictions);
+
+ // TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
+ dynamicQry.appendInListWithAnd(entityAlias + "." + keyName, keysIn);
+
+ log.debug(dynamicQry);
+
+ Query qry = dynamicQry.buildJPAQuery(em);
+ List<?> result = qry.getResultList();
+
+ return result;
+ }
+
+ /*
+ * Appends the conditions to the query based on the publisher id
+ */
+ public void appendConditions(DynamicQuery qry, FindQualifiers fq, UddiEntityPublisher publisher) {
+ qry.WHERE().pad();
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(entityAlias + "." + PUBLISHER_ID_FIELD, publisher.getPublisherId(), DynamicQuery.PREDICATE_EQUALS));
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindEntityByPublisherQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,99 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.log4j.Logger;
+import org.apache.juddi.model.PublisherAssertion;
+import org.uddi.api_v3.CompletionStatus;
+
+/**
+ *
+ * Returns the list of PublisherAssertions that contain the input businessKeys as their from or to key
+ * *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class FindPublisherAssertionByBusinessQuery extends PublisherAssertionQuery {
+
+ private static Logger log = Logger.getLogger(FindPublisherAssertionByBusinessQuery.class);
+
+ public static List<PublisherAssertion> select(EntityManager em, List<?> businessKeys, CompletionStatus completionStatus) {
+ if ((businessKeys == null) || (businessKeys.size() == 0))
+ return null;
+
+ DynamicQuery dynamicQry = new DynamicQuery(selectSQL);
+ appendConditions(dynamicQry, businessKeys, completionStatus);
+
+ log.debug(dynamicQry);
+
+ Query qry = dynamicQry.buildJPAQuery(em);
+ List<PublisherAssertion> result = qry.getResultList();
+
+ return result;
+ }
+
+ /*
+ * Appends the conditions to the query based on the businessKey list. The keys can either be in the fromKey or toKey of the publisher assertion.
+ */
+ public static void appendConditions(DynamicQuery qry, List<?> businessKeys, CompletionStatus completionStatus) {
+
+ qry.WHERE().pad().openParen().pad();
+
+ qry.appendInList(ENTITY_ALIAS + "." + FROM_KEY_NAME, businessKeys);
+ qry.pad().OR().pad();
+ qry.appendInList(ENTITY_ALIAS + "." + TO_KEY_NAME, businessKeys);
+ qry.closeParen().pad();
+
+ if (completionStatus != null) {
+ qry.AND().pad().openParen().pad();
+
+ String fromCheckTerm = "UPPER(" + ENTITY_ALIAS + ".fromCheck)";
+ String toCheckTerm = "UPPER(" + ENTITY_ALIAS + ".toCheck)";
+ if (completionStatus == CompletionStatus.STATUS_BOTH_INCOMPLETE) {
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(fromCheckTerm, "TRUE", DynamicQuery.PREDICATE_NOTEQUALS));
+ qry.AND().pad();
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(toCheckTerm, "TRUE", DynamicQuery.PREDICATE_NOTEQUALS));
+ }
+ else if (completionStatus == CompletionStatus.STATUS_COMPLETE) {
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(fromCheckTerm, "TRUE", DynamicQuery.PREDICATE_EQUALS));
+ qry.AND().pad();
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(toCheckTerm, "TRUE", DynamicQuery.PREDICATE_EQUALS));
+ }
+ else if (completionStatus == CompletionStatus.STATUS_FROM_KEY_INCOMPLETE) {
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(fromCheckTerm, "TRUE", DynamicQuery.PREDICATE_NOTEQUALS));
+ qry.AND().pad();
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(toCheckTerm, "TRUE", DynamicQuery.PREDICATE_EQUALS));
+ }
+ else if (completionStatus == CompletionStatus.STATUS_TO_KEY_INCOMPLETE) {
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(fromCheckTerm, "TRUE", DynamicQuery.PREDICATE_EQUALS));
+ qry.AND().pad();
+ qry.appendGroupedAnd(new DynamicQuery.Parameter(toCheckTerm, "TRUE", DynamicQuery.PREDICATE_NOTEQUALS));
+ }
+
+ qry.closeParen().pad();
+ }
+
+
+ }
+
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindPublisherAssertionByBusinessQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByNameQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByNameQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByNameQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByNameQuery.java Tue Nov 18 15:58:49 2008
@@ -65,7 +65,7 @@
dynamicQry.AND().pad().appendGroupedAnd(restrictions);
// TODO: Break up the IN clause into an amount that is configurable (see JUDDI-146)
- dynamicQry.appendInList(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
+ dynamicQry.appendInListWithAnd(ENTITY_ALIAS + "." + KEY_NAME, keysIn);
log.debug(dynamicQry);
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+import java.util.List;
+import javax.persistence.EntityManager;
+
+import org.apache.juddi.query.util.DynamicQuery;
+import org.apache.juddi.query.util.FindQualifiers;
+import org.apache.juddi.model.UddiEntityPublisher;
+
+/**
+ * Returns the list of tModel keys possessing the publisherId in the passed UddiEntityPublisher.
+ * Output is restricted by list of tModel keys passed in. If null, all tModels are searched.
+ * Output is produced by building the appropriate JPA query based on input and find qualifiers.
+ * *
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class FindTModelByPublisherQuery {
+
+
+ private static FindEntityByPublisherQuery findQuery;
+
+ static {
+ findQuery = new FindEntityByPublisherQuery(TModelQuery.ENTITY_NAME, TModelQuery.ENTITY_ALIAS, TModelQuery.KEY_NAME);
+ }
+
+ public static List<?> select(EntityManager em, FindQualifiers fq, UddiEntityPublisher publisher, List<?> keysIn) {
+ return findQuery.select(em, fq, publisher, keysIn, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS + ".deleted", new Boolean(false), DynamicQuery.PREDICATE_EQUALS));
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByPublisherQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2001-2008 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+package org.apache.juddi.query;
+
+/**
+ * @author <a href="mailto:jfaath@apache.org">Jeff Faath</a>
+ */
+public class PublisherAssertionQuery extends EntityQuery {
+
+ public static final String ENTITY_NAME = "PublisherAssertion";
+ public static final String ENTITY_ALIAS = "pa";
+ public static final String FROM_KEY_NAME = "businessEntityByFromKey.businessKey";
+ public static final String TO_KEY_NAME = "businessEntityByToKey.businessKey";
+
+ protected static String selectSQL;
+ protected static String deleteSQL;
+
+ static {
+ StringBuffer sql = new StringBuffer(200);
+ sql.append("select distinct " + ENTITY_ALIAS + " from " + ENTITY_NAME + " " + ENTITY_ALIAS + " ");
+ selectSQL = sql.toString();
+ }
+
+ static {
+ StringBuffer sql = new StringBuffer(200);
+ sql.append("delete " + ENTITY_ALIAS + " from " + ENTITY_NAME + " " + ENTITY_ALIAS + " ");
+ deleteSQL = sql.toString();
+ }
+
+ public static String getSelectSQL() {
+ return selectSQL;
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/PublisherAssertionQuery.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/query/util/DynamicQuery.java Tue Nov 18 15:58:49 2008
@@ -147,11 +147,20 @@
}
- public void appendInList(String term, List<?> list) {
+ public DynamicQuery appendInListWithAnd(String term, List<?> list) {
if (list == null || list.size() == 0)
- return;
+ return this;
- AND().pad().append(term).pad().IN().pad().openParen().pad();
+ AND().pad();
+
+ return appendInList(term, list);
+ }
+
+ public DynamicQuery appendInList(String term, List<?> list) {
+ if (list == null || list.size() == 0)
+ return this;
+
+ append(term).pad().IN().pad().openParen().pad();
int count = 0;
for (Object item : list) {
param();
@@ -163,8 +172,9 @@
count++;
}
closeParen().pad();
+ return this;
}
-
+
public void addValue(Object obj) {
this.values.addElement(obj);
}
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/validation/ValidatePublish.java Tue Nov 18 15:58:49 2008
@@ -21,6 +21,7 @@
import java.util.HashSet;
import javax.persistence.EntityManager;
import javax.xml.bind.JAXBElement;
+import javax.xml.ws.Holder;
import org.uddi.api_v3.ObjectFactory;
import org.uddi.api_v3.DeleteBusiness;
@@ -32,6 +33,7 @@
import org.uddi.api_v3.SaveService;
import org.uddi.api_v3.SaveBinding;
import org.uddi.api_v3.SaveTModel;
+import org.uddi.api_v3.AddPublisherAssertions;
import org.uddi.v3_service.DispositionReportFaultMessage;
import org.apache.juddi.api.datatype.SavePublisher;
import org.apache.juddi.api.datatype.DeletePublisher;
@@ -168,7 +170,7 @@
}
}
- public static void validateDeletePublisherAssertions(EntityManager em, DeletePublisherAssertions body) throws DispositionReportFaultMessage {
+ public static void validateDeletePublisherAssertions(EntityManager em, UddiEntityPublisher publisher, DeletePublisherAssertions body) throws DispositionReportFaultMessage {
// No null input
if (body == null)
@@ -177,15 +179,28 @@
// No null or empty list
List<org.uddi.api_v3.PublisherAssertion> entityList = body.getPublisherAssertion();
if (entityList == null || entityList.size() == 0)
- throw new AssertionNotFoundException(new ErrorMessage("errors.assertion.NoPubAssertions"));
+ throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.NoPubAssertions"));
for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
- // TODO: duplicate check?
+
+ validatePublisherAssertion(em, publisher, entity);
org.apache.juddi.model.PublisherAssertionId pubAssertionId = new org.apache.juddi.model.PublisherAssertionId(entity.getFromKey(), entity.getToKey());
- Object obj = em.find(org.apache.juddi.model.BusinessEntity.class, pubAssertionId);
+ Object obj = em.find(org.apache.juddi.model.PublisherAssertion.class, pubAssertionId);
if (obj == null)
- throw new AssertionNotFoundException(new ErrorMessage("errors.assertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));
+ throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));
+ else {
+ org.apache.juddi.model.PublisherAssertion pubAssertion = (org.apache.juddi.model.PublisherAssertion)obj;
+ org.uddi.api_v3.KeyedReference keyedRef = entity.getKeyedReference();
+ if (keyedRef == null)
+ throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));
+
+ if (!pubAssertion.getTmodelKey().equalsIgnoreCase(keyedRef.getTModelKey()) ||
+ !pubAssertion.getKeyName().equalsIgnoreCase(keyedRef.getKeyName()) ||
+ !pubAssertion.getKeyValue().equalsIgnoreCase(keyedRef.getKeyValue()))
+ throw new AssertionNotFoundException(new ErrorMessage("errors.pubassertion.AssertionNotFound", entity.getFromKey() + ", " + entity.getToKey()));
+
+ }
}
}
@@ -256,6 +271,38 @@
}
}
+ public static void validateAddPublisherAssertions(EntityManager em, UddiEntityPublisher publisher, AddPublisherAssertions body) throws DispositionReportFaultMessage {
+
+ // No null input
+ if (body == null)
+ throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+
+ // No null or empty list
+ List<org.uddi.api_v3.PublisherAssertion> entityList = body.getPublisherAssertion();
+ if (entityList == null || entityList.size() == 0)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.addpublisherassertions.NoInput"));
+
+ for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
+ validatePublisherAssertion(em, publisher, entity);
+ }
+ }
+
+ public static void validateSetPublisherAssertions(EntityManager em, UddiEntityPublisher publisher, Holder<List<org.uddi.api_v3.PublisherAssertion>> body) throws DispositionReportFaultMessage {
+
+ // No null input
+ if (body == null)
+ throw new FatalErrorException(new ErrorMessage("errors.NullInput"));
+
+ // Assertion list can be null or empty - it signifies that publisher is deleting all their assertions
+ List<org.uddi.api_v3.PublisherAssertion> entityList = body.value;
+ if (entityList != null && entityList.size() > 0) {
+
+ for (org.uddi.api_v3.PublisherAssertion entity : entityList) {
+ validatePublisherAssertion(em, publisher, entity);
+ }
+ }
+ }
+
public static void validateBusinessEntity(EntityManager em, UddiEntityPublisher publisher, org.uddi.api_v3.BusinessEntity businessEntity) throws DispositionReportFaultMessage {
@@ -616,6 +663,43 @@
}
+ public static void validatePublisherAssertion(EntityManager em, UddiEntityPublisher publisher, org.uddi.api_v3.PublisherAssertion pubAssertion) throws DispositionReportFaultMessage {
+ // A supplied publisher assertion can't be null
+ if (pubAssertion == null)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.NullInput"));
+
+ // The keyedRef must not be blank and every field must contain data.
+ org.uddi.api_v3.KeyedReference keyedRef = pubAssertion.getKeyedReference();
+ if (keyedRef == null ||
+ keyedRef.getTModelKey() == null || keyedRef.getTModelKey().length() == 0 ||
+ keyedRef.getKeyName() == null || keyedRef.getKeyName().length() == 0 ||
+ keyedRef.getKeyValue() == null || keyedRef.getKeyValue().length() == 0)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.BlankKeyedRef"));
+
+ String fromKey = pubAssertion.getFromKey();
+ if (fromKey == null || fromKey.length() == 0)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.BlankFromKey"));
+
+ String toKey = pubAssertion.getToKey();
+ if (toKey == null || toKey.length() == 0)
+ throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.BlankToKey"));
+
+ if (fromKey.equals(toKey))
+ throw new ValueNotAllowedException(new ErrorMessage("errors.pubassertion.SameBusinessKey"));
+
+ Object fromObj = em.find(org.apache.juddi.model.BusinessEntity.class, fromKey);
+ if (fromObj == null)
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.BusinessNotFound", fromKey));
+
+ Object toObj = em.find(org.apache.juddi.model.BusinessEntity.class, pubAssertion.getToKey());
+ if (toObj == null)
+ throw new InvalidKeyPassedException(new ErrorMessage("errors.invalidkey.BusinessNotFound", toKey));
+
+ if (!publisher.isOwner((UddiEntity)fromObj) && !publisher.isOwner((UddiEntity)toObj))
+ throw new UserMismatchException(new ErrorMessage("errors.pubassertion.UserMismatch", fromKey + " & " + toKey));
+
+ }
+
public static void validateNames(List<org.uddi.api_v3.Name> names) throws DispositionReportFaultMessage {
// At least one name is required
if (names == null || names.size() == 0)
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/resources/messages_en.properties Tue Nov 18 15:58:49 2008
@@ -75,8 +75,6 @@
errors.invalidkey.businessservice.ParentMismatch=The service being saved has a different parent business key then the one provided
errors.invalidkey.bindingtemplate.ParentMismatch=The binding template being saved has a different parent service key then the one provided
errors.invalidprojection.ParentMismatch=The supplied business key doesn't match the actual business key of the service being projected
-errors.assertion.NoPubAssertions=No publisher assertions were passed. At least one assertion must be passed
-errors.assertion.AssertionNotFound=The publisher assertion was not found for the given key
errors.usermismatch.InvalidOwner=The user is not authorized to access the given entity
errors.usermismatch.InvalidOwnerParent=The user is not authorized to access the given parent entity
@@ -85,6 +83,7 @@
errors.saveservice.NoInput=At least one BusinessService must be provided
errors.savebinding.NoInput=At least one BindingTemplate must be provided
errors.savetmodel.NoInput=At least one tModel must be provided
+errors.addpublisherassertions.NoInput=At least one publisherAssertion must be provided
errors.businessentity.NullInput=The businessEntity structure cannot be blank
errors.businessservice.NullInput=The businessService structure cannot be blank
errors.bindingtemplate.NullInput=The bindingTemplate structure cannot be blank
@@ -92,6 +91,14 @@
errors.tmodel.NullInput=The tModel structure cannot be blank
errors.tmodel.NoAccessPoint=A tModel must contain a name
errors.tmodel.keygenerator.BadCategory=A Key Generator tModel must have exactly one 'types' category whose value is 'keyGenerator'
+errors.pubassertion.NullInput=The publisherAssertion structure cannot be blank
+errors.pubassertion.BlankKeyedRef=The keyedReference of the publisherAssertion cannot be blank. All fields must contain content.
+errors.pubassertion.BlankFromKey=The fromKey of the publisherAssertion cannot be blank.
+errors.pubassertion.BlankToKey=The toKey of the publisherAssertion cannot be blank.
+errors.pubassertion.SameBusinessKey=The fromKey and toKey refer to the same business
+errors.pubassertion.UserMismatch=The publisher does not own either referenced businessEntity of the publisherAssertion
+errors.pubassertion.NoPubAssertions=No publisher assertions were passed. At least one assertion must be passed
+errors.pubassertion.AssertionNotFound=The publisher assertion was not found for the given key
errors.businessservices.NoInput=A businessServices collection must contain at least one businessService
errors.bindingtemplates.NoInput=A bindingTemplates collection must contain at least one bindingTemplate
errors.names.NoInput=At least one name is required
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,51 @@
+package org.apache.juddi.test;
+
+import javax.xml.bind.JAXBException;
+
+import org.testng.Assert;
+import org.testng.annotations.*;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+
+/*
+ * This test is used to initialize and clean up after other tests.
+ */
+public class JUDDITest {
+
+
+ @Parameters({ "sourceDir" })
+ @Test
+ public void initializeTests(String sourceDir) {
+ try {
+ // The root publisher with admin rights must exist to publish another publisher.
+ UDDIApiTestHelper.installRootPublisher(sourceDir);
+ // Install the root Key Generator
+ UDDIApiTestHelper.installRootPublisherKeyGen(sourceDir);
+
+ }
+ catch(DispositionReportFaultMessage dr) {
+ Assert.fail("No exception should be thrown", dr);
+ }
+ catch(JAXBException je) {
+ Assert.fail("No exception should be thrown", je);
+ }
+
+ }
+
+ @Test
+ public void cleanupTests() {
+ try {
+
+ UDDIApiTestHelper.removeRootPublisherKeyGen();
+ UDDIApiTestHelper.removeRootPublisher();
+ UDDIApiTestHelper.removeAuthTokens();
+ }
+ catch(Exception e) {
+ Assert.fail("No exception should be thrown", e);
+ }
+
+ }
+
+
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/JUDDITest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java Tue Nov 18 15:58:49 2008
@@ -0,0 +1,78 @@
+package org.apache.juddi.test;
+
+import java.util.List;
+import javax.xml.bind.JAXBException;
+
+import org.apache.juddi.api.impl.UDDIPublicationImpl;
+import org.testng.Assert;
+import org.testng.annotations.*;
+import static junit.framework.Assert.assertEquals;
+
+import org.uddi.api_v3.*;
+import org.uddi.v3_service.DispositionReportFaultMessage;
+
+public class PublisherAssertionTest {
+ private UDDIPublicationImpl publish = new UDDIPublicationImpl();
+
+ @Parameters({ "sourceDir", "pubassertFile", "publisherId" })
+ @Test
+ public void addPublisherAssertion(String sourceDir, String pubassertFile, String publisherId) {
+ try {
+ String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
+
+ AddPublisherAssertions ap = new AddPublisherAssertions();
+ ap.setAuthInfo(authInfo);
+
+ PublisherAssertion paIn = (PublisherAssertion)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + pubassertFile, "org.uddi.api_v3");
+ ap.getPublisherAssertion().add(paIn);
+ publish.addPublisherAssertions(ap);
+
+ // Now get the entity and check the values
+ List<PublisherAssertion> paOutList = publish.getPublisherAssertions(authInfo);
+ PublisherAssertion paOut = paOutList.get(0);
+
+ assertEquals(paIn.getFromKey(), paOut.getFromKey());
+ assertEquals(paIn.getToKey(), paOut.getToKey());
+
+ KeyedReference keyRefIn = paIn.getKeyedReference();
+ KeyedReference keyRefOut = paOut.getKeyedReference();
+
+ assertEquals(keyRefIn.getTModelKey(), keyRefOut.getTModelKey());
+ assertEquals(keyRefIn.getKeyName(), keyRefOut.getKeyName());
+ assertEquals(keyRefIn.getKeyValue(), keyRefOut.getKeyValue());
+
+ }
+ catch(DispositionReportFaultMessage dr) {
+ Assert.fail("No exception should be thrown", dr);
+ }
+ catch(JAXBException je) {
+ Assert.fail("No exception should be thrown", je);
+ }
+
+ }
+
+ @Parameters({ "sourceDir", "pubassertFile", "publisherId" })
+ @Test
+ public void deletePublisherAssertion(String sourceDir, String pubassertFile, String publisherId) {
+ try {
+ String authInfo = UDDIApiTestHelper.getAuthToken(publisherId);
+
+ // Delete the entity and make sure it is removed
+ DeletePublisherAssertions dp = new DeletePublisherAssertions();
+ dp.setAuthInfo(authInfo);
+
+ PublisherAssertion paIn = (PublisherAssertion)UDDIApiTestHelper.buildEntityFromDoc(sourceDir + pubassertFile, "org.uddi.api_v3");
+ dp.getPublisherAssertion().add(paIn);
+
+ publish.deletePublisherAssertions(dp);
+ }
+ catch(DispositionReportFaultMessage dr) {
+ Assert.fail("No exception should be thrown", dr);
+ }
+ catch(JAXBException je) {
+ Assert.fail("No exception should be thrown", je);
+ }
+
+ }
+
+}
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherAssertionTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java?rev=718804&r1=718803&r2=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/PublisherTest.java Tue Nov 18 15:58:49 2008
@@ -22,11 +22,6 @@
@Test
public void savePublisher(String sourceDir, String publisherFile, String publisherId) {
try {
- // The root publisher with admin rights must exist to publish another publisher.
- UDDIApiTestHelper.installRootPublisher(sourceDir);
- // Install the root Key Generator
- UDDIApiTestHelper.installRootPublisherKeyGen(sourceDir);
-
String authInfo = UDDIApiTestHelper.getAuthToken(UDDIApiTestHelper.ROOT_PUBLISHER);
SavePublisher sp = new SavePublisher();
@@ -73,11 +68,7 @@
dp.setAuthInfo(authInfo);
dp.getPublisherId().add(publisherId);
- publish.deletePublisher(dp);
-
- UDDIApiTestHelper.removeRootPublisherKeyGen();
- UDDIApiTestHelper.removeRootPublisher();
- UDDIApiTestHelper.removeAuthTokens();
+ publish.deletePublisher(dp);
}
catch(DispositionReportFaultMessage dr) {
Assert.fail("No exception should be thrown", dr);
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml Tue Nov 18 15:58:49 2008
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<publisherAssertion xmlns="urn:uddi-org:api_v3">
+ <fromKey>uddi:juddi.apache.org:joepublisher:businessone</fromKey>
+ <toKey>uddi:juddi.apache.org:samco:repository:samco</toKey>
+ <keyedReference tModelKey="uddi:uddi.org:relationships" keyName="Holding Company" keyValue="parent-child" />
+</publisherAssertion>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/jpublisher-ssyndicator_publisherAssertion.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml Tue Nov 18 15:58:49 2008
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<publisher xmlns="urn:apache-org:juddi_v3" publisherId="ssyndicator">
+ <publisherName>Sam Syndicator</publisherName>
+ <emailAddress>ssyndicator@samco.com</emailAddress>
+ <isAdmin>false</isAdmin>
+ <isEnabled>TrUe</isEnabled>
+ <maxBindingsPerService>199</maxBindingsPerService>
+ <maxBusinesses>100</maxBusinesses>
+ <maxServicePerBusiness>100</maxServicePerBusiness>
+ <maxTModels>100</maxTModels>
+</publisher>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_Publisher.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml (from r713229, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity2.xml)
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml?p2=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity2.xml&r1=713229&r2=718804&rev=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessEntity2.xml (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml Tue Nov 18 15:58:49 2008
@@ -1,33 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
-<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:businesstwo.com">
+<businessEntity xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco">
<discoveryURLs>
- <discoveryURL useType="home">http://www.businesstwo.com</discoveryURL>
- <discoveryURL useType="serviceList">http://www.businesstwo.com/services</discoveryURL>
+ <discoveryURL useType="home">http://www.samco.com</discoveryURL>
+ <discoveryURL useType="serviceList">http://www.samco.com/services</discoveryURL>
</discoveryURLs>
- <name xml:lang="en">The Firm</name>
- <name xml:lang="es">Negocio Dos</name>
- <description xml:lang="en">This is the description for Business Two.</description>
+ <name xml:lang="en">SamCo, Inc.</name>
+ <description xml:lang="en">SamCo provides a suite of digital assets.</description>
<contacts>
<contact useType="administrator">
- <personName xml:lang="en">Ignatius Reilly</personName>
+ <personName xml:lang="en">Sam Syndicator</personName>
<description xml:lang="en">This is the administrator of the service offerings.</description>
<phtwo useType="office">123-456-7890</phtwo>
<phtwo useType="mobile">987-654-3210</phtwo>
- <email useType="work">ireilly@businesstwo.com</email>
+ <email useType="work">ssyndicator@samco.com</email>
<address xml:lang="en" useType="headquarters" sortCode="1" tModelKey="uddi:tmodelKey:address">
- <addressLine keyName="street" keyValue="street">2 Briar</addressLine>
- <addressLine keyName="citystatezip" keyValue="citystatezip">Chicago, IL 60657</addressLine>
+ <addressLine keyName="street" keyValue="street">1515 Main St</addressLine>
+ <addressLine keyName="citystatezip" keyValue="citystatezip">Ann Arbor, MI 41804</addressLine>
<addressLine keyName="country" keyValue="country">USA</addressLine>
</address>
</contact>
</contacts>
- <businessServices>
- </businessServices>
<categoryBag>
- <keyedReference tModelKey="uddi:tmodelkey:categories:fruit" keyName="category" keyValue="apples" />
- <keyedReference tModelKey="uddi:tmodelkey:categories:music" keyName="category" keyValue="jazz" />
- <keyedReference tModelKey="uddi:tmodelkey:categories:music" keyName="category" keyValue="blues" />
- <keyedReference tModelKey="uddi:tmodelkey:categories:music" keyName="category" keyValue="blues-rock" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:fruit" keyName="category" keyValue="bananas" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:fruit" keyName="category" keyValue="kiwi" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:music" keyName="category" keyValue="progressive-rock" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:music" keyName="category" keyValue="country" />
<keyedReferenceGroup tModelKey="uddi:tmodelKey:group">
<keyedReference tModelKey="uddi:tmodelKey:blank" keyName="blank" keyValue="blank" />
</keyedReferenceGroup>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessEntity1.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Copied: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml (from r713229, webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService2.xml)
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml?p2=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml&p1=webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService2.xml&r1=713229&r2=718804&rev=718804&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/businessService2.xml (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml Tue Nov 18 15:58:49 2008
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
-<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:businessone.com" serviceKey="uddi:businessone.com:services:servicetwo">
- <name xml:lang="en">Service Two</name>
- <name xml:lang="en">Second Service</name>
- <description xml:lang="en">This is the description of service two.</description>
- <description xml:lang="es">Ãsta es la descripción del servicio dos.</description>
+<businessService xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace" businessKey="uddi:juddi.apache.org:samco:repository:samco" serviceKey="uddi:juddi.apache.org:samco:repository:listingservice">
+ <name xml:lang="en">Listing Service</name>
+ <name xml:lang="es">Servicio del listado</name>
+ <description xml:lang="en">This is the description of the listing service.</description>
+ <description xml:lang="es">Ãsta es la descripción del servicio del listado.</description>
<bindingTemplates>
- <bindingTemplate bindingKey="uddi:businessone.com:services:servicetwo:accesspoint">
- <description xml:lang="en">This is the access point for service two.</description>
- <accessPoint useType="endPoint">http://businessone.com/services/servicetwo</accessPoint>
+ <bindingTemplate bindingKey="uddi:juddi.apache.org:samco:repository:listservice-accesspoint">
+ <description xml:lang="en">This is the access point for listing service.</description>
+ <accessPoint useType="endPoint">http:/samco.com/services/listingservice</accessPoint>
<tModelInstanceDetails>
- <tModelInstanceInfo tModelKey="uddi:businessone.com:services:servicetwo:wsdlSpec">
- <description xml:lang="en">The wsdl for this service: service two</description>
+ <tModelInstanceInfo tModelKey="uddi:juddi.apache.org:samco:repository:listservice-wsdlSpec">
+ <description xml:lang="en">The wsdl for this service: Listing Service</description>
<instanceDetails>
<overviewDoc>
<description xml:lang="en">Help document to describe the WSDL</description>
@@ -26,8 +26,8 @@
</bindingTemplate>
</bindingTemplates>
<categoryBag>
- <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="bananas" />
- <keyedReference tModelKey="uddi:tmodelkey:categories" keyName="category" keyValue="strawberries" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:beer" keyName="category" keyValue="lager" />
+ <keyedReference tModelKey="uddi:tmodelkey:categories:beer" keyName="category" keyValue="pilsner" />
<keyedReferenceGroup tModelKey="uddi:tmodelKey:group">
<keyedReference tModelKey="uddi:tmodelKey:blank" keyName="blank" keyValue="blank" />
</keyedReferenceGroup>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml
------------------------------------------------------------------------------
svn:mergeinfo =
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_businessService1.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml?rev=718804&view=auto
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml (added)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml Tue Nov 18 15:58:49 2008
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tModel tModelKey="uddi:juddi.apache.org:samco:repository:keygenerator" xmlns="urn:uddi-org:api_v3">
+ <name>Sam Syndicator's Key Generator</name>
+ <description>This is the key generator for Sam Syndicator's UDDI entities!</description>
+ <overviewDoc>
+ <overviewURL useType="text">
+ http://uddi.org/pubs/uddi_v3.htm#keyGen</overviewURL>
+ </overviewDoc>
+ <categoryBag>
+ <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator"
+ keyValue="keyGenerator" />
+ </categoryBag>
+</tModel>
Propchange: webservices/juddi/branches/v3_trunk/juddi-core/src/test/java/org/apache/juddi/test/ssyndicator_tModelKeyGen.xml
------------------------------------------------------------------------------
svn:mime-type = text/plain
---------------------------------------------------------------------
To unsubscribe, e-mail: juddi-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: juddi-cvs-help@ws.apache.org