You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by pi...@apache.org on 2004/09/01 14:16:52 UTC
svn commit: rev 37335 - cocoon/branches/BRANCH_2_1_X/src/blocks/scratchpad/java/org/apache/cocoon/components/store
Author: pier
Date: Wed Sep 1 05:16:51 2004
New Revision: 37335
Modified:
cocoon/branches/BRANCH_2_1_X/src/blocks/scratchpad/java/org/apache/cocoon/components/store/EHStore.java
Log:
Make sure that cache is created into the Cocoon cache directory
Modified: cocoon/branches/BRANCH_2_1_X/src/blocks/scratchpad/java/org/apache/cocoon/components/store/EHStore.java
==============================================================================
--- cocoon/branches/BRANCH_2_1_X/src/blocks/scratchpad/java/org/apache/cocoon/components/store/EHStore.java (original)
+++ cocoon/branches/BRANCH_2_1_X/src/blocks/scratchpad/java/org/apache/cocoon/components/store/EHStore.java Wed Sep 1 05:16:51 2004
@@ -26,8 +26,13 @@
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;
+import org.apache.cocoon.Constants;
+
import org.apache.avalon.framework.activity.Disposable;
import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.context.Context;
+import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
import org.apache.avalon.framework.logger.AbstractLogEnabled;
import org.apache.avalon.framework.parameters.ParameterException;
import org.apache.avalon.framework.parameters.Parameterizable;
@@ -54,7 +59,7 @@
* </p>
*/
public class EHStore extends AbstractLogEnabled
-implements Store, Parameterizable, Initializable, Disposable, ThreadSafe, Serviceable {
+implements Store, Parameterizable, Initializable, Disposable, ThreadSafe, Serviceable, Contextualizable {
private Cache cache;
private CacheManager cacheManager;
@@ -70,8 +75,18 @@
/** The store janitor */
private StoreJanitor storeJanitor;
+
+ /** The context containing the work and the cache directory */
+ private Context context;
/* (non-Javadoc)
+ * @see org.apache.avalon.framework.context.Contextualizable#contextualize(org.apache.avalon.framework.context.Context)
+ */
+ public void contextualize(Context aContext) throws ContextException {
+ this.context = aContext;
+ }
+
+ /* (non-Javadoc)
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager aManager) throws ServiceException {
@@ -109,7 +124,11 @@
*/
public void initialize() throws Exception {
URL configFileURL = Thread.currentThread().getContextClassLoader().getResource(this.configFile);
+ String tempDir = System.getProperty("java.io.tmpdir");
+ Object cacheDir = this.context.get(Constants.CONTEXT_CACHE_DIR);
+ if (cacheDir != null) System.setProperty("java.io.tmpdir", cacheDir.toString());
this.cacheManager = CacheManager.create(configFileURL);
+ if (tempDir != null) System.setProperty("java.io.tmpdir", tempDir);
this.cache = new Cache(this.cacheName, this.maximumSize, this.overflowToDisk, true, 0, 0);
this.cacheManager.addCache(this.cache);
this.storeJanitor.register(this);