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