You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by fr...@apache.org on 2001/12/15 15:29:04 UTC
cvs commit: xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore JispStringKey.java MRUMemoryStore.java JispFilesystemStore.java JispKey.java
froehlich 01/12/15 06:29:04
Modified: scratchpad/src/org/apache/cocoon/jispstore
MRUMemoryStore.java JispFilesystemStore.java
Added: scratchpad/src/org/apache/cocoon/jispstore
JispStringKey.java
Removed: scratchpad/src/org/apache/cocoon/jispstore JispKey.java
Log:
renamed Key class and optimized code
Revision Changes Path
1.5 +40 -14 xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore/MRUMemoryStore.java
Index: MRUMemoryStore.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore/MRUMemoryStore.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- MRUMemoryStore.java 2001/12/14 15:02:32 1.4
+++ MRUMemoryStore.java 2001/12/15 14:29:04 1.5
@@ -59,11 +59,17 @@
*/
public void compose(ComponentManager manager) throws ComponentException {
this.mComponetManager = manager;
- getLogger().debug("Looking up " + Store.ROLE + "/JispFilesystemStore");
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Looking up " + Store.ROLE + "/JispFilesystemStore");
+ }
this.mFsstore = (Store)manager.lookup(Store.ROLE + "/JispFilesystemStore");
- getLogger().debug("Looking up " + StoreJanitor.ROLE);
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Looking up " + StoreJanitor.ROLE);
+ }
this.mStorejanitor = (StoreJanitor)manager.lookup(StoreJanitor.ROLE);
- getLogger().debug("Looking up " + FilesystemQueue.ROLE);
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Looking up " + FilesystemQueue.ROLE);
+ }
this.mFilesystemQueue = (FilesystemQueue)manager.lookup(FilesystemQueue.ROLE);
}
@@ -94,7 +100,9 @@
* Dispose the component
*/
public void dispose() {
- this.getLogger().debug("dispose()");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("dispose()");
+ }
if (this.mComponetManager != null) {
this.mComponetManager.release(this.mStorejanitor);
@@ -127,8 +135,10 @@
* @param the object to be stored
*/
public void hold(Object key, Object value) {
- getLogger().debug("Holding object in memory. key: " + key);
- getLogger().debug("Holding object in memory. value: " + value);
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("Holding object in memory. key: " + key);
+ getLogger().debug("Holding object in memory. value: " + value);
+ }
/** ...first test if the max. objects in cache is reached... */
while (this.mMRUList.size() >= this.mMaxobjects) {
@@ -140,7 +150,9 @@
if(this.mFilesystem) {
if(this.checkSerializable(value) &&
!this.mFsstore.containsKey(key)) {
- this.getLogger().debug("Storing object on fs");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Storing object on fs");
+ }
try {
this.store(key,value);
} catch(Exception e) {
@@ -152,7 +164,9 @@
this.mCache.put(key, value);
this.mMRUList.remove(key);
this.mMRUList.addFirst(key);
- this.getLogger().debug("Cache size=" + mCache.size());
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Cache size=" + mCache.size());
+ }
}
/**
@@ -162,7 +176,9 @@
* @return the requested object
*/
public Object get(Object key) {
- this.getLogger().debug("Getting object from memory. Key: " + key);
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Getting object from memory. Key: " + key);
+ }
Object tmpobject = this.mCache.get(key);
if ( tmpobject != null ) {
/** put the accessed key on top of the linked list */
@@ -176,10 +192,14 @@
if(this.mFilesystem) {
tmpobject = this.mFsstore.get(key);
if (tmpobject == null) {
- this.getLogger().debug( "Object was NOT found on fs. Looked for: " + key);
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug( "Object was NOT found on fs. Looked for: " + key);
+ }
return null;
} else {
- this.getLogger().debug("Object was found on fs");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Object was found on fs");
+ }
if(!this.mCache.containsKey(key)) {
this.hold(key,tmpobject);
}
@@ -195,7 +215,9 @@
* @param the key of to be removed object
*/
public void remove(Object key) {
- this.getLogger().debug("Removing object from store");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Removing object from store");
+ }
this.mCache.remove(key);
this.mMRUList.remove(key);
if(this.mFilesystem && key != null) {
@@ -236,7 +258,9 @@
this.getLogger().debug("Freeing cache");
this.mCache.remove(this.mMRUList.getLast());
this.mMRUList.removeLast();
- this.getLogger().debug("Cache size=" + mCache.size());
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Cache size=" + mCache.size());
+ }
}
} catch (Exception e) {
this.getLogger().error("Error in free()", e);
@@ -253,7 +277,9 @@
*/
private boolean checkSerializable(Object object) {
try {
- this.getLogger().debug("Object=" + object);
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("Object=" + object);
+ }
if((object.getClass().getName().equals("org.apache.cocoon.caching.CachedEventObject"))
|| (object.getClass().getName().equals("org.apache.cocoon.caching.CachedStreamObject"))
|| (ClassUtils.implementsInterface(object.getClass().getName(),"org.apache.cocoon.caching.CacheValidity"))) {
1.8 +42 -24 xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore/JispFilesystemStore.java
Index: JispFilesystemStore.java
===================================================================
RCS file: /home/cvs/xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore/JispFilesystemStore.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- JispFilesystemStore.java 2001/12/14 17:15:22 1.7
+++ JispFilesystemStore.java 2001/12/15 14:29:04 1.8
@@ -85,23 +85,31 @@
*/
public void initialize() {
/** determine datafile */
- getLogger().debug("initialize() JispFilesystemStore");
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("initialize() JispFilesystemStore");
+ }
try {
- getLogger().debug("initialize(): Path to Datafile=" + this.getDirectoryPath() + mDatabaseName);
+ if (getLogger().isDebugEnabled()) {
+ getLogger().debug("initialize(): Path to Datafile=" + this.getDirectoryPath() + mDatabaseName);
+ }
File myFile = new File(this.getDirectoryPath() + mDatabaseName);
if (myFile.exists()) {
- this.getLogger().debug("initialize(): Datafile exists");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("initialize(): Datafile exists");
+ }
mDatabase = new IndexedObjectDatabase(getDirectoryPath() + mDatabaseName,false);
mIndex = new BTreeIndex(this.getDirectoryPath() + mIndexName);
mDatabase.attachIndex(mIndex);
mIndex.dumpTree();
} else {
- this.getLogger().debug("initialize(): Datafile not exists");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("initialize(): Datafile not exists");
+ }
mDatabase = new IndexedObjectDatabase(getDirectoryPath() + mDatabaseName,false);
mIndex = new BTreeIndex(this.getDirectoryPath() + mIndexName,
- mOrder, new JispKey(),false);
+ mOrder, new JispStringKey(),false);
mDatabase.attachIndex(mIndex);
mIndex.dumpTree();
}
@@ -129,9 +137,11 @@
mIndexName = params.getParameter("indexfile","cocoon.idx");
mOrder = params.getParameterAsInteger("order",1001);
- this.getLogger().debug("parameterize(..): mDatabaseName=" + mDatabaseName);
- this.getLogger().debug("parameterize(..): mIndexName=" + mIndexName);
- this.getLogger().debug("parameterize(..): mOrder=" + mOrder);
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("parameterize(..): mDatabaseName=" + mDatabaseName);
+ this.getLogger().debug("parameterize(..): mIndexName=" + mIndexName);
+ this.getLogger().debug("parameterize(..): mOrder=" + mOrder);
+ }
}
/**
@@ -185,17 +195,20 @@
* @return the Object associated with Key Object
*/
public Object get(Object key) {
- this.getLogger().debug("get(): Get file with key: " + key.toString());
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("get(): Get file with key: " + key.toString());
+ }
Object readObj = null;
try {
- readObj = mDatabase.read(new JispKey(key.toString()),mIndex);
- if(readObj != null) {
- this.getLogger().debug("get(): FOUND!!= " + readObj);
- } else {
- this.getLogger().debug("get(): NOT_FOUND!!");
+ readObj = mDatabase.read(new JispStringKey(key.toString()),mIndex);
+ if (getLogger().isDebugEnabled()) {
+ if(readObj != null) {
+ this.getLogger().debug("get(): FOUND!!= " + readObj);
+ } else {
+ this.getLogger().debug("get(): NOT_FOUND!!");
+ }
}
-
} catch (Exception e) {
getLogger().error("get(..): Exception",e);
}
@@ -209,13 +222,14 @@
* @param the Value Object
*/
public void store(Object key, Object value) throws IOException {
- this.getLogger().debug("store(): Store file with key: " + key.toString());
-
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("store(): Store file with key: " + key.toString());
+ }
if(value instanceof Serializable) {
try {
- JispKey[] keyArray = new JispKey[1];
- keyArray[0] = new JispKey(key.toString());
+ JispStringKey[] keyArray = new JispStringKey[1];
+ keyArray[0] = new JispStringKey(key.toString());
mDatabase.write(keyArray,(Serializable)value);
} catch (Exception e) {
@@ -249,11 +263,13 @@
* @param the Key Object
*/
public void remove(Object key) {
- this.getLogger().debug("remove(..) Remove item");
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("remove(..) Remove item");
+ }
try {
- JispKey[] keyArray = new JispKey[1];
- keyArray[0] = new JispKey(key.toString());
+ JispStringKey[] keyArray = new JispStringKey[1];
+ keyArray[0] = new JispStringKey(key.toString());
mDatabase.remove(keyArray);
} catch (KeyNotFound ignore) {
@@ -273,8 +289,10 @@
long res = -1;
try {
- res = mIndex.findKey(new JispKey(key.toString()));
- this.getLogger().debug("containsKey(..): res=" + res);
+ res = mIndex.findKey(new JispStringKey(key.toString()));
+ if (getLogger().isDebugEnabled()) {
+ this.getLogger().debug("containsKey(..): res=" + res);
+ }
} catch (KeyNotFound ignore) {
} catch (Exception e) {
1.1 xml-cocoon2/scratchpad/src/org/apache/cocoon/jispstore/JispStringKey.java
Index: JispStringKey.java
===================================================================
/*****************************************************************************
* Copyright (C) The Apache Software Foundation. All rights reserved. *
* ------------------------------------------------------------------------- *
* This software is published under the terms of the Apache Software License *
* version 1.1, a copy of which has been included with this distribution in *
* the LICENSE file. *
*****************************************************************************/
package org.apache.cocoon.jispstore;
import com.coyotegulch.jisp.KeyObject;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
/**
* Wrapper class to make our cache Key compatible with the Jisp KeyObject
* NOTE: This Wrapper is only for String Keys.
*
* @author <a href="mailto:g-froehlich@gmx.de">Gerhard Froehlich</a>
*/
final class JispStringKey extends KeyObject{
static final long serialVersionUID = -6894793231339165076L;
private String mKey;
public JispStringKey() {
mKey = new String("");
}
public JispStringKey(String keyValue) {
mKey = keyValue;
}
public int compareTo(KeyObject key) {
if (key instanceof JispStringKey) {
int comp = mKey.trim().compareTo(((JispStringKey)key).mKey.trim());
if (comp == 0) {
return KEY_EQUAL;
} else {
if (comp < 0) {
return KEY_LESS;
} else {
return KEY_MORE;
}
}
} else {
return KEY_ERROR;
}
}
public KeyObject makeNullKey() {
return new JispStringKey();;
}
public void writeExternal(ObjectOutput out) throws IOException {
String outKey;
outKey = new String(mKey);
out.writeUTF(outKey);
}
public void readExternal(ObjectInput in)
throws IOException, ClassNotFoundException {
mKey = in.readUTF();
}
public String toString() {
return mKey;
}
}
----------------------------------------------------------------------
In case of troubles, e-mail: webmaster@xml.apache.org
To unsubscribe, e-mail: cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org