[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