You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@juddi.apache.org by ks...@apache.org on 2010/12/14 17:29:38 UTC

svn commit: r1049147 - in /juddi/trunk: juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/ juddi-core/src/main/java/org/apache/juddi/query/ uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/ uddi-tck-base/src/main/resources/uddi_data/find/ u...

Author: kstam
Date: Tue Dec 14 16:29:37 2010
New Revision: 1049147

URL: http://svn.apache.org/viewvc?rev=1049147&view=rev
Log:
JUDDI-438 fixing bug where logically deleted tmodels where returned.

Added:
    juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/find/findTModelByCategoryBag.xml
Modified:
    juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_020_TmodelTest.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryGroupQuery.java
    juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryQuery.java
    juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
    juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java

Modified: juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_020_TmodelTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_020_TmodelTest.java?rev=1049147&r1=1049146&r2=1049147&view=diff
==============================================================================
--- juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_020_TmodelTest.java (original)
+++ juddi/trunk/juddi-core-openjpa/src/test/java/org/apache/juddi/api/impl/API_020_TmodelTest.java Tue Dec 14 16:29:37 2010
@@ -27,6 +27,9 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.uddi.api_v3.TModelDetail;
+import org.uddi.api_v3.TModelInfo;
+import org.uddi.api_v3.TModelList;
 import org.uddi.v3_service.DispositionReportFaultMessage;
 import org.uddi.v3_service.UDDISecurityPortType;
 
@@ -66,7 +69,26 @@ public class API_020_TmodelTest {
 	@Test
 	public void testJoePublisherTmodel() {
 		tckTModel.saveJoePublisherTmodel(authInfoJoe);
+		
+		//Now if we use a finder it should be found.
+		TModelList tModelList = tckTModel.findJoeTModelDetail();
+		Assert.assertNotNull(tModelList.getTModelInfos());
+		
 		tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		
+		//Even if it deleted you should still be able to access it through a getTModelDetail
+		TModelDetail detail = tckTModel.getJoePublisherTmodel(authInfoJoe);
+		Assert.assertNotNull(detail.getTModel());
+		
+		//However if we use a finder it should not be found.
+		TModelList tModelList2 = tckTModel.findJoeTModelDetail();
+		Assert.assertNull(tModelList2.getTModelInfos());
+		
+		//Make sure none of the found key generators is Joe's key generator
+		TModelList tModelList3 = tckTModel.findJoeTModelDetailByCategoryBag();
+		for (TModelInfo tModelInfo : tModelList3.getTModelInfos().getTModelInfo()) {
+			Assert.assertFalse("uddi:uddi.joepublisher.com:keygenerator".equals(tModelInfo.getTModelKey()));
+		}
 	}
 	
 	@Test

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryGroupQuery.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryGroupQuery.java?rev=1049147&r1=1049146&r2=1049147&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryGroupQuery.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryGroupQuery.java Tue Dec 14 16:29:37 2010
@@ -21,6 +21,7 @@ import java.util.List;
 
 import javax.persistence.EntityManager;
 
+import org.apache.juddi.query.util.DynamicQuery;
 import org.apache.juddi.query.util.FindQualifiers;
 import org.uddi.api_v3.CategoryBag;
 
@@ -57,6 +58,7 @@ public class FindTModelByCategoryGroupQu
 	}
 	
 	public static List<?> select(EntityManager em, FindQualifiers fq, CategoryBag categoryBag, List<?> keysIn) {
-		return findQuery.select(em, fq, categoryBag, keysIn);
+		return findQuery.select(em, fq, categoryBag, keysIn,  new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS 
+				+ ".deleted", Boolean.FALSE, DynamicQuery.PREDICATE_EQUALS));
 	}
 }

Modified: juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryQuery.java
URL: http://svn.apache.org/viewvc/juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryQuery.java?rev=1049147&r1=1049146&r2=1049147&view=diff
==============================================================================
--- juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryQuery.java (original)
+++ juddi/trunk/juddi-core/src/main/java/org/apache/juddi/query/FindTModelByCategoryQuery.java Tue Dec 14 16:29:37 2010
@@ -21,6 +21,7 @@ import java.util.List;
 
 import javax.persistence.EntityManager;
 
+import org.apache.juddi.query.util.DynamicQuery;
 import org.apache.juddi.query.util.FindQualifiers;
 import org.uddi.api_v3.CategoryBag;
 
@@ -51,6 +52,7 @@ public class FindTModelByCategoryQuery {
 	}
 	
 	public static List<?> select(EntityManager em, FindQualifiers fq, CategoryBag categoryBag, List<?> keysIn) {
-		return findQuery.select(em, fq, categoryBag, keysIn);
+		return findQuery.select(em, fq, categoryBag, keysIn, new DynamicQuery.Parameter(TModelQuery.ENTITY_ALIAS 
+				+ ".deleted", Boolean.FALSE, DynamicQuery.PREDICATE_EQUALS));
 	}
 }

Modified: juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java?rev=1049147&r1=1049146&r2=1049147&view=diff
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java (original)
+++ juddi/trunk/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckTModel.java Tue Dec 14 16:29:37 2010
@@ -23,10 +23,12 @@ import org.apache.commons.logging.LogFac
 import org.apache.juddi.jaxb.EntityCreator;
 import org.junit.Assert;
 import org.uddi.api_v3.DeleteTModel;
+import org.uddi.api_v3.FindTModel;
 import org.uddi.api_v3.GetTModelDetail;
 import org.uddi.api_v3.OverviewDoc;
 import org.uddi.api_v3.SaveTModel;
 import org.uddi.api_v3.TModelDetail;
+import org.uddi.api_v3.TModelList;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
 /**
@@ -41,6 +43,8 @@ public class TckTModel 
     final static String MARY_PUBLISHER_TMODEL_KEY     = "uddi:uddi.marypublisher.com:keygenerator";
     final static String SAM_SYNDICATOR_TMODEL_XML     = "uddi_data/samsyndicator/tModelKeyGen.xml";
     final static String SAM_SYNDICATOR_TMODEL_KEY     = "uddi:www.samco.com:keygenerator";
+    final static String FIND_TMODEL_XML               = "uddi_data/find/findTModel1.xml";
+    final static String FIND_TMODEL_XML_BY_CAT        = "uddi_data/find/findTModelByCategoryBag.xml";
  
     private Log logger = LogFactory.getLog(this.getClass());
 	private UDDIPublicationPortType publication = null;
@@ -103,6 +107,55 @@ public class TckTModel 
 		}
 	}
 	
+	public TModelDetail getTModelDetail(String authInfo, String tModelXml, String tModelKey) {
+		try {
+			//Try to get the TModel
+			GetTModelDetail tmodelDetail = new GetTModelDetail();
+			tmodelDetail.setAuthInfo(authInfo);
+			tmodelDetail.getTModelKey().add(tModelKey);
+			
+			return inquiry.getTModelDetail(tmodelDetail);
+			
+		} catch(Exception e) {
+			logger.error(e.getMessage(),e);
+			Assert.fail("No exception should be thrown");
+		}
+		Assert.fail("We should already have returned");
+		return null;
+	}
+	
+	public TModelList findJoeTModelDetail() {
+		try {
+			
+			FindTModel body = (FindTModel)EntityCreator.buildFromDoc(FIND_TMODEL_XML, "org.uddi.api_v3");
+			TModelList result = inquiry.findTModel(body);
+			
+			return result;
+			
+		} catch(Exception e) {
+			logger.error(e.getMessage(),e);
+			Assert.fail("No exception should be thrown");
+		}
+		Assert.fail("We should already have returned");
+		return null;
+	}
+	
+	public TModelList findJoeTModelDetailByCategoryBag() {
+		try {
+			
+			FindTModel body = (FindTModel)EntityCreator.buildFromDoc(FIND_TMODEL_XML_BY_CAT, "org.uddi.api_v3");
+			TModelList result = inquiry.findTModel(body);
+			
+			return result;
+			
+		} catch(Exception e) {
+			logger.error(e.getMessage(),e);
+			Assert.fail("No exception should be thrown");
+		}
+		Assert.fail("We should already have returned");
+		return null;
+	}
+	
 	public void saveJoePublisherTmodel(String authInfoJoe) {
 		saveTModel(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY);
 	}
@@ -111,6 +164,14 @@ public class TckTModel 
 		deleteTModel(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY);
 	}
 	
+	public TModelDetail getJoePublisherTmodel(String authInfoJoe) {
+		return getTModelDetail(authInfoJoe, JOE_PUBLISHER_TMODEL_XML, JOE_PUBLISHER_TMODEL_KEY);
+	}
+	
+	public TModelList findJoePublisherTmodel(String authInfoJoe) {
+		return findJoeTModelDetail();
+	}
+	
 	public void saveMaryPublisherTmodel(String authInfoMary) {
 		saveTModel(authInfoMary, MARY_PUBLISHER_TMODEL_XML, MARY_PUBLISHER_TMODEL_KEY);
 	}

Added: juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/find/findTModelByCategoryBag.xml
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/find/findTModelByCategoryBag.xml?rev=1049147&view=auto
==============================================================================
--- juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/find/findTModelByCategoryBag.xml (added)
+++ juddi/trunk/uddi-tck-base/src/main/resources/uddi_data/find/findTModelByCategoryBag.xml Tue Dec 14 16:29:37 2010
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * Copyright 2001-2009 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.
+ *
+ */ -->
+<find_tModel xmlns="urn:uddi-org:api_v3" xmlns:xml="http://www.w3.org/XML/1998/namespace">
+  <findQualifiers>
+    <findQualifier>caseInsensitiveMatch</findQualifier>
+    <findQualifier>approximateMatch</findQualifier>
+    <findQualifier>andAllKeys</findQualifier>
+  </findQualifiers>
+  <categoryBag>
+    <keyedReference tModelKey="uddi:uddi.org:categorization:types" keyName="uddi-org:types:keyGenerator%"
+      keyValue="keyGenerator%" />
+  </categoryBag>
+</find_tModel>

Modified: juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java
URL: http://svn.apache.org/viewvc/juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java?rev=1049147&r1=1049146&r2=1049147&view=diff
==============================================================================
--- juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java (original)
+++ juddi/trunk/uddi-tck/src/test/java/org/apache/juddi/v3/tck/UDDI_020_TmodelIntegrationTest.java Tue Dec 14 16:29:37 2010
@@ -25,6 +25,9 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.uddi.api_v3.TModelDetail;
+import org.uddi.api_v3.TModelInfo;
+import org.uddi.api_v3.TModelList;
 import org.uddi.v3_service.UDDIInquiryPortType;
 import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
@@ -82,7 +85,26 @@ public class UDDI_020_TmodelIntegrationT
 	@Test
 	public void testJoePublisherTmodel() {
 		tckTModel.saveJoePublisherTmodel(authInfoJoe);
+		
+		//Now if we use a finder it should be found.
+		TModelList tModelList = tckTModel.findJoeTModelDetail();
+		Assert.assertNotNull(tModelList.getTModelInfos());
+		
 		tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+		
+		//Even if it deleted you should still be able to access it through a getTModelDetail
+		TModelDetail detail = tckTModel.getJoePublisherTmodel(authInfoJoe);
+		Assert.assertNotNull(detail.getTModel());
+		
+		//However if we use a finder it should not be found.
+		TModelList tModelList2 = tckTModel.findJoeTModelDetail();
+		Assert.assertNull(tModelList2.getTModelInfos());
+		
+		//Make sure none of the found key generators is Joe's key generator
+		TModelList tModelList3 = tckTModel.findJoeTModelDetailByCategoryBag();
+		for (TModelInfo tModelInfo : tModelList3.getTModelInfos().getTModelInfo()) {
+			Assert.assertFalse("uddi:uddi.joepublisher.com:keygenerator".equals(tModelInfo.getTModelKey()));
+		}
 	}
 	
 	@Test



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