Author: tcunning
Date: Fri Apr 16 19:02:50 2010
New Revision: 935043

URL: http://svn.apache.org/viewvc?rev=935043&view=rev
Log:
SCOUT-95
Extend caching to business query managers.

Modified:
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
    
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java

Modified: 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java?rev=935043&r1=935042&r2=935043&view=diff
==============================================================================
--- 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
 (original)
+++ 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerImpl.java
 Fri Apr 16 19:02:50 2010
@@ -171,8 +171,18 @@ public class BusinessQueryManagerImpl im
         {
             ConnectionImpl con = 
((RegistryServiceImpl)getRegistryService()).getConnection();
             AuthToken auth = this.getAuthToken(con,registry);
-            PublisherAssertions result =
-                    registry.getPublisherAssertions(auth.getAuthInfo());
+            PublisherAssertions result = null;
+            try {
+                    result = 
registry.getPublisherAssertions(auth.getAuthInfo());
+               } catch (RegistryException rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenSingleton.getToken(username) != null) {
+                               AuthTokenSingleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                result = registry.getPublisherAssertions(auth.getAuthInfo());
+               }
+
             List<PublisherAssertion> publisherAssertionList = 
result.getPublisherAssertion();
             LinkedHashSet<Association> col = new LinkedHashSet<Association>();
             for (PublisherAssertion pas : publisherAssertionList) {
@@ -230,8 +240,17 @@ public class BusinessQueryManagerImpl im
                  if(caller  && !other   )
                         confirm = Constants.COMPLETION_STATUS_TOKEY_INCOMPLETE;
 
-            report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
-            
+            report = null;
+            try {
+               report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
+               } catch (RegistryException rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenSingleton.getToken(username) != null) {
+                               AuthTokenSingleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+               report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
+               }
             
             List<AssertionStatusItem> assertionStatusItemList = 
report.getAssertionStatusItem();
             LinkedHashSet<Association> col = new LinkedHashSet<Association>();
@@ -843,8 +862,19 @@ public class BusinessQueryManagerImpl im
                
             try
             {
-               RegisteredInfo ri = 
registry.getRegisteredInfo(auth.getAuthInfo());
-                if (ri != null) {
+               RegisteredInfo ri = null;
+               try {
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               } catch (RegistryException rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenSingleton.getToken(username) != null) {
+                               AuthTokenSingleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               }
+
+               if (ri != null) {
                                                for (String key:keys) {
                                                        BusinessDetail detail = 
registry.getBusinessDetail(key);
                             
col.add(((BusinessLifeCycleManagerImpl)registryService.getLifeCycleManagerImpl()).createOrganization(detail));
@@ -910,7 +940,18 @@ public class BusinessQueryManagerImpl im
                LinkedHashSet<Organization> orgs = null;
             try
             {
-               RegisteredInfo ri = 
registry.getRegisteredInfo(auth.getAuthInfo());
+               RegisteredInfo ri = null;
+               try {
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               } catch (RegistryException rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenSingleton.getToken(username) != null) {
+                               AuthTokenSingleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               }
+
                if (ri != null && ri.getBusinessInfos()!=null) {
                        List<BusinessInfo> bizInfoList = 
ri.getBusinessInfos().getBusinessInfo();
                        orgs = new LinkedHashSet<Organization>();
@@ -1002,6 +1043,11 @@ public class BusinessQueryManagerImpl im
             username = pass.getUserName();
             pwd = new String(pass.getPassword());
         }
+        
+        if (AuthTokenSingleton.getToken(username) != null) {
+               return (AuthToken) AuthTokenSingleton.getToken(username);
+        }
+        
         AuthToken token = null;
         try {
             token = ireg.getAuthToken(username, pwd);
@@ -1009,6 +1055,22 @@ public class BusinessQueryManagerImpl im
         catch (Exception e) {
             throw new JAXRException(e);
         }
+        AuthTokenSingleton.addAuthToken(username, token);
+        
         return token;
     }
+    
+    private String getUsernameFromCredentials(Set credentials) {
+        String username = "", pwd = "";
+                
+        if (credentials != null) {
+               Iterator it = credentials.iterator();
+               while (it.hasNext()) {
+                       PasswordAuthentication pass = (PasswordAuthentication) 
it.next();
+                       username = pass.getUserName();
+               }
+        }
+        return username;
+    }
+
 }

Modified: 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java
URL: 
http://svn.apache.org/viewvc/webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java?rev=935043&r1=935042&r2=935043&view=diff
==============================================================================
--- 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java
 (original)
+++ 
webservices/scout/trunk/src/main/java/org/apache/ws/scout/registry/BusinessQueryManagerV3Impl.java
 Fri Apr 16 19:02:50 2010
@@ -148,8 +148,18 @@ public class BusinessQueryManagerV3Impl 
         {
             ConnectionImpl con = 
((RegistryServiceImpl)getRegistryService()).getConnection();
             AuthToken auth = this.getAuthToken(con,registry);
-            PublisherAssertions result =
-                    registry.getPublisherAssertions(auth.getAuthInfo());
+            PublisherAssertions result = null;
+            try {
+                    result = 
registry.getPublisherAssertions(auth.getAuthInfo());
+               } catch (RegistryV3Exception rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenV3Singleton.getToken(username) != null) {
+                               AuthTokenV3Singleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                result = registry.getPublisherAssertions(auth.getAuthInfo());
+               }
+
             List<PublisherAssertion> publisherAssertionList = 
result.getPublisherAssertion();
             LinkedHashSet<Association> col = new LinkedHashSet<Association>();
             for (PublisherAssertion pas : publisherAssertionList) {
@@ -202,8 +212,17 @@ public class BusinessQueryManagerV3Impl 
                  if(caller  && !other   )
                         confirm = Constants.COMPLETION_STATUS_TOKEY_INCOMPLETE;
 
-            report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
-            
+            try { 
+               report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
+               } catch (RegistryV3Exception rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenV3Singleton.getToken(username) != null) {
+                               AuthTokenV3Singleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+               report = 
registry.getAssertionStatusReport(auth.getAuthInfo(),confirm);
+               }
+
             
             List<AssertionStatusItem> assertionStatusItemList = 
report.getAssertionStatusItem();
             LinkedHashSet<Association> col = new LinkedHashSet<Association>();
@@ -815,7 +834,18 @@ public class BusinessQueryManagerV3Impl 
                
             try
             {
-               RegisteredInfo ri = 
registry.getRegisteredInfo(auth.getAuthInfo());
+               RegisteredInfo ri = null;
+               try {
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               } catch (RegistryV3Exception rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenV3Singleton.getToken(username) != null) {
+                               AuthTokenV3Singleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               }
+
                 if (ri != null) {
                     BusinessInfos infos = ri.getBusinessInfos();
                     if (infos != null) {
@@ -885,7 +915,18 @@ public class BusinessQueryManagerV3Impl 
                LinkedHashSet<Organization> orgs = null;
             try
             {
-               RegisteredInfo ri = 
registry.getRegisteredInfo(auth.getAuthInfo());
+               RegisteredInfo ri = null;
+               try {
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               } catch (RegistryV3Exception rve) {
+                       String username = 
getUsernameFromCredentials(con.getCredentials());
+                       if (AuthTokenV3Singleton.getToken(username) != null) {
+                               AuthTokenV3Singleton.deleteAuthToken(username);
+                       }
+                       auth = getAuthToken(con, registry);
+                       ri = registry.getRegisteredInfo(auth.getAuthInfo());
+               }
+
                if (ri != null && ri.getBusinessInfos()!=null) {
                        List<BusinessInfo> bizInfoList = 
ri.getBusinessInfos().getBusinessInfo();
                        orgs = new LinkedHashSet<Organization>();
@@ -977,6 +1018,11 @@ public class BusinessQueryManagerV3Impl 
             username = pass.getUserName();
             pwd = new String(pass.getPassword());
         }
+
+        if (AuthTokenV3Singleton.getToken(username) != null) {
+               return (AuthToken) AuthTokenV3Singleton.getToken(username);
+        }
+        
         AuthToken token = null;
         try {
             token = ireg.getAuthToken(username, pwd);
@@ -984,6 +1030,22 @@ public class BusinessQueryManagerV3Impl 
         catch (Exception e) {
             throw new JAXRException(e);
         }
+        AuthTokenV3Singleton.addAuthToken(username, token);
+
         return token;
     }
+    
+    private String getUsernameFromCredentials(Set credentials) {
+        String username = "", pwd = "";
+                
+        if (credentials != null) {
+               Iterator it = credentials.iterator();
+               while (it.hasNext()) {
+                       PasswordAuthentication pass = (PasswordAuthentication) 
it.next();
+                       username = pass.getUserName();
+               }
+        }
+        return username;
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: scout-dev-unsubscr...@ws.apache.org
For additional commands, e-mail: scout-dev-h...@ws.apache.org

Reply via email to