Author: [email protected]
Date: Wed Oct 12 13:57:26 2011
New Revision: 1494
Log:
AMDATU-434 dispatcher now carefully only uses the tenant ID compile time
constant to detect if it should be tenant aware or not, the import on the
tenant API package is therefore made optional
Modified:
trunk/amdatu-web/dispatcher/pom.xml
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
Modified: trunk/amdatu-web/dispatcher/pom.xml
==============================================================================
--- trunk/amdatu-web/dispatcher/pom.xml (original)
+++ trunk/amdatu-web/dispatcher/pom.xml Wed Oct 12 13:57:26 2011
@@ -59,6 +59,7 @@
<Private-Package> org.amdatu.web.dispatcher.*</Private-Package>
<Bundle-Activator>org.amdatu.web.dispatcher.osgi.DispatcherServiceActivator</Bundle-Activator>
<Bundle-SymbolicName>org.amdatu.web.dispatcher</Bundle-SymbolicName>
+ <Import-Package>org.amdatu.core.tenant;resolution:=optional,
*</Import-Package>
<Export-Package>
org.amdatu.web.dispatcher;version=1.0.0
</Export-Package>
Modified:
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
==============================================================================
---
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
(original)
+++
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/DispatcherService.java
Wed Oct 12 13:57:26 2011
@@ -60,10 +60,16 @@
/**
* <code>HttpServletRequest</code> attribute key where tenant resolving
extenders
- * must store the <code>Tenant</code> instance.
+ * must store the <code>Tenant</code> ID.
*/
- String TENANT_REQUESTCONTEXT_KEY = "org.amdatu.web.dispatcher.TENANT";
+ String TENANTID_REQUESTCONTEXT_KEY = "org.amdatu.web.dispatcher.TENANTID";
+ /**
+ * <code>HttpServletRequest</code> attribute key where tenant resolving
extenders
+ * must store the <code>Tenant</code> instance.
+ */
+ String TENANT_REQUESTCONTEXT_KEY = "org.amdatu.web.dispatcher.TENANT";
+
/**
* <code>Servlet</code> and <code>Filter</code> service registration
property
* considered for reusing or creating a specific named
<code>HttpContext</code>.
Modified:
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
==============================================================================
---
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
(original)
+++
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/FilterHandlerRegistry.java
Wed Oct 12 13:57:26 2011
@@ -44,25 +44,14 @@
* TODO add eager filter matching and optimize
*/
public final class FilterHandlerRegistry extends AbstractHandlerRegistry {
-
+ private static final String MAGIC_NOTENANT_ID = "";
private final ReentrantReadWriteLock m_extenderFilterHandlersLock = new
ReentrantReadWriteLock();
private final ReentrantReadWriteLock m_filterHandlersLock = new
ReentrantReadWriteLock();
-
- private final Map<ServiceReference, FilterHandler> m_filterHandlers =
- new HashMap<ServiceReference, FilterHandler>();
-
- private final Map<String, FilterHandler[]> m_tenantFilterHandlerArrays =
- new HashMap<String, FilterHandler[]>();
-
- private final Map<ServiceReference, FilterHandler>
m_extenderFilterHandlers =
- new HashMap<ServiceReference, FilterHandler>();
-
+ private final Map<ServiceReference, FilterHandler> m_filterHandlers = new
HashMap<ServiceReference, FilterHandler>();
+ private final Map<String, FilterHandler[]> m_tenantFilterHandlerArrays =
new HashMap<String, FilterHandler[]>();
+ private final Map<ServiceReference, FilterHandler>
m_extenderFilterHandlers = new HashMap<ServiceReference, FilterHandler>();
private FilterHandler[] m_extenderFilterHandlerArray = new FilterHandler[]
{};
- public FilterHandlerRegistry() {
- super();
- }
-
public void addDispatchExtenderFilter(ServiceReference serviceReference,
DispatchExtenderFilter extenderFilter) {
int serviceId = getIntProperty(serviceReference, Constants.SERVICE_ID,
0);
@@ -214,14 +203,9 @@
}
public FilterHandler[] getFilterHandlers(HttpServletRequest
httpServletRequest) {
-
- Tenant tenant =
- (Tenant)
httpServletRequest.getAttribute(DispatcherService.TENANT_REQUESTCONTEXT_KEY);
-
- String tenantId = "";
- if (tenant != null) {
- tenantId = tenant.getId();
-
+ String tenantId = (String)
httpServletRequest.getAttribute(DispatcherService.TENANTID_REQUESTCONTEXT_KEY);
+ if (tenantId == null) {
+ tenantId = MAGIC_NOTENANT_ID;
}
m_filterHandlersLock.readLock().lock();
@@ -244,10 +228,10 @@
}
// build
- if (tenant == null) {
+ if (tenantId.equals(MAGIC_NOTENANT_ID)) {
List<FilterHandler> filterHandlers = new
LinkedList<FilterHandler>();
for (FilterHandler filterHandler : m_filterHandlers.values()) {
- if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == "") {
+ if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == MAGIC_NOTENANT_ID) {
filterHandlers.add(filterHandler);
}
}
@@ -256,8 +240,7 @@
else {
List<FilterHandler> filterHandlers = new
LinkedList<FilterHandler>();
for (FilterHandler filterHandler : m_filterHandlers.values()) {
- if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == ""
- ||
filterHandler.getTenantId().equals(tenant.getId())) {
+ if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == MAGIC_NOTENANT_ID ||
filterHandler.getTenantId().equals(tenantId)) {
filterHandlers.add(filterHandler);
}
}
Modified:
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
==============================================================================
---
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
(original)
+++
trunk/amdatu-web/dispatcher/src/main/java/org/amdatu/web/dispatcher/handler/ServletHandlerRegistry.java
Wed Oct 12 13:57:26 2011
@@ -43,18 +43,10 @@
* TODO consider caching for getServletHandler
*/
public final class ServletHandlerRegistry extends AbstractHandlerRegistry {
-
- private final ReentrantReadWriteLock m_servletHandlersLock = new
ReentrantReadWriteLock();
-
- private final Map<ServiceReference, ServletHandler> m_servletHandlers =
- new HashMap<ServiceReference, ServletHandler>();
-
- private final Map<String, ServletHandler[]> m_tenantServletHandlerArrays =
- new HashMap<String, ServletHandler[]>();
-
- public ServletHandlerRegistry() {
- super();
- }
+ private static final String MAGIC_NOTENANT_ID = "";
+ private final ReentrantReadWriteLock m_servletHandlersLock = new
ReentrantReadWriteLock();
+ private final Map<ServiceReference, ServletHandler> m_servletHandlers =
new HashMap<ServiceReference, ServletHandler>();
+ private final Map<String, ServletHandler[]> m_tenantServletHandlerArrays =
new HashMap<String, ServletHandler[]>();
@Override
public void httpContextAdded(String contextId, HttpContext context) {
@@ -228,13 +220,9 @@
}
public ServletHandler[] getServletHandlers(HttpServletRequest
httpServletRequest) {
-
- Tenant tenant =
- (Tenant)
httpServletRequest.getAttribute(DispatcherService.TENANT_REQUESTCONTEXT_KEY);
- String tenantId = "";
- if (tenant != null) {
- tenantId = tenant.getId();
-
+ String tenantId = (String)
httpServletRequest.getAttribute(DispatcherService.TENANTID_REQUESTCONTEXT_KEY);
+ if (tenantId == null) {
+ tenantId = MAGIC_NOTENANT_ID;
}
m_servletHandlersLock.readLock().lock();
@@ -257,10 +245,10 @@
}
// build
- if (tenant == null) {
+ if (tenantId.equals(MAGIC_NOTENANT_ID)) {
List<ServletHandler> filterHandlers = new
LinkedList<ServletHandler>();
for (ServletHandler filterHandler :
m_servletHandlers.values()) {
- if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == "") {
+ if (filterHandler.getTenantId() == null ||
filterHandler.getTenantId() == MAGIC_NOTENANT_ID) {
filterHandlers.add(filterHandler);
}
}
@@ -269,8 +257,7 @@
else {
List<ServletHandler> filterHandlers = new
LinkedList<ServletHandler>();
for (ServletHandler servletHandler :
m_servletHandlers.values()) {
- if (servletHandler.getTenantId() == null ||
servletHandler.getTenantId() == ""
- ||
servletHandler.getTenantId().equals(tenant.getId())) {
+ if (servletHandler.getTenantId() == null ||
servletHandler.getTenantId() == MAGIC_NOTENANT_ID ||
servletHandler.getTenantId().equals(tenantId)) {
filterHandlers.add(servletHandler);
}
}
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits