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