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 2009/04/24 04:47:04 UTC

svn commit: r768132 - in /webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl: InquiryHelper.java UDDIInquiryImpl.java UDDISubscriptionImpl.java

Author: jfaath
Date: Fri Apr 24 02:47:03 2009
New Revision: 768132

URL: http://svn.apache.org/viewvc?rev=768132&view=rev
Log:
JUDDI-210, JUDDI-213: completed the get_subscriptionResults method and handled "virtually" deleted entities

Modified:
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
    webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java?rev=768132&r1=768131&r2=768132&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/InquiryHelper.java Fri Apr 24 02:47:03 2009
@@ -56,6 +56,7 @@
 import org.uddi.api_v3.FindService;
 import org.uddi.api_v3.FindTModel;
 import org.uddi.api_v3.ListDescription;
+import org.uddi.api_v3.RelatedBusinessesList;
 import org.uddi.api_v3.ServiceList;
 import org.uddi.api_v3.TModelBag;
 import org.uddi.api_v3.TModelList;
@@ -289,11 +290,22 @@
 	 * structure.
 	 */
 	public static void getRelatedBusinesses(EntityManager em, 
-									  Direction direction, 
-									  String focalKey, 
-									  org.uddi.api_v3.KeyedReference keyedRef,
-									  org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos)
-			 throws DispositionReportFaultMessage {
+											Direction direction, 
+											String focalKey, 
+											org.uddi.api_v3.KeyedReference keyedRef,
+											org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos)
+			throws DispositionReportFaultMessage {
+		getRelatedBusinesses(em, direction, focalKey, keyedRef, relatedBusinessInfos, null, null);
+	}
+	
+	public static void getRelatedBusinesses(EntityManager em, 
+											Direction direction, 
+											String focalKey, 
+											org.uddi.api_v3.KeyedReference keyedRef,
+											org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos,
+											Date modifiedAfter,
+											Date modifiedBefore)
+			throws DispositionReportFaultMessage {
 		if (relatedBusinessInfos == null)
 			relatedBusinessInfos = new org.uddi.api_v3.RelatedBusinessInfos();
 		
@@ -324,6 +336,12 @@
 					else
 						modelRelatedBusiness = em.find(org.apache.juddi.model.BusinessEntity.class, modelPublisherAssertion.getId().getFromKey());
 					
+					if (modifiedAfter != null && modifiedAfter.after(modelRelatedBusiness.getModifiedIncludingChildren()))
+						continue;
+					
+					if (modifiedBefore != null && modifiedBefore.before(modelRelatedBusiness.getModifiedIncludingChildren()))
+						continue;
+					
 					org.uddi.api_v3.RelatedBusinessInfo apiRelatedBusinessInfo = new org.uddi.api_v3.RelatedBusinessInfo();
 
 					MappingModelToApi.mapRelatedBusinessInfo(modelPublisherAssertion, modelRelatedBusiness, direction, apiRelatedBusinessInfo);
@@ -334,6 +352,39 @@
 		}
 		
 	}
+
+	public static RelatedBusinessesList getRelatedBusinessesList(FindRelatedBusinesses body, EntityManager em) throws DispositionReportFaultMessage {
+		return getRelatedBusinessesList(body, em, null, null);
+	}
+	
+	public static RelatedBusinessesList getRelatedBusinessesList(FindRelatedBusinesses body, EntityManager em, Date modifiedAfter, Date modifiedBefore) throws DispositionReportFaultMessage {
+		RelatedBusinessesList result = new RelatedBusinessesList();
+		ListDescription listDesc = new ListDescription();
+		result.setListDescription(listDesc);
+		
+		// Either one of the businessKey, fromKey or toKey will be passed.  This is considered the "focal" business to which related businesses must be
+		// found.  Rather than use a query, it seems simpler to take advantage of the model's publisher assertion collections.
+		org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos = new org.uddi.api_v3.RelatedBusinessInfos();
+		if (body.getBusinessKey() != null ) {
+			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
+			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
+		}
+		else if (body.getFromKey() != null)
+			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getFromKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
+		else if (body.getToKey() != null)
+			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getToKey(), body.getKeyedReference(), relatedBusinessInfos, modifiedAfter, modifiedBefore);
+
+		if (relatedBusinessInfos.getRelatedBusinessInfo().size() > 0) {
+			// TODO: Do proper pagination!
+			listDesc.setActualCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
+			listDesc.setIncludeCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
+			listDesc.setListHead(1);
+			
+			result.setRelatedBusinessInfos(relatedBusinessInfos);
+		}
+		
+		return result;
+	}
 		
 	/*
 	 * Performs the necessary queries for the find_tModel search and adds resulting tModel keys to the tModelBag provided.

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java?rev=768132&r1=768131&r2=768132&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDIInquiryImpl.java Fri Apr 24 02:47:03 2009
@@ -49,8 +49,6 @@
 import org.uddi.api_v3.ServiceList;
 import org.uddi.api_v3.TModelDetail;
 import org.uddi.api_v3.TModelList;
-import org.uddi.api_v3.ListDescription;
-import org.uddi.api_v3.Direction;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.apache.juddi.api.datatype.GetPublisherDetail;
@@ -135,30 +133,7 @@
 		org.apache.juddi.query.util.FindQualifiers findQualifiers = new org.apache.juddi.query.util.FindQualifiers();
 		findQualifiers.mapApiFindQualifiers(body.getFindQualifiers());
 		
-		RelatedBusinessesList result = new RelatedBusinessesList();
-		ListDescription listDesc = new ListDescription();
-		result.setListDescription(listDesc);
-		
-		// Either one of the businessKey, fromKey or toKey will be passed.  This is considered the "focal" business to which related businesses must be
-		// found.  Rather than use a query, it seems simpler to take advantage of the model's publisher assertion collections.
-		org.uddi.api_v3.RelatedBusinessInfos relatedBusinessInfos = new org.uddi.api_v3.RelatedBusinessInfos();
-		if (body.getBusinessKey() != null ) {
-			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos);
-			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getBusinessKey(), body.getKeyedReference(), relatedBusinessInfos);
-		}
-		else if (body.getFromKey() != null)
-			InquiryHelper.getRelatedBusinesses(em, Direction.FROM_KEY, body.getFromKey(), body.getKeyedReference(), relatedBusinessInfos);
-		else if (body.getToKey() != null)
-			InquiryHelper.getRelatedBusinesses(em, Direction.TO_KEY, body.getToKey(), body.getKeyedReference(), relatedBusinessInfos);
-
-		if (relatedBusinessInfos.getRelatedBusinessInfo().size() > 0) {
-			// TODO: Do proper pagination!
-			listDesc.setActualCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
-			listDesc.setIncludeCount(relatedBusinessInfos.getRelatedBusinessInfo().size());
-			listDesc.setListHead(1);
-			
-			result.setRelatedBusinessInfos(relatedBusinessInfos);
-		}
+		RelatedBusinessesList result = InquiryHelper.getRelatedBusinessesList(body, em);
 		
 		tx.commit();
 		em.close();

Modified: webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java
URL: http://svn.apache.org/viewvc/webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java?rev=768132&r1=768131&r2=768132&view=diff
==============================================================================
--- webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java (original)
+++ webservices/juddi/branches/v3_trunk/juddi-core/src/main/java/org/apache/juddi/api/impl/UDDISubscriptionImpl.java Fri Apr 24 02:47:03 2009
@@ -30,17 +30,22 @@
 import javax.xml.datatype.DatatypeFactory;
 import javax.xml.ws.Holder;
 
+import org.uddi.api_v3.AssertionStatusItem;
+import org.uddi.api_v3.AssertionStatusReport;
 import org.uddi.api_v3.BindingDetail;
 import org.uddi.api_v3.BusinessDetail;
 import org.uddi.api_v3.BusinessList;
 import org.uddi.api_v3.FindBinding;
 import org.uddi.api_v3.FindBusiness;
+import org.uddi.api_v3.FindRelatedBusinesses;
 import org.uddi.api_v3.FindService;
 import org.uddi.api_v3.FindTModel;
+import org.uddi.api_v3.GetAssertionStatusReport;
 import org.uddi.api_v3.GetBindingDetail;
 import org.uddi.api_v3.GetBusinessDetail;
 import org.uddi.api_v3.GetServiceDetail;
 import org.uddi.api_v3.GetTModelDetail;
+import org.uddi.api_v3.RelatedBusinessesList;
 import org.uddi.api_v3.ServiceDetail;
 import org.uddi.api_v3.ServiceList;
 import org.uddi.api_v3.TModelDetail;
@@ -258,6 +263,9 @@
 			
 		}
 		if (subscriptionFilter.getFindRelatedBusinesses() != null) {
+			FindRelatedBusinesses findRelatedBusiness = subscriptionFilter.getFindRelatedBusinesses();
+			RelatedBusinessesList  relatedBusinessList = InquiryHelper.getRelatedBusinessesList(findRelatedBusiness, em, startPointDate, endPointDate);
+			result.setRelatedBusinessesList(relatedBusinessList);
 		}
 		if (subscriptionFilter.getGetBindingDetail() != null) {
 			GetBindingDetail getDetail = subscriptionFilter.getGetBindingDetail();
@@ -378,6 +386,17 @@
 				result.getKeyBag().add(missingKeyBag);
 		}
 		if (subscriptionFilter.getGetAssertionStatusReport() != null) {
+			// The coverage period doesn't apply here (basically because publisher assertions don't keep operational info).
+			
+			GetAssertionStatusReport getAssertionStatusReport = subscriptionFilter.getGetAssertionStatusReport();
+			
+			List<AssertionStatusItem> assertionList = PublicationHelper.getAssertionStatusItemList(publisher, getAssertionStatusReport.getCompletionStatus(), em);
+
+			AssertionStatusReport assertionStatusReport  = new AssertionStatusReport();
+			for(AssertionStatusItem asi : assertionList)
+				assertionStatusReport.getAssertionStatusItem().add(asi);
+			
+			result.setAssertionStatusReport(assertionStatusReport);
 		}
 		
         tx.commit();



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