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