[infinispan-commits] Infinispan SVN: r2418 - in trunk: core/src/main/java/org/infinispan/util and 1 other directory.

infinispan-commits at lists.jboss.org infinispan-commits at lists.jboss.org
Fri Sep 17 11:09:04 EDT 2010


Author: manik.surtani at jboss.com
Date: 2010-09-17 11:09:04 -0400 (Fri, 17 Sep 2010)
New Revision: 2418

Modified:
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java
   trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java
   trunk/core/src/main/java/org/infinispan/util/FileLookup.java
Log:
[ISPN-636] (Need a way to apply je.* properties to BdbjeCacheStore's EnvironmentConfig without using je.properties)

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java	2010-09-17 15:07:27 UTC (rev 2417)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStore.java	2010-09-17 15:09:04 UTC (rev 2418)
@@ -146,7 +146,7 @@
 
       File location = verifyOrCreateEnvironmentDirectory(new File(cfg.getLocation()));
       try {
-         env = factory.createEnvironment(location);
+         env = factory.createEnvironment(location, cfg.readEnvironmentProperties());
          cacheDb = factory.createDatabase(env, cfg.getCacheDbName());
          Database catalogDb = factory.createDatabase(env, cfg.getCatalogDbName());
          expiryDb = factory.createDatabase(env, cfg.getExpiryDbName());

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java	2010-09-17 15:07:27 UTC (rev 2417)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeCacheStoreConfig.java	2010-09-17 15:09:04 UTC (rev 2418)
@@ -1,7 +1,13 @@
 package org.infinispan.loaders.bdbje;
 
 import org.infinispan.loaders.AbstractCacheStoreConfig;
+import org.infinispan.loaders.CacheLoaderException;
+import org.infinispan.util.FileLookup;
 
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Properties;
+
 /**
  * Configures {@link org.infinispan.loaders.bdbje.BdbjeCacheStore}.  This allows you to tune a number of characteristics
  * of the {@link BdbjeCacheStore}.
@@ -17,6 +23,11 @@
  * database persisting the class information for objects in this store.  This defaults to <tt>{@link
  * org.infinispan.Cache#getName()} cache#name}_class_catalog</tt>.</li>
  * <p/>
+ * <li><tt>environmentPropertiesFile</tt> - the name of the SleepyCat properties file containing <tt>je.*</tt>
+ * properties to initialize the JE environment.  Defaults to null, no properties are passed in to the JE engine if this
+ * is null or empty.  The file specified needs to be available on the classpath, or must be an absolute path to a valid
+ * properties file.  Refer to SleepyCat JE Environment configuration documentation for details.</tt>.</li>
+ * <p/>
  * </ul>
  * <p/>
  * Please see {@link AbstractCacheStoreConfig} for more configuration parameters.
@@ -32,6 +43,7 @@
    private String catalogDbName;
    private String expiryDbPrefix;
    private String cacheName;
+   private String environmentPropertiesFile;
    private static final long serialVersionUID = -2913308899139287416L;
 
    public String getExpiryDbPrefix() {
@@ -109,4 +121,28 @@
          return cacheName;
       }
    }
+
+   public String getEnvironmentPropertiesFile() {
+      return environmentPropertiesFile;
+   }
+
+   public void setEnvironmentPropertiesFile(String environmentPropertiesFile) {
+      this.environmentPropertiesFile = environmentPropertiesFile;
+   }
+
+   public Properties readEnvironmentProperties() throws CacheLoaderException {
+      if (environmentPropertiesFile == null || environmentPropertiesFile.trim().length() == 0) return null;
+      InputStream i = new FileLookup().lookupFile(environmentPropertiesFile);
+      if (i != null) {
+         Properties p = new Properties();
+         try {
+            p.load(i);
+         } catch (IOException ioe) {
+            throw new CacheLoaderException("Unable to read environment properties file " + environmentPropertiesFile, ioe);
+         }
+         return p;
+      } else {
+         return null;
+      }
+   }
 }

Modified: trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java
===================================================================
--- trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java	2010-09-17 15:07:27 UTC (rev 2417)
+++ trunk/cachestore/bdbje/src/main/java/org/infinispan/loaders/bdbje/BdbjeResourceFactory.java	2010-09-17 15:09:04 UTC (rev 2418)
@@ -15,6 +15,7 @@
 import org.infinispan.util.logging.LogFactory;
 
 import java.io.File;
+import java.util.Properties;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -52,8 +53,8 @@
      * @return open Environment with a lock timeout of {@link org.infinispan.loaders.bdbje.BdbjeCacheStoreConfig#getLockAcquistionTimeout()}
      *         milliseconds.
      */
-    public Environment createEnvironment(File envLocation) throws DatabaseException {
-        EnvironmentConfig envConfig = new EnvironmentConfig();
+    public Environment createEnvironment(File envLocation, Properties environmentProperties) throws DatabaseException {
+        EnvironmentConfig envConfig = environmentProperties == null ? new EnvironmentConfig() : new EnvironmentConfig(environmentProperties);
         envConfig.setAllowCreate(true);
         envConfig.setTransactional(true);
         envConfig.setLockTimeout(config.getLockAcquistionTimeout(), TimeUnit.MILLISECONDS);

Modified: trunk/core/src/main/java/org/infinispan/util/FileLookup.java
===================================================================
--- trunk/core/src/main/java/org/infinispan/util/FileLookup.java	2010-09-17 15:07:27 UTC (rev 2417)
+++ trunk/core/src/main/java/org/infinispan/util/FileLookup.java	2010-09-17 15:09:04 UTC (rev 2418)
@@ -52,7 +52,7 @@
       InputStream is = filename == null || filename.length() == 0 ? null : getAsInputStreamFromClassLoader(filename);
       if (is == null) {
          if (log.isDebugEnabled())
-            log.debug("Unable to find configuration file " + filename + " in classpath; searching for this file on the filesystem instead.");
+            log.debug("Unable to find file " + filename + " in classpath; searching for this file on the filesystem instead.");
          try {
             is = new FileInputStream(filename);
          }



More information about the infinispan-commits mailing list