You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xmlbeans.apache.org by ra...@apache.org on 2005/08/26 20:28:52 UTC
svn commit: r240307 - in /xmlbeans/trunk: external/lib/oldxbean.jar
src/common/org/apache/xmlbeans/impl/common/SystemCache.java
src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
Author: radup
Date: Fri Aug 26 11:28:45 2005
New Revision: 240307
URL: http://svn.apache.org/viewcvs?rev=240307&view=rev
Log:
Changed the caching interfaces (see r233375) to make them more usable.
Modified:
xmlbeans/trunk/external/lib/oldxbean.jar
xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/SystemCache.java
xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
Modified: xmlbeans/trunk/external/lib/oldxbean.jar
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/external/lib/oldxbean.jar?rev=240307&r1=240306&r2=240307&view=diff
==============================================================================
Binary files - no diff available.
Modified: xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/SystemCache.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/SystemCache.java?rev=240307&r1=240306&r2=240307&view=diff
==============================================================================
--- xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/SystemCache.java (original)
+++ xmlbeans/trunk/src/common/org/apache/xmlbeans/impl/common/SystemCache.java Fri Aug 26 11:28:45 2005
@@ -20,6 +20,18 @@
import org.apache.xmlbeans.SchemaTypeLoader;
import org.apache.xmlbeans.SystemProperties;
+/**
+ * This class encapsulates the caching strategy for XmlBeans.
+ * By subclassing this, a client of XmlBeans can implement caches that are
+ * more suitable for different applications using information that XmlBeans
+ * cannot know.
+ * <p/>
+ * This class works as a singleton and as a default implementation for the cache.
+ * You can set a particular implementation using the "xmlbean.systemcacheimpl"
+ * system property or using the static {@link set} method.
+ * Subclasses of this need to be thread-safe. An implementation can be replaced
+ * at any time, so use of static variables is discouraged to ensure proper cleanup.
+ */
public class SystemCache
{
private static SystemCache INSTANCE = new SystemCache();
@@ -63,9 +75,6 @@
public static synchronized final void set(SystemCache instance)
{
- if (INSTANCE.getClass() != SystemCache.class)
- throw new RuntimeException("Cache instance is already set to class " +
- INSTANCE.getClass().getName());
INSTANCE = instance;
}
@@ -84,7 +93,7 @@
return;
}
- private static ThreadLocal tl_saxLoaders = new ThreadLocal();
+ private ThreadLocal tl_saxLoaders = new ThreadLocal();
public Object getSaxLoader()
{
Modified: xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java
URL: http://svn.apache.org/viewcvs/xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java?rev=240307&r1=240306&r2=240307&view=diff
==============================================================================
--- xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java (original)
+++ xmlbeans/trunk/src/typeimpl/org/apache/xmlbeans/impl/schema/SchemaTypeLoaderImpl.java Fri Aug 26 11:28:45 2005
@@ -66,7 +66,7 @@
// I use soft references to allow the garbage collector to reclain the type loaders
// and/pr class loaders at will.
- private static ThreadLocal _cachedTypeSystems =
+ private ThreadLocal _cachedTypeSystems =
new ThreadLocal() { protected Object initialValue() { return new ArrayList(); } };
public SchemaTypeLoader getFromTypeLoaderCache(ClassLoader cl)
@@ -609,6 +609,7 @@
static
{
- SystemCache.set(new SchemaTypeLoaderCache());
+ if (SystemCache.get() instanceof SystemCache)
+ SystemCache.set(new SchemaTypeLoaderCache());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xmlbeans.apache.org
For additional commands, e-mail: commits-help@xmlbeans.apache.org