Author: [email protected]
Date: Mon Feb 6 19:27:17 2012
New Revision: 2061
Log:
AMDATU-522: Some cleanups; renamed HostnameTenantMappingRegistry to
TenantRegistry, no need to have such a long name for a private class.
Simplified the registry itself a bit.
Added:
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/TenantRegistry.java
- copied, changed from r2058,
/trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantMappingRegistry.java
Modified:
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/osgi/Activator.java
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantMappingRegistry.java
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantResolverExtenderFilter.java
Modified:
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/osgi/Activator.java
==============================================================================
---
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/osgi/Activator.java
(original)
+++
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/osgi/Activator.java
Mon Feb 6 19:27:17 2012
@@ -21,7 +21,7 @@
import org.amdatu.tenant.Tenant;
import org.amdatu.web.dispatcher.DispatchExtenderFilter;
import org.amdatu.web.dispatcher.DispatcherService;
-import
org.amdatu.web.tenantresolver.hostname.service.HostnameTenantMappingRegistry;
+import org.amdatu.web.tenantresolver.hostname.service.TenantRegistry;
import
org.amdatu.web.tenantresolver.hostname.service.HostnameTenantResolverExtenderFilter;
import org.apache.felix.dm.DependencyActivatorBase;
import org.apache.felix.dm.DependencyManager;
@@ -37,7 +37,7 @@
*/
public final class Activator extends DependencyActivatorBase {
- private final HostnameTenantMappingRegistry m_registry = new
HostnameTenantMappingRegistry();
+ private final TenantRegistry m_registry = new TenantRegistry();
private final HostnameTenantResolverExtenderFilter m_filter = new
HostnameTenantResolverExtenderFilter(m_registry);
@Override
Modified:
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantResolverExtenderFilter.java
==============================================================================
---
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantResolverExtenderFilter.java
(original)
+++
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantResolverExtenderFilter.java
Mon Feb 6 19:27:17 2012
@@ -38,11 +38,11 @@
*/
public final class HostnameTenantResolverExtenderFilter implements
DispatchExtenderFilter {
- private final HostnameTenantMappingRegistry m_registry;
+ private final TenantRegistry m_registry;
private volatile LogService m_logService;
- public HostnameTenantResolverExtenderFilter(HostnameTenantMappingRegistry
registry) {
+ public HostnameTenantResolverExtenderFilter(TenantRegistry registry) {
m_registry = registry;
}
Copied:
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/TenantRegistry.java
(from r2058,
/trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantMappingRegistry.java)
==============================================================================
---
/trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/HostnameTenantMappingRegistry.java
(original)
+++
trunk/amdatu-web/tenantresolver-hostname/src/main/java/org/amdatu/web/tenantresolver/hostname/service/TenantRegistry.java
Mon Feb 6 19:27:17 2012
@@ -15,11 +15,11 @@
*/
package org.amdatu.web.tenantresolver.hostname.service;
-import java.util.HashMap;
import java.util.HashSet;
-import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;
import org.amdatu.tenant.Tenant;
@@ -34,15 +34,12 @@
* @author <a href="mailto:[email protected]">Amdatu Project
Team</a>
*
*/
-public final class HostnameTenantMappingRegistry {
+public final class TenantRegistry {
// maps current mappings
- private final Map<ServiceReference, HostNameTenantMapping>
m_referenceToMapping =
- new HashMap<ServiceReference, HostNameTenantMapping>();
-
+ private final ConcurrentMap<ServiceReference, Tenant> m_referenceToMapping
= new ConcurrentHashMap<ServiceReference, Tenant>();
// maps fast hostname lookup
- private final Map<String, HostNameTenantMapping> m_hostNameToTenantMapping
=
- new HashMap<String, HostNameTenantMapping>();
+ private final ConcurrentMap<String, Tenant> m_hostNameToTenantMapping =
new ConcurrentHashMap<String, Tenant>();
private final ReentrantReadWriteLock m_lock = new ReentrantReadWriteLock();
@@ -51,15 +48,11 @@
public Tenant getTenant(String hostname) {
m_lock.readLock().lock();
try {
- HostNameTenantMapping mapping =
m_hostNameToTenantMapping.get(hostname);
- if (mapping != null) {
- return mapping.getTenant();
- }
+ return m_hostNameToTenantMapping.get(hostname);
}
finally {
m_lock.readLock().unlock();
}
- return null;
}
public void addTenant(ServiceReference reference, Tenant tenant) {
@@ -98,8 +91,8 @@
if (hostnames == null || hostnames.length == 0) {
return;
}
- HostNameTenantMapping mapping = new HostNameTenantMapping(tenant,
hostnames);
- m_referenceToMapping.put(reference, mapping);
+
+ m_referenceToMapping.put(reference, tenant);
for (String hostname : hostnames) {
hostname = hostname.trim();
if ("".equals(hostname)) {
@@ -107,23 +100,24 @@
+ " specifies illegal hostname mapping to " + hostname);
continue;
}
- HostNameTenantMapping oldmapping =
m_hostNameToTenantMapping.get(hostname);
- if (oldmapping != null) {
+
+ Tenant oldTenant = m_hostNameToTenantMapping.put(hostname, tenant);
+ if (oldTenant != null) {
m_logService.log(LogService.LOG_WARNING, "Tenant " +
tenant.getId()
+ " overwrites hostname mapping for " + hostname + "
previously mapped to "
- + oldmapping.getTenant().getId());
+ + oldTenant.getId());
}
- m_hostNameToTenantMapping.put(hostname, mapping);
}
}
private void removeMapping(ServiceReference reference) {
- HostNameTenantMapping mapping = m_referenceToMapping.remove(reference);
+ Tenant mapping = m_referenceToMapping.remove(reference);
if (mapping == null) {
return;
}
+
Set<String> removeHostnames = new HashSet<String>();
- for (Entry<String, HostNameTenantMapping> entry :
m_hostNameToTenantMapping.entrySet()) {
+ for (Entry<String, Tenant> entry :
m_hostNameToTenantMapping.entrySet()) {
if (entry.getValue() == mapping) {
removeHostnames.add(entry.getKey());
}
@@ -136,23 +130,4 @@
private String[] getHostnames(ServiceReference reference) {
return (String[]) reference.getProperty(Constants.HOSTNAMES_KEY);
}
-
- private final class HostNameTenantMapping {
-
- private final Tenant m_tenant;
- private final String[] m_hostnames;
-
- public HostNameTenantMapping(Tenant tenant, String[] hostnames) {
- m_tenant = tenant;
- m_hostnames = hostnames;
- }
-
- public Tenant getTenant() {
- return m_tenant;
- }
-
- public String[] getHostNames() {
- return m_hostnames;
- }
- }
}
\ No newline at end of file
_______________________________________________
Amdatu-commits mailing list
[email protected]
http://lists.amdatu.org/mailman/listinfo/amdatu-commits