[gatein-commits] gatein SVN: r2886 - in portal/trunk: component/identity/src/main/java/org/exoplatform/services/organization/idm and 2 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Apr 28 21:47:25 EDT 2010


Author: bdaw
Date: 2010-04-28 21:47:23 -0400 (Wed, 28 Apr 2010)
New Revision: 2886

Modified:
   portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java
   portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
   portal/trunk/pom.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-acme-config.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-config.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-readonly-config.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml
   portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml
Log:
-GTNPORTAL-1138 - Improve caching for LDAP configuration

Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMCacheService.java	2010-04-29 01:47:23 UTC (rev 2886)
@@ -35,6 +35,7 @@
 import java.util.List;
 
 import org.picketlink.idm.cache.APICacheProvider;
+import org.picketlink.idm.spi.cache.IdentityStoreCacheProvider;
 
 
 /*
@@ -50,8 +51,10 @@
 public class PicketLinkIDMCacheService
 {
 
-   private final List<APICacheProvider> cacheProviders = new LinkedList<APICacheProvider>();
+   private final List<APICacheProvider> apiCacheProviders = new LinkedList<APICacheProvider>();
 
+   private final List<IdentityStoreCacheProvider> storeCacheProviders = new LinkedList<IdentityStoreCacheProvider>();
+
    public PicketLinkIDMCacheService()
    {
    }
@@ -61,20 +64,36 @@
 
       if (cacheProvider != null)
       {
-         cacheProviders.add(cacheProvider);
+         apiCacheProviders.add(cacheProvider);
       }
 
    }
 
+   public void register(IdentityStoreCacheProvider cacheProvider)
+   {
+
+      if (cacheProvider != null)
+      {
+         storeCacheProviders.add(cacheProvider);
+      }
+
+   }
+
+
    @Managed
    @ManagedDescription("Ivalidate cache namespace")
    @Impact(ImpactType.WRITE)
    public void invalidate(@ManagedDescription("Cache namespace") @ManagedName("namespace")String namespace)
    {
-      for (APICacheProvider cacheProvider : cacheProviders)
+      for (APICacheProvider cacheProvider : apiCacheProviders)
       {
          cacheProvider.invalidate(namespace);
       }
+
+      for (IdentityStoreCacheProvider cacheProvider : storeCacheProviders)
+      {
+         cacheProvider.invalidate(namespace);
+      }
    }
 
    @Managed
@@ -82,9 +101,14 @@
    @Impact(ImpactType.WRITE)
    public void invalidateAll()
    {
-      for (APICacheProvider cacheProvider : cacheProviders)
+      for (APICacheProvider cacheProvider : apiCacheProviders)
       {
          cacheProvider.invalidateAll();
       }
+
+      for (IdentityStoreCacheProvider cacheProvider : storeCacheProviders)
+      {
+         cacheProvider.invalidateAll();
+      }
    }
 }

Modified: portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java
===================================================================
--- portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/component/identity/src/main/java/org/exoplatform/services/organization/idm/PicketLinkIDMServiceImpl.java	2010-04-29 01:47:23 UTC (rev 2886)
@@ -31,11 +31,13 @@
 import org.picketlink.idm.api.cfg.IdentityConfiguration;
 import org.picketlink.idm.common.exception.IdentityConfigurationException;
 import org.picketlink.idm.impl.cache.JBossCacheAPICacheProviderImpl;
+import org.picketlink.idm.impl.cache.JBossCacheIdentityStoreCacheProviderImpl;
 import org.picketlink.idm.impl.configuration.IdentityConfigurationImpl;
 import org.picketlink.idm.impl.configuration.jaxb2.JAXB2IdentityConfiguration;
 import org.picketlink.idm.spi.configuration.metadata.IdentityConfigurationMetaData;
 import org.picocontainer.Startable;
 
+import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 
@@ -61,16 +63,16 @@
 
    public static final String REALM_NAME_OPTION = "portalRealm";
 
-   public static final String CACHE_CONFIG_OPTION = "cacheConfig";
+   public static final String CACHE_CONFIG_API_OPTION = "apiCacheConfig";
 
+   public static final String CACHE_CONFIG_STORE_OPTION = "storeCacheConfig";
+
    private IdentitySessionFactory identitySessionFactory;
 
    private String config;
 
    private String realmName = "idm_realm";
 
-   private String cacheConfig;
-
    private IdentityConfiguration identityConfiguration;
 
    private PicketLinkIDMServiceImpl()
@@ -87,7 +89,8 @@
       ValueParam config = initParams.getValueParam(PARAM_CONFIG_OPTION);
       ValueParam jndiName = initParams.getValueParam(PARAM_JNDI_NAME_OPTION);
       ValueParam realmName = initParams.getValueParam(REALM_NAME_OPTION);
-      ValueParam cacheConfig = initParams.getValueParam(CACHE_CONFIG_OPTION);
+      ValueParam apiCacheConfig = initParams.getValueParam(CACHE_CONFIG_API_OPTION);
+      ValueParam storeCacheConfig = initParams.getValueParam(CACHE_CONFIG_STORE_OPTION);
 
       if (config == null && jndiName == null)
       {
@@ -118,14 +121,32 @@
 
          identityConfiguration.getIdentityConfigurationRegistry().register(hibernateService.getSessionFactory(), "hibernateSessionFactory");
 
-         if (cacheConfig != null)
+         if (apiCacheConfig != null)
          {
-            InputStream configStream = confManager.getInputStream(cacheConfig.getValue());
-            JBossCacheAPICacheProviderImpl cacheProvider = new JBossCacheAPICacheProviderImpl();
-            cacheProvider.initialize(configStream);
-            picketLinkIDMCache.register(cacheProvider);
-            identityConfiguration.getIdentityConfigurationRegistry().register(cacheProvider, "apiCacheProvider");
+            InputStream configStream = confManager.getInputStream(apiCacheConfig.getValue());
+
+
+            JBossCacheAPICacheProviderImpl apiCacheProvider = new JBossCacheAPICacheProviderImpl();
+            apiCacheProvider.initialize(configStream);
+            picketLinkIDMCache.register(apiCacheProvider);
+            identityConfiguration.getIdentityConfigurationRegistry().register(apiCacheProvider, "apiCacheProvider");
+
+            configStream.close();
+
          }
+         if (storeCacheConfig != null)
+         {
+            InputStream configStream = confManager.getInputStream(storeCacheConfig.getValue());
+
+            JBossCacheIdentityStoreCacheProviderImpl storeCacheProvider = new JBossCacheIdentityStoreCacheProviderImpl();
+            storeCacheProvider.initialize(configStream);
+            picketLinkIDMCache.register(storeCacheProvider);
+            identityConfiguration.getIdentityConfigurationRegistry().register(storeCacheProvider, "storeCacheProvider");
+
+
+            configStream.close();
+
+         }
       }
       else
       {

Modified: portal/trunk/pom.xml
===================================================================
--- portal/trunk/pom.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/pom.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -47,7 +47,7 @@
       <org.gatein.common.version>2.0.2-GA</org.gatein.common.version>
       <org.gatein.wci.version>2.0.1-GA</org.gatein.wci.version>
       <org.gatein.pc.version>2.1.1-GA</org.gatein.pc.version>
-      <org.picketlink.idm>1.1.2.GA</org.picketlink.idm>
+      <org.picketlink.idm>1.1.3.GA</org.picketlink.idm>
       <org.gatein.wsrp.version>1.1.0-GA</org.gatein.wsrp.version>
       <org.gatein.mop.version>1.0.2-GA</org.gatein.mop.version>
       <org.slf4j.version>1.5.6</org.slf4j.version>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/idm-configuration.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -90,15 +90,25 @@
       </value-param>
 
       <value-param>
-        <name>cacheConfig</name>
+        <name>apiCacheConfig</name>
         <value>war:/conf/organization/picketlink-idm/jboss-cache.xml</value>
       </value-param>
       
       <value-param profiles="cluster">
-        <name>cacheConfig</name>
+        <name>apiCacheConfig</name>
         <value>war:/conf/organization/picketlink-idm/jboss-cache-cluster.xml</value>
       </value-param>
 
+      <value-param>
+        <name>storeCacheConfig</name>
+        <value>war:/conf/organization/picketlink-idm/jboss-cache.xml</value>
+      </value-param>
+
+      <value-param profiles="cluster">
+        <name>storeCacheConfig</name>
+        <value>war:/conf/organization/picketlink-idm/jboss-cache-cluster.xml</value>
+      </value-param>
+
     </init-params>
   </component>
 

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-acme-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-acme-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-acme-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -373,8 +373,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-ldap-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -334,8 +334,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -382,8 +382,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-readonly-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-readonly-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-msad-readonly-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -336,8 +336,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-acme-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -388,8 +388,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>

Modified: portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml
===================================================================
--- portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml	2010-04-28 19:27:52 UTC (rev 2885)
+++ portal/trunk/web/portal/src/main/webapp/WEB-INF/conf/organization/picketlink-idm/examples/picketlink-idm-openldap-config.xml	2010-04-29 01:47:23 UTC (rev 2886)
@@ -348,8 +348,11 @@
             <name>customSystemProperties</name>
             <value>com.sun.jndi.ldap.connect.pool.maxsize=300000</value>
             <value>com.sun.jndi.ldap.connect.pool.protocol=plain ssl</value>
-            <value>com.sun.jndi.ldap.connect.pool.debug=fine</value>
           </option>
+          <option>
+            <name>cache.providerRegistryName</name>
+            <value>storeCacheProvider</value>
+          </option>
         </options>
       </identity-store>
     </identity-stores>



More information about the gatein-commits mailing list