This is an automated email from the ASF dual-hosted git repository.

alexoree pushed a commit to branch bug/JUDDI-937
in repository https://gitbox.apache.org/repos/asf/juddi.git


The following commit(s) were added to refs/heads/bug/JUDDI-937 by this push:
     new 5ac79c8  JUDDI-937 adding test cases, discovered a caching mechanism 
that had no way of being cleared which was resolved.
5ac79c8 is described below

commit 5ac79c870c2e804ca154ee1dc207e6a8087d609d
Author: Alex O'Ree <[email protected]>
AuthorDate: Mon Jan 20 11:57:33 2020 -0500

    JUDDI-937 adding test cases, discovered a caching mechanism that had no way 
of being cleared which was resolved.
---
 .../apache/juddi/v3/client/config/UDDIClient.java  |  4 ++
 .../v3/client/config/UDDIClientContainer.java      |  4 ++
 .../api/impl/API_050_BindingTemplateTest.java      | 62 ++++++++++++++++++++++
 .../apache/juddi/api/runtime/CLIServerTest.java    |  4 +-
 .../{juddiTestimpl.java => JuddiTestimpl.java}     |  2 +-
 .../{replicantImpl.java => ReplicantImpl.java}     |  4 +-
 .../java/org/apache/juddi/v3/tck/TckCommon.java    | 23 +++++++-
 7 files changed, 96 insertions(+), 7 deletions(-)

diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
index b326645..61945b5 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClient.java
@@ -77,6 +77,10 @@ public class UDDIClient {
         private Properties properties = null;
         private static Map<String, ServiceLocator> serviceLocators = new 
HashMap<String, ServiceLocator>();
 
+        
+        public static void  clearServiceLocatorCaches(){
+                serviceLocators.clear();
+        }
         /**
          * Default constructor, loads from the default config, 
META-INF/uddi.xml
          *
diff --git 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
index bd2f441..d64dd7b 100644
--- 
a/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
+++ 
b/juddi-client/src/main/java/org/apache/juddi/v3/client/config/UDDIClientContainer.java
@@ -89,5 +89,9 @@ public class UDDIClientContainer {
     public static boolean contains(String name) {
         return         (clients.containsKey(name)) ;
     }
+
+        public static void removeAll() {
+                clients.clear();
+        }
        
 }
diff --git 
a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
 
b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
index 9e71358..af6f3af 100644
--- 
a/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
+++ 
b/juddi-core/src/test/java/org/apache/juddi/api/impl/API_050_BindingTemplateTest.java
@@ -21,13 +21,18 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.juddi.Registry;
 import org.apache.juddi.v3.client.UDDIConstants;
+import org.apache.juddi.v3.client.config.UDDIClient;
+import org.apache.juddi.v3.client.config.UDDIClientContainer;
 import org.apache.juddi.v3.client.ext.wsdm.WSDMQosConstants;
+import org.apache.juddi.v3.client.mapping.ServiceLocator;
+import org.apache.juddi.v3.client.transport.Transport;
 import org.apache.juddi.v3.error.ValueNotAllowedException;
 import org.apache.juddi.v3.tck.TckBindingTemplate;
 import static org.apache.juddi.v3.tck.TckBindingTemplate.JOE_BINDING_KEY;
 import static org.apache.juddi.v3.tck.TckBindingTemplate.JOE_BINDING_XML;
 import org.apache.juddi.v3.tck.TckBusiness;
 import org.apache.juddi.v3.tck.TckBusinessService;
+import org.apache.juddi.v3.tck.TckCommon;
 import org.apache.juddi.v3.tck.TckFindEntity;
 import org.apache.juddi.v3.tck.TckPublisher;
 import org.apache.juddi.v3.tck.TckSecurity;
@@ -43,6 +48,7 @@ import org.uddi.api_v3.FindTModel;
 import org.uddi.api_v3.IdentifierBag;
 import org.uddi.api_v3.KeyedReference;
 import org.uddi.api_v3.TModelBag;
+import org.uddi.v3_service.UDDIPublicationPortType;
 import org.uddi.v3_service.UDDISecurityPortType;
 
 /**
@@ -244,4 +250,60 @@ public class API_050_BindingTemplateTest {
                         tckTModel.deleteJoePublisherTmodel(authInfoJoe);
                 }
         }
+        
+        @Test
+        public void testJuddi937ServiceLocatorWithCache() throws Exception {
+                try {
+                        tckTModel.saveJoePublisherTmodel(authInfoJoe);
+                        tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessService.saveJoePublisherService(authInfoJoe);
+                        tckBindingTemplate.saveBinding(authInfoJoe, 
"uddi_data/joepublisher/bindingTemplate.xml", JOE_BINDING_KEY, false);
+
+                        //create a client using invm transport
+                        UDDIClientContainer.removeAll();
+                        UDDIClient.clearServiceLocatorCaches();
+                        UDDIClient c = new UDDIClient("META-INF/uddi.xml");
+                        ServiceLocator serviceLocator = 
c.getServiceLocator("joe");
+                        serviceLocator.withSimpleCache();
+                        serviceLocator.clearCaches();
+                        String lookupEndpoint = 
serviceLocator.lookupEndpoint(TckBusinessService.JOE_SERVICE_KEY);
+                        String lookupEndpoint2 = 
serviceLocator.lookupEndpoint(TckBusinessService.JOE_SERVICE_KEY);
+                        
System.out.println(TckCommon.DumpAllServices(authInfoJoe, 
c.getTransport("default").getUDDIInquiryService()));
+                        Assert.assertNotEquals(lookupEndpoint, 
lookupEndpoint2);
+                } finally {
+                        
tckBusinessService.deleteJoePublisherService(authInfoJoe);
+                        tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+                }
+         }
+        
+        
+        
+        @Test
+        public void testJuddi937ServiceLocatorWithoutCache() throws Exception {
+                try {
+                    
+                        tckTModel.saveJoePublisherTmodel(authInfoJoe);
+                        tckBusiness.saveJoePublisherBusiness(authInfoJoe);
+                        
tckBusinessService.saveJoePublisherService(authInfoJoe);
+                        tckBindingTemplate.saveBinding(authInfoJoe, 
"uddi_data/joepublisher/bindingTemplate.xml", JOE_BINDING_KEY, false);
+
+                        //create a client using invm transport
+                        UDDIClientContainer.removeAll();
+                        UDDIClient.clearServiceLocatorCaches();
+                        UDDIClient c = new UDDIClient("META-INF/uddi.xml");
+                        ServiceLocator serviceLocator = 
c.getServiceLocator("joe");
+                        serviceLocator.clearCaches();
+                        //serviceLocator.withSimpleCache();
+                        String lookupEndpoint = 
serviceLocator.lookupEndpoint(TckBusinessService.JOE_SERVICE_KEY);
+                        String lookupEndpoint2 = 
serviceLocator.lookupEndpoint(TckBusinessService.JOE_SERVICE_KEY);
+                        
+                        
System.out.println(TckCommon.DumpAllServices(authInfoJoe, 
c.getTransport("default").getUDDIInquiryService()));
+                        Assert.assertEquals(lookupEndpoint, lookupEndpoint2);
+                } finally {
+                        
tckBusinessService.deleteJoePublisherService(authInfoJoe);
+                        tckBusiness.deleteJoePublisherBusiness(authInfoJoe);
+                        tckTModel.deleteJoePublisherTmodel(authInfoJoe);
+                }
+         }
 }
diff --git 
a/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java 
b/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
index f60c3e0..0869b9a 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/CLIServerTest.java
@@ -53,8 +53,8 @@ public class CLIServerTest {
         static String replUrl = null;
         static String juddiUrl = null;
         static boolean sink = false;
-     static  replicantImpl repl= new replicantImpl();
-      static  juddiTestimpl jude= new juddiTestimpl();
+     static  ReplicantImpl repl= new ReplicantImpl();
+      static  JuddiTestimpl jude= new JuddiTestimpl();
 
         @BeforeClass
         public static void startManager() throws Exception {
diff --git 
a/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java 
b/juddi-core/src/test/java/org/apache/juddi/api/runtime/JuddiTestimpl.java
similarity index 99%
rename from 
juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java
rename to 
juddi-core/src/test/java/org/apache/juddi/api/runtime/JuddiTestimpl.java
index 9032d34..c9f6dab 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/runtime/juddiTestimpl.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/JuddiTestimpl.java
@@ -62,7 +62,7 @@ import org.uddi.v3_service.DispositionReportFaultMessage;
 @WebService(serviceName = "JUDDIApiService",
         endpointInterface = "org.apache.juddi.v3_service.JUDDIApiPortType",
         targetNamespace = "urn:juddi-apache-org:v3_service")
-public class juddiTestimpl implements JUDDIApiPortType {
+public class JuddiTestimpl implements JUDDIApiPortType {
       
 
         @Override
diff --git 
a/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java 
b/juddi-core/src/test/java/org/apache/juddi/api/runtime/ReplicantImpl.java
similarity index 96%
rename from 
juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java
rename to 
juddi-core/src/test/java/org/apache/juddi/api/runtime/ReplicantImpl.java
index 7d05569..c34d862 100644
--- a/juddi-core/src/test/java/org/apache/juddi/api/runtime/replicantImpl.java
+++ b/juddi-core/src/test/java/org/apache/juddi/api/runtime/ReplicantImpl.java
@@ -36,9 +36,9 @@ import org.uddi.v3_service.UDDIReplicationPortType;
  */
 @WebService(serviceName = "UDDI_Replication_PortType", targetNamespace = 
"urn:uddi-org:repl_v3_portType",
         endpointInterface = "org.uddi.v3_service.UDDIReplicationPortType")
-              public class replicantImpl implements UDDIReplicationPortType {
+              public class ReplicantImpl implements UDDIReplicationPortType {
       
-        public replicantImpl(){
+        public ReplicantImpl(){
         }
 
     
diff --git a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java 
b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
index 38ed251..7011ca9 100644
--- a/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
+++ b/uddi-tck-base/src/main/java/org/apache/juddi/v3/tck/TckCommon.java
@@ -19,10 +19,12 @@ import java.rmi.RemoteException;
 import java.util.List;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
+import org.uddi.api_v3.BindingTemplate;
 import org.uddi.api_v3.BindingTemplates;
 import org.uddi.api_v3.BusinessEntity;
 import org.uddi.api_v3.BusinessInfos;
 import org.uddi.api_v3.BusinessList;
+import org.uddi.api_v3.BusinessService;
 import org.uddi.api_v3.CategoryBag;
 import org.uddi.api_v3.Contacts;
 import org.uddi.api_v3.DeleteBusiness;
@@ -32,9 +34,11 @@ import org.uddi.api_v3.FindQualifiers;
 import org.uddi.api_v3.FindService;
 import org.uddi.api_v3.FindTModel;
 import org.uddi.api_v3.GetOperationalInfo;
+import org.uddi.api_v3.GetServiceDetail;
 import org.uddi.api_v3.KeyedReference;
 import org.uddi.api_v3.Name;
 import org.uddi.api_v3.OperationalInfos;
+import org.uddi.api_v3.ServiceDetail;
 import org.uddi.api_v3.ServiceInfos;
 import org.uddi.api_v3.ServiceList;
 import org.uddi.api_v3.TModelList;
@@ -268,8 +272,23 @@ public class TckCommon {
                                 return ("NO SERVICES RETURNED!");
                         } else {
                                 for (int i = 0; i < 
findService.getServiceInfos().getServiceInfo().size(); i++) {
-                                        
sb.append(findService.getServiceInfos().getServiceInfo().get(i).getName().get(0).getValue()).append("
 
lang=").append(findService.getServiceInfos().getServiceInfo().get(i).getName().get(0).getLang()).append("
 
").append(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey()).append("
 
").append(findService.getServiceInfos().getServiceInfo().get(i).getBusinessKey()).append(
-                                                
System.getProperty("line.separator"));
+                                        
sb.append(findService.getServiceInfos().getServiceInfo().get(i).getName().get(0).getValue()).
+                                                append(" 
lang=").append(findService.getServiceInfos().getServiceInfo().get(i).getName().get(0).getLang()).
+                                                append(" 
").append(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey()).
+                                                append(" 
").append(findService.getServiceInfos().getServiceInfo().get(i).getBusinessKey()).
+                                                
append(System.getProperty("line.separator"));
+                                        GetServiceDetail req=new 
GetServiceDetail();
+                                        req.setAuthInfo(authinfo);
+                                        
req.getServiceKey().add(findService.getServiceInfos().getServiceInfo().get(i).getServiceKey());
+                                         ServiceDetail 
d=inquiry.getServiceDetail(req);
+                                        for(BusinessService bs : 
d.getBusinessService()){
+                                           for(BindingTemplate 
bt:bs.getBindingTemplates().getBindingTemplate()){
+                                               sb.append(bt.getBindingKey());
+                                               sb.append(" ");
+                                               
sb.append(bt.getAccessPoint().getValue());
+                                               sb. 
append(System.getProperty("line.separator"));
+                                           }
+                                        }
                                 }
                         }
                 } catch (Exception ex) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to