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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to