exo-jcr SVN: r2287 - in jcr/branches/1.14.x/exo.jcr.component.webdav/src: main/java/org/exoplatform/services/jcr/webdav/util and 1 other directories.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-04-16 10:00:27 -0400 (Fri, 16 Apr 2010)
New Revision: 2287
Modified:
jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java
jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java
jcr/branches/1.14.x/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java
Log:
EXOJCR-638 problem with setting mixins fixed
Modified: jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java 2010-04-16 13:55:00 UTC (rev 2286)
+++ jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java 2010-04-16 14:00:27 UTC (rev 2287)
@@ -84,7 +84,7 @@
* @return the instance of javax.ws.rs.core.Response
*/
Response put(String repoName, String repoPath, String lockTokenHeader, String ifHeader, String fileNodeTypeHeader,
- String contentNodeTypeHeader, List<String> mixinTypes, MediaType mediatype, InputStream inputStream);
+ String contentNodeTypeHeader, String mixinTypes, MediaType mediatype, InputStream inputStream);
/**
* @param repoName repository name
@@ -120,7 +120,7 @@
* @return the instance of javax.ws.rs.core.Response
*/
Response mkcol(String repoName, String repoPath, String lockTokenHeader, String ifHeader, String nodeTypeHeader,
- List<String> mixinTypesHeader);
+ String mixinTypesHeader);
/**
* @param repoName repository name
Modified: jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2010-04-16 13:55:00 UTC (rev 2286)
+++ jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2010-04-16 14:00:27 UTC (rev 2287)
@@ -682,7 +682,7 @@
public Response mkcol(@PathParam("repoName") String repoName, @PathParam("repoPath") String repoPath,
@HeaderParam(ExtHttpHeaders.LOCKTOKEN) String lockTokenHeader, @HeaderParam(ExtHttpHeaders.IF) String ifHeader,
@HeaderParam(ExtHttpHeaders.CONTENT_NODETYPE) String nodeTypeHeader,
- @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) List<String> mixinTypesHeader)
+ @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) String mixinTypesHeader)
{
if (log.isDebugEnabled())
{
@@ -942,7 +942,7 @@
@HeaderParam(ExtHttpHeaders.LOCKTOKEN) String lockTokenHeader, @HeaderParam(ExtHttpHeaders.IF) String ifHeader,
@HeaderParam(ExtHttpHeaders.FILE_NODETYPE) String fileNodeTypeHeader,
@HeaderParam(ExtHttpHeaders.CONTENT_NODETYPE) String contentNodeTypeHeader,
- @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) List<String> mixinTypes,
+ @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) String mixinTypes,
@HeaderParam(ExtHttpHeaders.CONTENT_TYPE) MediaType mediatype, InputStream inputStream)
{
Modified: jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java 2010-04-16 13:55:00 UTC (rev 2286)
+++ jcr/branches/1.14.x/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java 2010-04-16 14:00:27 UTC (rev 2287)
@@ -21,6 +21,7 @@
import org.exoplatform.services.jcr.webdav.WebDavConst;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import javax.jcr.nodetype.NoSuchNodeTypeException;
@@ -87,14 +88,9 @@
* @param mixinTypes list of mixins or null
* @return list of mixins
*/
- public static ArrayList<String> getMixinTypes(List<String> mixinTypes)
+ public static ArrayList<String> getMixinTypes(String mixinTypes)
{
- ArrayList<String> mixins = new ArrayList<String>();
- if (mixinTypes == null)
- {
- return mixins;
- }
- return mixins;
+ return mixinTypes == null ? new ArrayList<String>() : new ArrayList<String>(Arrays.asList(mixinTypes.split(",")));
}
}
Modified: jcr/branches/1.14.x/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java 2010-04-16 13:55:00 UTC (rev 2286)
+++ jcr/branches/1.14.x/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java 2010-04-16 14:00:27 UTC (rev 2287)
@@ -117,6 +117,8 @@
assertEquals(HTTPStatus.CREATED, containerResponse.getStatus());
NodeType[] mixins = TestUtils.getContentMixins(session, fileName);
+ assertEquals(2, mixins.length);
+
for (NodeType mixin : mixins)
{
assertTrue(mixin.getName().equals("mix:wdTestMixin1") || mixin.getName().equals("mix:wdTestMixin2"));
16 years, 1 month
exo-jcr SVN: r2286 - in jcr/trunk/exo.jcr.component.webdav/src: main/java/org/exoplatform/services/jcr/webdav/util and 1 other directories.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-04-16 09:55:00 -0400 (Fri, 16 Apr 2010)
New Revision: 2286
Modified:
jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java
jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java
jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java
Log:
EXOJCR-638 problem with setting mixins fixed
Modified: jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java 2010-04-15 15:24:38 UTC (rev 2285)
+++ jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavService.java 2010-04-16 13:55:00 UTC (rev 2286)
@@ -84,7 +84,7 @@
* @return the instance of javax.ws.rs.core.Response
*/
Response put(String repoName, String repoPath, String lockTokenHeader, String ifHeader, String fileNodeTypeHeader,
- String contentNodeTypeHeader, List<String> mixinTypes, MediaType mediatype, InputStream inputStream);
+ String contentNodeTypeHeader, String mixinTypes, MediaType mediatype, InputStream inputStream);
/**
* @param repoName repository name
@@ -120,7 +120,7 @@
* @return the instance of javax.ws.rs.core.Response
*/
Response mkcol(String repoName, String repoPath, String lockTokenHeader, String ifHeader, String nodeTypeHeader,
- List<String> mixinTypesHeader);
+ String mixinTypesHeader);
/**
* @param repoName repository name
Modified: jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2010-04-15 15:24:38 UTC (rev 2285)
+++ jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/WebDavServiceImpl.java 2010-04-16 13:55:00 UTC (rev 2286)
@@ -682,7 +682,7 @@
public Response mkcol(@PathParam("repoName") String repoName, @PathParam("repoPath") String repoPath,
@HeaderParam(ExtHttpHeaders.LOCKTOKEN) String lockTokenHeader, @HeaderParam(ExtHttpHeaders.IF) String ifHeader,
@HeaderParam(ExtHttpHeaders.CONTENT_NODETYPE) String nodeTypeHeader,
- @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) List<String> mixinTypesHeader)
+ @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) String mixinTypesHeader)
{
if (log.isDebugEnabled())
{
@@ -942,7 +942,7 @@
@HeaderParam(ExtHttpHeaders.LOCKTOKEN) String lockTokenHeader, @HeaderParam(ExtHttpHeaders.IF) String ifHeader,
@HeaderParam(ExtHttpHeaders.FILE_NODETYPE) String fileNodeTypeHeader,
@HeaderParam(ExtHttpHeaders.CONTENT_NODETYPE) String contentNodeTypeHeader,
- @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) List<String> mixinTypes,
+ @HeaderParam(ExtHttpHeaders.CONTENT_MIXINTYPES) String mixinTypes,
@HeaderParam(ExtHttpHeaders.CONTENT_TYPE) MediaType mediatype, InputStream inputStream)
{
Modified: jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java 2010-04-15 15:24:38 UTC (rev 2285)
+++ jcr/trunk/exo.jcr.component.webdav/src/main/java/org/exoplatform/services/jcr/webdav/util/NodeTypeUtil.java 2010-04-16 13:55:00 UTC (rev 2286)
@@ -21,7 +21,8 @@
import org.exoplatform.services.jcr.webdav.WebDavConst;
import java.util.ArrayList;
-import java.util.List;
+import java.util.Arrays;
+import java.util.Collections;
import javax.jcr.nodetype.NoSuchNodeTypeException;
import javax.jcr.nodetype.NodeType;
@@ -51,6 +52,7 @@
// Default nodetype for the file.
return null;
}
+
/**
* Returns the NodeType of content node according to the Content-NodeType
* header.
@@ -87,14 +89,9 @@
* @param mixinTypes list of mixins or null
* @return list of mixins
*/
- public static ArrayList<String> getMixinTypes(List<String> mixinTypes)
+ public static ArrayList<String> getMixinTypes(String mixinTypes)
{
- ArrayList<String> mixins = new ArrayList<String>();
- if (mixinTypes == null)
- {
- return mixins;
- }
- return mixins;
+ return mixinTypes == null ? new ArrayList<String>() : new ArrayList<String>(Arrays.asList(mixinTypes.split(",")));
}
}
Modified: jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java
===================================================================
--- jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java 2010-04-15 15:24:38 UTC (rev 2285)
+++ jcr/trunk/exo.jcr.component.webdav/src/test/java/org/exoplatform/services/jcr/webdav/command/TestPut.java 2010-04-16 13:55:00 UTC (rev 2286)
@@ -117,6 +117,8 @@
assertEquals(HTTPStatus.CREATED, containerResponse.getStatus());
NodeType[] mixins = TestUtils.getContentMixins(session, fileName);
+ assertEquals(2, mixins.length);
+
for (NodeType mixin : mixins)
{
assertTrue(mixin.getName().equals("mix:wdTestMixin1") || mixin.getName().equals("mix:wdTestMixin2"));
16 years, 1 month
exo-jcr SVN: r2285 - in kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src: test/java/org/exoplatform/services/cache/impl/jboss and 1 other directory.
by do-not-reply@jboss.org
Author: nfilotto
Date: 2010-04-15 11:24:38 -0400 (Thu, 15 Apr 2010)
New Revision: 2285
Modified:
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java
kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
Log:
EXOJCR-672: a Temporary fix until JBCACHE-1577 will be fixed
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java 2010-04-15 15:06:48 UTC (rev 2284)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/main/java/org/exoplatform/services/cache/impl/jboss/AbstractExoCache.java 2010-04-15 15:24:38 UTC (rev 2285)
@@ -43,6 +43,7 @@
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.atomic.AtomicInteger;
@@ -107,17 +108,22 @@
/**
* {@inheritDoc}
*/
+ @SuppressWarnings("unchecked")
public void clearCache()
{
- final Node<K, V> rootNode = cache.getRoot();
- for (Node<K, V> node : rootNode.getChildren())
+ Set<Fqn> internalFqns = cache.getInternalFqns();
+ for (Object childName : cache.peek(Fqn.ROOT, false, false).getChildrenNames())
{
- if (node == null)
+ if (!internalFqns.contains(Fqn.fromElements(childName)))
{
- continue;
+ cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
+ cache.removeNode(Fqn.fromRelativeElements(Fqn.ROOT, childName));
}
- remove(getKey(node));
}
+ // The code above can be replaced with the code below once the bug JBCACHE-1577
+ // will be fixed in JBC
+// cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(true);
+// cache.removeNode(Fqn.ROOT);
onClearCache();
}
Modified: kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java
===================================================================
--- kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java 2010-04-15 15:06:48 UTC (rev 2284)
+++ kernel/trunk/exo.kernel.component.ext.cache.impl.jboss.v3/src/test/java/org/exoplatform/services/cache/impl/jboss/TestAbstractExoCache.java 2010-04-15 15:24:38 UTC (rev 2285)
@@ -311,18 +311,21 @@
assertEquals(1, listener1.remove);
assertEquals(1, listener2.remove);
assertEquals(0, listener3.remove);
+ cache1.put(new MyKey("c"), "c");
cache1.clearCache();
assertEquals(0, cache1.getCacheSize());
- assertEquals(null, cache2.get(new MyKey("b")));
- assertEquals(0, cache2.getCacheSize());
- assertEquals(3, listener1.put);
- assertEquals(3, listener2.put);
+ assertEquals(null, cache1.get(new MyKey("b")));
+ assertEquals("c", cache2.get(new MyKey("b")));
+ assertEquals("c", cache2.get(new MyKey("c")));
+ assertEquals(2, cache2.getCacheSize());
+ assertEquals(4, listener1.put);
+ assertEquals(4, listener2.put);
assertEquals(1, listener3.put);
- assertEquals(2, listener1.get);
- assertEquals(2, listener2.get);
+ assertEquals(3, listener1.get);
+ assertEquals(3, listener2.get);
assertEquals(1, listener3.get);
- assertEquals(2, listener1.remove);
- assertEquals(2, listener2.remove);
+ assertEquals(1, listener1.remove);
+ assertEquals(1, listener2.remove);
assertEquals(0, listener3.remove);
assertEquals(1, listener1.clearCache);
assertEquals(0, listener2.clearCache);
@@ -335,15 +338,15 @@
Thread.sleep(40);
assertEquals("a", cache2.get(new MyKey("a")));
assertEquals("b", cache2.get(new MyKey("b")));
- assertEquals(2, cache2.getCacheSize());
- assertEquals(5, listener1.put);
- assertEquals(5, listener2.put);
+ assertEquals(3, cache2.getCacheSize());
+ assertEquals(6, listener1.put);
+ assertEquals(6, listener2.put);
assertEquals(1, listener3.put);
- assertEquals(2, listener1.get);
- assertEquals(4, listener2.get);
+ assertEquals(3, listener1.get);
+ assertEquals(5, listener2.get);
assertEquals(1, listener3.get);
- assertEquals(2, listener1.remove);
- assertEquals(2, listener2.remove);
+ assertEquals(1, listener1.remove);
+ assertEquals(1, listener2.remove);
assertEquals(0, listener3.remove);
assertEquals(1, listener1.clearCache);
assertEquals(0, listener2.clearCache);
@@ -380,16 +383,16 @@
values.put(new MyKey("d"), "d");
cache1.putMap(values);
assertEquals(2, cache1.getCacheSize());
- assertEquals(2, cache2.getCacheSize());
+ assertEquals(3, cache2.getCacheSize());
assertEquals(1, cache3.getCacheSize());
- assertEquals(5, listener1.put);
- assertEquals(5, listener2.put);
+ assertEquals(6, listener1.put);
+ assertEquals(6, listener2.put);
assertEquals(1, listener3.put);
- assertEquals(2, listener1.get);
- assertEquals(4, listener2.get);
+ assertEquals(3, listener1.get);
+ assertEquals(5, listener2.get);
assertEquals(1, listener3.get);
- assertEquals(2, listener1.remove);
- assertEquals(2, listener2.remove);
+ assertEquals(1, listener1.remove);
+ assertEquals(1, listener2.remove);
assertEquals(0, listener3.remove);
assertEquals(1, listener1.clearCache);
assertEquals(0, listener2.clearCache);
@@ -401,20 +404,20 @@
assertEquals(0, cache1.getCacheSize());
assertEquals(0, cache2.getCacheSize());
assertEquals(0, cache3.getCacheSize());
- assertEquals(5, listener1.put);
- assertEquals(5, listener2.put);
+ assertEquals(6, listener1.put);
+ assertEquals(6, listener2.put);
assertEquals(1, listener3.put);
- assertEquals(2, listener1.get);
- assertEquals(4, listener2.get);
+ assertEquals(3, listener1.get);
+ assertEquals(5, listener2.get);
assertEquals(1, listener3.get);
- assertEquals(2, listener1.remove);
- assertEquals(2, listener2.remove);
+ assertEquals(1, listener1.remove);
+ assertEquals(1, listener2.remove);
assertEquals(0, listener3.remove);
assertEquals(1, listener1.clearCache);
assertEquals(0, listener2.clearCache);
assertEquals(0, listener3.clearCache);
assertEquals(2, listener1.expire);
- assertEquals(2, listener2.expire);
+ assertEquals(3, listener2.expire);
assertEquals(1, listener3.expire);
}
finally
@@ -699,5 +702,11 @@
{
return value.hashCode();
}
+
+ @Override
+ public String toString()
+ {
+ return value;
+ }
}
}
16 years, 1 month
exo-jcr SVN: r2284 - in jcr/trunk/exo.jcr.component.core/src: main/resources/conf/portal and 2 other directories.
by do-not-reply@jboss.org
Author: areshetnyak
Date: 2010-04-15 11:06:48 -0400 (Thu, 15 Apr 2010)
New Revision: 2284
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/jbosscache-data.xml
jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java
jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-config.xml
Log:
EXOJCR-545 : The update trunk to use ExpirationAlgorithm.
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/BufferedJBossCache.java 2010-04-15 15:06:48 UTC (rev 2284)
@@ -18,6 +18,14 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
+import java.io.Serializable;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.transaction.TransactionManager;
+
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.jboss.cache.Cache;
@@ -30,17 +38,10 @@
import org.jboss.cache.NodeNotExistsException;
import org.jboss.cache.Region;
import org.jboss.cache.config.Configuration;
+import org.jboss.cache.eviction.ExpirationAlgorithmConfig;
import org.jboss.cache.interceptors.base.CommandInterceptor;
import org.jgroups.Address;
-import java.io.Serializable;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.transaction.TransactionManager;
-
/**
* Decorator over the JBossCache that stores changes in buffer, then sorts and applies to JBossCache.
*
@@ -51,8 +52,6 @@
@SuppressWarnings("unchecked")
public class BufferedJBossCache implements Cache<Serializable, Object>
{
- // private final Log log = ExoLogger.getLogger("exo.jcr.component.core.BufferedJbossCache");
-
/**
* Parent cache.
*/
@@ -61,14 +60,20 @@
private final ThreadLocal<CompressedChangesBuffer> changesList = new ThreadLocal<CompressedChangesBuffer>();
private ThreadLocal<Boolean> local = new ThreadLocal<Boolean>();
+
+ private final boolean useExpiration;
+
+ private final long expirationTimeOut;
protected static final Log LOG =
ExoLogger.getLogger("org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache");
- public BufferedJBossCache(Cache<Serializable, Object> parentCache)
+ public BufferedJBossCache(Cache<Serializable, Object> parentCache, boolean useExpiration, long expirationTimeOut)
{
super();
this.parentCache = parentCache;
+ this.useExpiration = useExpiration;
+ this.expirationTimeOut = expirationTimeOut;
}
/**
@@ -451,7 +456,7 @@
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new PutObjectContainer(fqn, data, parentCache, changesContainer.getHistoryIndex(), local
- .get()));
+ .get(), useExpiration, expirationTimeOut));
}
/* (non-Javadoc)
@@ -461,7 +466,7 @@
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new PutKeyValueContainer(fqn, key, value, parentCache, changesContainer.getHistoryIndex(),
- local.get()));
+ local.get(), useExpiration, expirationTimeOut));
return parentCache.get(fqn, key);
}
@@ -474,7 +479,7 @@
Object prevObject = getObjectFromChangesContainer(changesContainer, fqn, key);
changesContainer.add(new PutKeyValueContainer(fqn, key, value, parentCache, changesContainer.getHistoryIndex(),
- local.get()));
+ local.get(), useExpiration, expirationTimeOut));
if (prevObject != null)
{
@@ -537,7 +542,7 @@
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new RemoveKeyContainer(fqn, key, parentCache, changesContainer.getHistoryIndex(), local
- .get()));
+ .get(), useExpiration, expirationTimeOut));
return parentCache.get(fqn, key);
}
@@ -579,7 +584,8 @@
public boolean removeNode(Fqn fqn)
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
- changesContainer.add(new RemoveNodeContainer(fqn, parentCache, changesContainer.getHistoryIndex(), local.get()));
+ changesContainer.add(new RemoveNodeContainer(fqn, parentCache, changesContainer.getHistoryIndex(), local.get(),
+ useExpiration, expirationTimeOut));
return true;
}
@@ -648,7 +654,7 @@
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new AddToListContainer(fqn, key, value, parentCache, changesContainer.getHistoryIndex(),
- local.get()));
+ local.get(), useExpiration, expirationTimeOut));
}
/**
@@ -662,7 +668,7 @@
{
CompressedChangesBuffer changesContainer = getChangesBufferSafe();
changesContainer.add(new RemoveFromListContainer(fqn, key, value, parentCache,
- changesContainer.getHistoryIndex(), local.get()));
+ changesContainer.getHistoryIndex(), local.get(), useExpiration, expirationTimeOut));
}
public static enum ChangesType {
@@ -684,8 +690,12 @@
protected final boolean localMode;
+ protected final boolean useExpiration;
+
+ protected final long timeOut;
+
public ChangesContainer(Fqn fqn, ChangesType changesType, Cache<Serializable, Object> cache, int historicalIndex,
- boolean localMode)
+ boolean localMode, boolean useExpiration, long timeOut)
{
super();
this.fqn = fqn;
@@ -693,6 +703,8 @@
this.cache = cache;
this.historicalIndex = historicalIndex;
this.localMode = localMode;
+ this.useExpiration = useExpiration;
+ this.timeOut = timeOut;
}
/**
@@ -738,6 +750,12 @@
{
cache.getInvocationContext().getOptionOverrides().setCacheModeLocal(localMode);
}
+
+ public final void putExpiration(Fqn efqn)
+ {
+ setCacheLocalMode();
+ cache.put(efqn, ExpirationAlgorithmConfig.EXPIRATION_KEY, new Long(System.currentTimeMillis() + timeOut));
+ }
public abstract void apply();
}
@@ -750,9 +768,9 @@
private final Map<? extends Serializable, ? extends Object> data;
public PutObjectContainer(Fqn fqn, Map<? extends Serializable, ? extends Object> data,
- Cache<Serializable, Object> cache, int historicalIndex, boolean local)
+ Cache<Serializable, Object> cache, int historicalIndex, boolean local, boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.PUT, cache, historicalIndex, local);
+ super(fqn, ChangesType.PUT, cache, historicalIndex, local, useExpiration, timeOut);
this.data = data;
}
@@ -762,6 +780,11 @@
{
setCacheLocalMode();
cache.put(fqn, data);
+
+ if (useExpiration)
+ {
+ putExpiration(fqn);
+ }
}
}
@@ -775,9 +798,9 @@
private final Object value;
public PutKeyValueContainer(Fqn fqn, Serializable key, Object value, Cache<Serializable, Object> cache,
- int historicalIndex, boolean local)
+ int historicalIndex, boolean local, boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.PUT_KEY, cache, historicalIndex, local);
+ super(fqn, ChangesType.PUT_KEY, cache, historicalIndex, local, useExpiration, timeOut);
this.key = key;
this.value = value;
}
@@ -785,6 +808,11 @@
@Override
public void apply()
{
+ if (useExpiration)
+ {
+ putExpiration(fqn);
+ }
+
setCacheLocalMode();
cache.put(fqn, key, value);
}
@@ -801,9 +829,9 @@
private final Object value;
public AddToListContainer(Fqn fqn, Serializable key, Object value, Cache<Serializable, Object> cache,
- int historicalIndex, boolean local)
+ int historicalIndex, boolean local, boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.PUT_KEY, cache, historicalIndex, local);
+ super(fqn, ChangesType.PUT_KEY, cache, historicalIndex, local, useExpiration, timeOut);
this.key = key;
this.value = value;
}
@@ -825,6 +853,12 @@
newSet.addAll((Set<Object>)existingObject);
}
newSet.add(value);
+
+ if (useExpiration)
+ {
+ putExpiration(fqn);
+ }
+
setCacheLocalMode();
cache.put(fqn, key, newSet);
}
@@ -846,9 +880,9 @@
private final Object value;
public RemoveFromListContainer(Fqn fqn, Serializable key, Object value, Cache<Serializable, Object> cache,
- int historicalIndex, boolean local)
+ int historicalIndex, boolean local, boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.REMOVE_KEY, cache, historicalIndex, local);
+ super(fqn, ChangesType.REMOVE_KEY, cache, historicalIndex, local, useExpiration, timeOut);
this.key = key;
this.value = value;
}
@@ -866,6 +900,12 @@
{
Set<Object> newSet = new HashSet<Object>((Set<Object>)existingObject);
newSet.remove(value);
+
+ if (useExpiration)
+ {
+ putExpiration(fqn);
+ }
+
setCacheLocalMode();
cache.put(fqn, key, newSet);
}
@@ -880,9 +920,9 @@
private final Serializable key;
public RemoveKeyContainer(Fqn fqn, Serializable key, Cache<Serializable, Object> cache, int historicalIndex,
- boolean local)
+ boolean local, boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.REMOVE_KEY, cache, historicalIndex, local);
+ super(fqn, ChangesType.REMOVE_KEY, cache, historicalIndex, local, useExpiration, timeOut);
this.key = key;
}
@@ -901,9 +941,10 @@
public static class RemoveNodeContainer extends ChangesContainer
{
- public RemoveNodeContainer(Fqn fqn, Cache<Serializable, Object> cache, int historicalIndex, boolean local)
+ public RemoveNodeContainer(Fqn fqn, Cache<Serializable, Object> cache, int historicalIndex, boolean local,
+ boolean useExpiration, long timeOut)
{
- super(fqn, ChangesType.REMOVE, cache, historicalIndex, local);
+ super(fqn, ChangesType.REMOVE, cache, historicalIndex, local, useExpiration, timeOut);
}
@Override
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/CompressedChangesBuffer.java 2010-04-15 15:06:48 UTC (rev 2284)
@@ -18,16 +18,16 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
-import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesType;
-import org.jboss.cache.Fqn;
-
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
+import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesType;
+import org.jboss.cache.Fqn;
+
/**
* Sorting cache modification "as is" in {@link BufferedJBossCache} may harm data consistency.
* Here is a link, showing possible trouble:
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/JBossCacheWorkspaceStorageCache.java 2010-04-15 15:06:48 UTC (rev 2284)
@@ -38,8 +38,11 @@
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.transaction.TransactionService;
+import org.jboss.cache.Cache;
import org.jboss.cache.Fqn;
import org.jboss.cache.Node;
+import org.jboss.cache.config.EvictionRegionConfig;
+import org.jboss.cache.eviction.ExpirationAlgorithmConfig;
import java.io.Serializable;
import java.util.ArrayList;
@@ -65,24 +68,24 @@
* <ul>
* <li>/$ITEMS - stores items by Id (i.e. /$ITEMS/itemId)</li>
* <li>/$CHILD_NODES, /$CHILD_PROPS - stores items by parentId and name (i.e. /$CHILD_NODES/parentId/childName.$ITEM_ID)</li>
- * <li>/$CHILD_NODES_LIST, /$CHILD_PROPS_LIST - stores child list by parentId and child Id
+ * <li>/$CHILD_NODES_LIST, /$CHILD_PROPS_LIST - stores child list by parentId and child Id
* (i.e. /$CHILD_NODES_LIST/parentId.lists = serialized Set<Object>)</li>
* </ul>
- * </li>
+ * </li>
* <li>all child properties/nodes lists should be evicted from parent at same time
* i.e. for /$CHILD_NODES_LIST, /$CHILD_PROPS_LIST we need customized eviction policy (EvictionActionPolicy) to evict
* whole list on one of childs eviction
- * </li>
+ * </li>
* </ul>
*
- * <p/>
- * Current state notes (subject of change):
+ * <p/>
+ * Current state notes (subject of change):
* <ul>
* <li>cache implements WorkspaceStorageCache, without any stuff about references and locks</li>
* <li>transaction style implemented via JBC barches, do with JTA (i.e. via exo's TransactionService + JBoss TM)</li>
* <li>we need customized eviction policy (EvictionActionPolicy) for /$CHILD_NODES_LIST, /$CHILD_PROPS_LIST</li>
* </ul>
- *
+ *
* @author <a href="mailto:peter.nedonosko@exoplatform.com">Peter Nedonosko</a>
* @version $Id: JBossCacheWorkspaceStorageCache.java 13869 2008-05-05 08:40:10Z pnedonosko $
*/
@@ -93,6 +96,10 @@
public static final String JBOSSCACHE_CONFIG = "jbosscache-configuration";
+ public static final String JBOSSCACHE_EXPIRATION = "jbosscache-expiration-time";
+
+ public static final int JBOSSCACHE_EXPIRATION_DEFAULT = 900000; // 15 minutes
+
public static final String ITEMS = "$ITEMS".intern();
public static final String CHILD_NODES = "$CHILD_NODES".intern();
@@ -253,7 +260,7 @@
*/
public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, TransactionService transactionService,
ConfigurationManager cfm) throws RepositoryException, RepositoryConfigurationException
- {
+ {
if (wsConfig.getCache() == null)
{
throw new RepositoryConfigurationException("Cache configuration not found");
@@ -271,8 +278,37 @@
factory = new ExoJBossCacheFactory<Serializable, Object>(cfm);
}
- this.cache = new BufferedJBossCache(factory.createCache(wsConfig.getCache()));
+ // create parent JBossCache instance
+ Cache<Serializable, Object> parentCache = factory.createCache(wsConfig.getCache());
+ // get all eviction configurations
+ List<EvictionRegionConfig> evictionConfigurations =
+ parentCache.getConfiguration().getEvictionConfig().getEvictionRegionConfigs();
+ // append and default eviction configuration, since it is not present in region configurations
+ evictionConfigurations.add(parentCache.getConfiguration().getEvictionConfig().getDefaultEvictionRegionConfig());
+ boolean useExpiration = false;
+ // looking over all eviction configurations till the end or till some expiration algorithm subclass not found.
+ for (EvictionRegionConfig evictionRegionConfig : evictionConfigurations)
+ {
+ if (evictionRegionConfig.getEvictionAlgorithmConfig() instanceof ExpirationAlgorithmConfig)
+ {
+ // force set expiration key to default value in all Expiration configurations (if any)
+ ((ExpirationAlgorithmConfig)evictionRegionConfig.getEvictionAlgorithmConfig())
+ .setExpirationKeyName(ExpirationAlgorithmConfig.EXPIRATION_KEY);
+ useExpiration = true;
+ }
+ }
+
+ if (useExpiration)
+ {
+ LOG.info("Using BufferedJBossCache compatible with Expiration algorithm.");
+ }
+
+ // if expiration is used, set appropriate factory with with timeout set via configuration (or default one 15minutes)
+ this.cache =
+ new BufferedJBossCache(factory.createCache(wsConfig.getCache()), useExpiration,
+ wsConfig.getCache().getParameterInteger(JBOSSCACHE_EXPIRATION, JBOSSCACHE_EXPIRATION_DEFAULT));
+
this.itemsRoot = Fqn.fromElements(ITEMS);
this.childNodes = Fqn.fromElements(CHILD_NODES);
this.childProps = Fqn.fromElements(CHILD_PROPS);
@@ -287,17 +323,17 @@
createResidentNode(childProps);
createResidentNode(childPropsList);
createResidentNode(itemsRoot);
- }
+ }
/**
* Cache constructor with JBossCache JTA transaction support.
*
- * @param wsConfig WorkspaceEntry workspace config
+ * @param wsConfig WorkspaceEntry workspace config
* @throws RepositoryException if error of initialization
* @throws RepositoryConfigurationException if error of configuration
*/
public JBossCacheWorkspaceStorageCache(WorkspaceEntry wsConfig, ConfigurationManager cfm)
- throws RepositoryException, RepositoryConfigurationException
+ throws RepositoryException, RepositoryConfigurationException
{
this(wsConfig, null, cfm);
}
@@ -336,7 +372,7 @@
/**
* Return TransactionManager used by JBossCache backing the JCR cache.
*
- * @return TransactionManager
+ * @return TransactionManager
*/
public TransactionManager getTransactionManager()
{
@@ -406,8 +442,8 @@
{
if (state.isPersisted())
{
- // There was a problem with removing a list of samename siblings in on transaction,
- // so putItemInBufferedCache(..) and updateInBufferedCache(..) used instead put(..) and update (..) methods.
+ // There was a problem with removing a list of samename siblings in on transaction,
+ // so putItemInBufferedCache(..) and updateInBufferedCache(..) used instead put(..) and update (..) methods.
ItemData prevItem = putItemInBufferedCache(state.getData());
if (prevItem != null && state.isNode())
{
@@ -446,8 +482,8 @@
}
/**
- * {@inheritDoc}
- */
+ * {@inheritDoc}
+ */
public void addChildNodes(NodeData parent, List<NodeData> childs)
{
boolean inTransaction = cache.isTransactionActive();
@@ -541,7 +577,7 @@
// {
// cache.beginTransaction();
// cache.setLocal(true);
- //
+ //
// }
// finally
// {
@@ -632,7 +668,7 @@
/**
* Internal get child properties.
*
- * @param parentId String
+ * @param parentId String
* @param withValue boolean, if true only "full" Propeties can be returned
* @return List of PropertyData
*/
@@ -777,7 +813,7 @@
{
// add in CHILD_NODES
cache.put(makeChildFqn(childNodes, node.getParentIdentifier(), node.getQPath().getEntries()[node.getQPath()
- .getEntries().length - 1]), ITEM_ID, node.getIdentifier());
+ .getEntries().length - 1]), ITEM_ID, node.getIdentifier());
// if MODIFY and List present OR FORCE_MODIFY, then write
if ((modifyListsOfChild == ModifyChildOption.MODIFY && cache.getNode(makeChildListFqn(childNodesList, node
.getParentIdentifier())) != null)
@@ -798,7 +834,7 @@
{
// add in CHILD_NODES
cache.put(makeChildFqn(childNodes, node.getParentIdentifier(), node.getQPath().getEntries()[node.getQPath()
- .getEntries().length - 1]), ITEM_ID, node.getIdentifier());
+ .getEntries().length - 1]), ITEM_ID, node.getIdentifier());
// if MODIFY and List present OR FORCE_MODIFY, then write
if ((modifyListsOfChild == ModifyChildOption.MODIFY && cache.getNode(makeChildListFqn(childNodesList, node
.getParentIdentifier())) != null)
@@ -822,7 +858,7 @@
{
// add in CHILD_PROPS
cache.put(makeChildFqn(childProps, prop.getParentIdentifier(), prop.getQPath().getEntries()[prop.getQPath()
- .getEntries().length - 1]), ITEM_ID, prop.getIdentifier());
+ .getEntries().length - 1]), ITEM_ID, prop.getIdentifier());
// if MODIFY and List present OR FORCE_MODIFY, then write
if ((modifyListsOfChild == ModifyChildOption.MODIFY && cache.getNode(makeChildListFqn(childPropsList, prop
.getParentIdentifier())) != null)
@@ -844,7 +880,7 @@
// remove from CHILD_NODES of parent
cache.removeNode(makeChildFqn(childNodes, item.getParentIdentifier(), item.getQPath().getEntries()[item
- .getQPath().getEntries().length - 1]));
+ .getQPath().getEntries().length - 1]));
// remove from CHILD_NODES_LIST of parent
cache.removeFromList(makeChildListFqn(childNodesList, item.getParentIdentifier()), ITEM_LIST, item
@@ -867,7 +903,7 @@
{
// remove from CHILD_PROPS
cache.removeNode(makeChildFqn(childProps, item.getParentIdentifier(), item.getQPath().getEntries()[item
- .getQPath().getEntries().length - 1]));
+ .getQPath().getEntries().length - 1]));
// remove from CHILD_PROPS_LIST
cache.removeFromList(makeChildListFqn(childPropsList, item.getParentIdentifier()), ITEM_LIST, item
@@ -900,7 +936,7 @@
}
/**
- * Update Node hierachy in case of same-name siblings reorder.
+ * Update Node hierachy in case of same-name siblings reorder.
* Assumes the new (updated) nodes already putted in the cache. Previous name of updated nodes will be calculated
* and that node will be deleted (if has same id as the new node). Childs paths will be updated to a new node path.
*
@@ -912,7 +948,7 @@
// get previously cached NodeData and using its name remove child on the parent
Fqn<String> prevFqn =
makeChildFqn(childNodes, node.getParentIdentifier(), prevNode.getQPath().getEntries()[prevNode.getQPath()
- .getEntries().length - 1]);
+ .getEntries().length - 1]);
if (node.getIdentifier().equals(cache.get(prevFqn, ITEM_ID)))
{
// it's same-name siblings re-ordering, delete previous child
@@ -942,7 +978,7 @@
// get previously cached NodeData and using its name remove child on the parent
Fqn<String> prevFqn =
makeChildFqn(childNodes, node.getParentIdentifier(), prevNode.getQPath().getEntries()[prevNode.getQPath()
- .getEntries().length - 1]);
+ .getEntries().length - 1]);
if (node.getIdentifier().equals(cache.getFromBuffer(prevFqn, ITEM_ID)))
{
// it's same-name siblings re-ordering, delete previous child
@@ -978,15 +1014,15 @@
PropertyData prevProp = iter.next();
if (inheritACL
- && (prevProp.getQPath().getName().equals(Constants.EXO_PERMISSIONS) || prevProp.getQPath().getName()
- .equals(Constants.EXO_OWNER)))
+ && (prevProp.getQPath().getName().equals(Constants.EXO_PERMISSIONS) || prevProp.getQPath().getName()
+ .equals(Constants.EXO_OWNER)))
{
inheritACL = false;
}
// recreate with new path for child Props only
QPath newPath =
QPath
- .makeChildPath(rootPath, prevProp.getQPath().getEntries()[prevProp.getQPath().getEntries().length - 1]);
+ .makeChildPath(rootPath, prevProp.getQPath().getEntries()[prevProp.getQPath().getEntries().length - 1]);
TransientPropertyData newProp =
new TransientPropertyData(newPath, prevProp.getIdentifier(), prevProp.getPersistedVersion(), prevProp
.getType(), prevProp.getParentIdentifier(), prevProp.isMultiValued(), prevProp.getValues());
@@ -1000,7 +1036,7 @@
// recreate with new path for child Nodes only
QPath newPath =
QPath
- .makeChildPath(rootPath, prevNode.getQPath().getEntries()[prevNode.getQPath().getEntries().length - 1]);
+ .makeChildPath(rootPath, prevNode.getQPath().getEntries()[prevNode.getQPath().getEntries().length - 1]);
TransientNodeData newNode =
new TransientNodeData(newPath, prevNode.getIdentifier(), prevNode.getPersistedVersion(), prevNode
.getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(), prevNode
@@ -1035,7 +1071,7 @@
TransientNodeData newNode =
new TransientNodeData(prevNode.getQPath(), prevNode.getIdentifier(), prevNode.getPersistedVersion(),
prevNode.getPrimaryTypeName(), prevNode.getMixinTypeNames(), prevNode.getOrderNumber(), prevNode
- .getParentIdentifier(), acl);
+ .getParentIdentifier(), acl);
// update this node
cache.put(makeItemFqn(newNode.getIdentifier()), ITEM_DATA, newNode);
// update childs recursive
Modified: jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/jbosscache-data.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/jbosscache-data.xml 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/main/resources/conf/portal/jbosscache-data.xml 2010-04-15 15:06:48 UTC (rev 2284)
@@ -12,11 +12,11 @@
<!-- Eviction configuration -->
<eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.LRUAlgorithm"
+ <default algorithmClass="org.jboss.cache.eviction.ExpirationAlgorithm"
actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
eventQueueSize="1000000">
<property name="maxNodes" value="1000000" />
- <property name="timeToLive" value="120000" />
+ <property name="warnNoExpirationKey" value="false" />
</default>
</eviction>
</jbosscache>
\ No newline at end of file
Modified: jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/test/java/org/exoplatform/services/jcr/impl/dataflow/persistent/jbosscache/TestCompressedChangesBuffer.java 2010-04-15 15:06:48 UTC (rev 2284)
@@ -18,6 +18,8 @@
*/
package org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache;
+import java.util.HashMap;
+
import junit.framework.TestCase;
import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.ChangesContainer;
@@ -25,8 +27,6 @@
import org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.BufferedJBossCache.RemoveNodeContainer;
import org.jboss.cache.Fqn;
-import java.util.HashMap;
-
/**
* @author <a href="mailto:foo@bar.org">Foo Bar</a>
* @version $Id: exo-jboss-codetemplates.xml 34360 2009-07-22 23:58:59Z aheritier $
@@ -40,13 +40,13 @@
CompressedChangesBuffer buffer = new CompressedChangesBuffer();
ChangesContainer put1 =
new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"),
- new HashMap<String, String>(), null, buffer.getHistoryIndex(), false);
+ new HashMap<String, String>(), null, buffer.getHistoryIndex(), false, false, 0);
ChangesContainer put2 =
new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"),
- new HashMap<String, String>(), null, buffer.getHistoryIndex(), false);
+ new HashMap<String, String>(), null, buffer.getHistoryIndex(), false, false, 0);
ChangesContainer rm1 =
new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"), null, buffer
- .getHistoryIndex(), false);
+ .getHistoryIndex(), false, false, 0);
buffer.add(put1);
buffer.add(put2);
assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
@@ -67,17 +67,17 @@
CompressedChangesBuffer buffer = new CompressedChangesBuffer();
ChangesContainer put1 =
new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"),
- new HashMap<String, String>(), null, buffer.getHistoryIndex(), false);
+ new HashMap<String, String>(), null, buffer.getHistoryIndex(), false, false, 0);
ChangesContainer put2 =
new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"),
- new HashMap<String, String>(), null, buffer.getHistoryIndex(), false);
+ new HashMap<String, String>(), null, buffer.getHistoryIndex(), false, false, 0);
ChangesContainer rm1 =
new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b/c"), null,
- buffer.getHistoryIndex(), false);
+ buffer.getHistoryIndex(), false, false, 0);
ChangesContainer rm2 =
new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES + "/b"), null, buffer
- .getHistoryIndex(), false);
+ .getHistoryIndex(), false, false, 0);
buffer.add(put1);
buffer.add(put2);
assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
@@ -97,11 +97,11 @@
CompressedChangesBuffer buffer = new CompressedChangesBuffer();
ChangesContainer put1 =
new PutObjectContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST + "/b"),
- new HashMap<String, String>(), null, buffer.getHistoryIndex(), false);
+ new HashMap<String, String>(), null, buffer.getHistoryIndex(), false, false, 0);
ChangesContainer rm1 =
new RemoveNodeContainer(Fqn.fromString("/" + JBossCacheWorkspaceStorageCache.CHILD_NODES_LIST + "/b"), null,
- buffer.getHistoryIndex(), false);
+ buffer.getHistoryIndex(), false, false, 0);
buffer.add(put1);
assertTrue("List MUST contain put container", buffer.getSortedList().contains(put1));
buffer.add(rm1);
Modified: jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-config.xml
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-config.xml 2010-04-15 13:54:14 UTC (rev 2283)
+++ jcr/trunk/exo.jcr.component.core/src/test/resources/conf/standalone/test-jbosscache-config.xml 2010-04-15 15:06:48 UTC (rev 2284)
@@ -11,9 +11,10 @@
<!-- Eviction configuration -->
<eviction wakeUpInterval="5000">
- <default algorithmClass="org.jboss.cache.eviction.FIFOAlgorithm" actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy" eventQueueSize="1000000">
- <property name="maxNodes" value="5000" />
- <property name="minTimeToLive" value="60000" />
+ <default algorithmClass="org.jboss.cache.eviction.ExpirationAlgorithm" actionPolicyClass="org.exoplatform.services.jcr.impl.dataflow.persistent.jbosscache.ParentNodeEvictionActionPolicy"
+ eventQueueSize="1000000">
+ <property name="maxNodes" value="50000" />
+ <property name="warnNoExpirationKey" value="false" />
</default>
</eviction>
16 years, 1 month
exo-jcr SVN: r2283 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache.
by do-not-reply@jboss.org
Author: sergiykarpenko
Date: 2010-04-15 09:54:14 -0400 (Thu, 15 Apr 2010)
New Revision: 2283
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
Log:
EXOJCR-639: test to empty lock cache added in getLockData methods
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2010-04-15 12:04:21 UTC (rev 2282)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/lock/jbosscache/CacheableLockManagerImpl.java 2010-04-15 13:54:14 UTC (rev 2283)
@@ -443,27 +443,11 @@
return lockTimeOut;
}
- private final LockActionNonTxAware<Integer, Object> getNumLocks = new LockActionNonTxAware<Integer, Object>()
- {
- public Integer execute(Object arg)
- {
- return cache.getChildrenNames(lockRoot).size();
- }
- };
-
@Managed
@ManagedDescription("The number of active locks")
public int getNumLocks()
{
- try
- {
- return executeLockActionNonTxAware(getNumLocks, null);
- }
- catch (LockException e)
- {
- // ignore me will never occur
- }
- return -1;
+ return ((CacheSPI<Serializable, Object>)cache).getNumberOfNodes() - 1;
}
/**
@@ -886,8 +870,11 @@
*/
public LockData getExactNodeOrCloseParentLock(NodeData node) throws RepositoryException
{
- if (node == null)
+
+ if (node == null || getNumLocks() == 0)
+ {
return null;
+ }
LockData retval = null;
retval = getLockDataById(node.getIdentifier());
if (retval == null)
@@ -906,12 +893,12 @@
*/
public LockData getExactNodeLock(NodeData node) throws RepositoryException
{
- LockData retval = null;
- if (node != null)
+ if (node == null || getNumLocks() == 0)
{
- retval = getLockDataById(node.getIdentifier());
+ return null;
}
- return retval;
+
+ return getLockDataById(node.getIdentifier());
}
/**
@@ -919,6 +906,11 @@
*/
public LockData getClosedChild(NodeData node) throws RepositoryException
{
+
+ if (node == null || getNumLocks() == 0)
+ {
+ return null;
+ }
LockData retval = null;
List<NodeData> childData = dataManager.getChildNodesData(node);
16 years, 1 month
exo-jcr SVN: r2282 - jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-04-15 08:04:21 -0400 (Thu, 15 Apr 2010)
New Revision: 2282
Modified:
jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java
Log:
EXOJCR-667: acquire spoolFile in StreamPersistedValueData
Modified: jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java
===================================================================
--- jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java 2010-04-15 11:52:15 UTC (rev 2281)
+++ jcr/trunk/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java 2010-04-15 12:04:21 UTC (rev 2282)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.dataflow.persistent;
import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
+import org.exoplatform.services.jcr.impl.util.io.SpoolFile;
import org.exoplatform.services.jcr.impl.util.io.SwapFile;
import java.io.File;
@@ -58,8 +59,9 @@
*
* @param orderNumber int
* @param tempFile File
+ * @throws FileNotFoundException
*/
- public StreamPersistedValueData(int orderNumber, File tempFile)
+ public StreamPersistedValueData(int orderNumber, File tempFile) throws FileNotFoundException
{
this(orderNumber, tempFile, null);
}
@@ -87,12 +89,18 @@
*
* @param orderNumber int
* @param tempFile File
+ * @throws FileNotFoundException
*/
- public StreamPersistedValueData(int orderNumber, File tempFile, File destFile)
+ public StreamPersistedValueData(int orderNumber, File tempFile, File destFile) throws FileNotFoundException
{
super(orderNumber, destFile);
this.tempFile = tempFile;
this.stream = null;
+
+ if (tempFile != null && tempFile instanceof SpoolFile)
+ {
+ ((SpoolFile)tempFile).acquire(this);
+ }
}
/**
@@ -224,6 +232,11 @@
{
((SwapFile)file).release(this);
}
+
+ if (tempFile != null && tempFile instanceof SpoolFile)
+ {
+ ((SpoolFile)tempFile).release(this);
+ }
}
finally
{
16 years, 1 month
exo-jcr SVN: r2281 - jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-04-15 07:52:15 -0400 (Thu, 15 Apr 2010)
New Revision: 2281
Modified:
jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java
Log:
EXOJCR-667: acquire spoolFile in StreamPersistedValueData
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java 2010-04-15 08:45:40 UTC (rev 2280)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/dataflow/persistent/StreamPersistedValueData.java 2010-04-15 11:52:15 UTC (rev 2281)
@@ -19,6 +19,7 @@
package org.exoplatform.services.jcr.impl.dataflow.persistent;
import org.exoplatform.services.jcr.impl.dataflow.TransientValueData;
+import org.exoplatform.services.jcr.impl.util.io.SpoolFile;
import org.exoplatform.services.jcr.impl.util.io.SwapFile;
import java.io.File;
@@ -58,8 +59,9 @@
*
* @param orderNumber int
* @param tempFile File
+ * @throws FileNotFoundException
*/
- public StreamPersistedValueData(int orderNumber, File tempFile)
+ public StreamPersistedValueData(int orderNumber, File tempFile) throws FileNotFoundException
{
this(orderNumber, tempFile, null);
}
@@ -87,12 +89,18 @@
*
* @param orderNumber int
* @param tempFile File
+ * @throws FileNotFoundException
*/
- public StreamPersistedValueData(int orderNumber, File tempFile, File destFile)
+ public StreamPersistedValueData(int orderNumber, File tempFile, File destFile) throws FileNotFoundException
{
super(orderNumber, destFile);
this.tempFile = tempFile;
this.stream = null;
+
+ if (tempFile != null && tempFile instanceof SpoolFile)
+ {
+ ((SpoolFile)tempFile).acquire(this);
+ }
}
/**
@@ -224,6 +232,11 @@
{
((SwapFile)file).release(this);
}
+
+ if (tempFile != null && tempFile instanceof SpoolFile)
+ {
+ ((SpoolFile)tempFile).release(this);
+ }
}
finally
{
16 years, 1 month
exo-jcr SVN: r2280 - jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core.
by do-not-reply@jboss.org
Author: tolusha
Date: 2010-04-15 04:45:40 -0400 (Thu, 15 Apr 2010)
New Revision: 2280
Modified:
jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
Log:
EXOJCR-420: ItemReferencePool implemented with WeakHashMap<String, WeakReference<ItemImpl>>
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-04-14 11:49:35 UTC (rev 2279)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/java/org/exoplatform/services/jcr/impl/core/SessionDataManager.java 2010-04-15 08:45:40 UTC (rev 2280)
@@ -47,6 +47,7 @@
import org.exoplatform.services.log.Log;
import java.io.IOException;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -924,22 +925,25 @@
Collection<ItemImpl> pooledItems = itemsPool.getAll();
for (ItemImpl item : pooledItems)
{
- if (item.getInternalPath().isDescendantOf(fromItem.getQPath())
- || item.getInternalPath().equals(fromItem.getQPath()))
+ if (item != null)
{
- ItemData ri = getItemData(item.getInternalIdentifier());
- if (ri != null)
+ if (item.getInternalPath().isDescendantOf(fromItem.getQPath())
+ || item.getInternalPath().equals(fromItem.getQPath()))
{
- itemsPool.reload(ri);
+ ItemData ri = getItemData(item.getInternalIdentifier());
+ if (ri != null)
+ {
+ itemsPool.reload(ri);
+ }
+ else
+ {
+ // the item is invalid, case of version restore - the item from non
+ // current version
+ item.invalidate();
+ }
+
+ invalidated.add(item);
}
- else
- {
- // the item is invalid, case of version restore - the item from non
- // current version
- item.invalidate();
- }
-
- invalidated.add(item);
}
}
}
@@ -1141,7 +1145,7 @@
// We can't remove this VH now.
return;
} // else -- if we has a references in workspace where the VH is being
- // deleted we can remove VH now.
+ // deleted we can remove VH now.
}
}
finally
@@ -1959,25 +1963,31 @@
protected final class ItemReferencePool
{
- private WeakHashMap<String, ItemImpl> items;
+ private WeakHashMap<String, WeakReference<ItemImpl>> items;
- //private WeakHashMap<String, ItemData> datas;
-
ItemReferencePool()
{
- items = new WeakHashMap<String, ItemImpl>();
- //datas = new WeakHashMap<String, ItemData>();
+ items = new WeakHashMap<String, WeakReference<ItemImpl>>();
}
ItemImpl remove(String identifier)
{
- //datas.remove(identifier);
- return items.remove(identifier);
+ WeakReference<ItemImpl> weakItem = items.remove(identifier);
+ return weakItem != null ? weakItem.get() : null;
}
Collection<ItemImpl> getAll()
{
- return items.values();
+ List<ItemImpl> list = new ArrayList<ItemImpl>();
+ for (WeakReference<ItemImpl> weakItem : items.values())
+ {
+ if (weakItem != null)
+ {
+ list.add(weakItem.get());
+ }
+ }
+
+ return list;
}
int size()
@@ -2018,23 +2028,20 @@
ItemImpl get(final ItemData newData, final NodeData parent) throws RepositoryException
{
final String identifier = newData.getIdentifier();
- ItemImpl item = items.get(identifier);
+
+ WeakReference<ItemImpl> weakItem = items.get(identifier);
+ ItemImpl item = weakItem != null ? weakItem.get() : null;
+
if (item != null)
{
item.loadData(newData, parent);
}
else
{
- // ItemData preloaded = datas.remove(identifier);
- // item =
- // itemFactory.createItem(preloaded != null
- // && preloaded.getPersistedVersion() > newData.getPersistedVersion() ? preloaded : newData);
- //datas.remove(identifier);
-
// TODO if (changesLog.get) check if DELETED!!
item = itemFactory.createItem(newData, parent);
- items.put(item.getInternalIdentifier(), item);
+ items.put(item.getInternalIdentifier(), new WeakReference<ItemImpl>(item));
}
return item;
}
@@ -2054,16 +2061,14 @@
ItemImpl reload(String identifier, ItemData newItemData) throws RepositoryException
{
- ItemImpl item = items.get(identifier);
+ WeakReference<ItemImpl> weakItem = items.get(identifier);
+ ItemImpl item = weakItem != null ? weakItem.get() : null;
+
if (item != null)
{
item.loadData(newItemData);
return item;
}
- // else
- // {
- // datas.put(identifier, newItemData);
- // }
return null;
}
@@ -2081,10 +2086,13 @@
for (NodeImpl node : nodes)
{
String id = node.getInternalIdentifier();
- NodeImpl pooled = (NodeImpl)items.get(id);
+
+ WeakReference<ItemImpl> weakItem = items.get(id);
+ NodeImpl pooled = weakItem != null ? (NodeImpl)weakItem.get() : null;
+
if (pooled == null)
{
- items.put(id, node);
+ items.put(id, new WeakReference<ItemImpl>(node));
children.add(node);
}
else
@@ -2110,10 +2118,13 @@
for (PropertyImpl prop : props)
{
String id = prop.getInternalIdentifier();
- PropertyImpl pooled = (PropertyImpl)items.get(id);
+
+ WeakReference<ItemImpl> weakItem = items.get(id);
+ PropertyImpl pooled = weakItem != null ? (PropertyImpl)weakItem.get() : null;
+
if (pooled == null)
{
- items.put(id, prop);
+ items.put(id, new WeakReference<ItemImpl>(prop));
children.add(prop);
}
else
@@ -2135,12 +2146,15 @@
{
List<ItemImpl> desc = new ArrayList<ItemImpl>();
- Collection<ItemImpl> snapshort = items.values();
+ Collection<ItemImpl> snapshort = getAll();
for (ItemImpl pitem : snapshort)
{
- if (pitem.getData().getQPath().isDescendantOf(parentPath))
+ if (pitem != null)
{
- desc.add(pitem);
+ if (pitem.getData().getQPath().isDescendantOf(parentPath))
+ {
+ desc.add(pitem);
+ }
}
}
@@ -2152,11 +2166,14 @@
String str = "Items Pool: \n";
try
{
- for (ItemImpl item : items.values())
+ for (ItemImpl item : getAll())
{
- str +=
- (item.isNode() ? "Node\t\t" : "Property\t") + "\t" + item.isValid() + "\t" + item.isNew() + "\t"
- + item.getInternalIdentifier() + "\t" + item.getPath() + "\n";
+ if (item != null)
+ {
+ str +=
+ (item.isNode() ? "Node\t\t" : "Property\t") + "\t" + item.isValid() + "\t" + item.isNew() + "\t"
+ + item.getInternalIdentifier() + "\t" + item.getPath() + "\n";
+ }
}
}
catch (Exception e)
16 years, 1 month
exo-jcr SVN: r2279 - jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage.
by do-not-reply@jboss.org
Author: dkatayev
Date: 2010-04-14 07:49:35 -0400 (Wed, 14 Apr 2010)
New Revision: 2279
Modified:
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2v8.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.derby.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.h2.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ingres.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mssql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora-analyze.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.pgsql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sybase.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2v8.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.derby.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.h2.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ingres.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mssql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora-analyze.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.pgsql.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sql
jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sybase.sql
Log:
EXOJCR-606 ID column removed from JCR_xVALUE table in all dialects
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(2G) NOT LOGGED COMPACT,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROP FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2v8.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2v8.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.db2v8.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_P ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(2G) NOT LOGGED COMPACT,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROP FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_P ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.derby.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.derby.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.derby.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(56M),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.h2.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.h2.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.h2.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -1,29 +1,30 @@
CREATE TABLE JCR_MCONTAINER(
- VERSION VARCHAR(96) NOT NULL,
- CONSTRAINT JCR_PK_MCONTAINER PRIMARY KEY(VERSION)
+ VERSION VARCHAR(96) NOT NULL,
+ CONSTRAINT JCR_PK_MCONTAINER PRIMARY KEY(VERSION)
);
CREATE TABLE JCR_MITEM(
- ID VARCHAR(96) NOT NULL,
- PARENT_ID VARCHAR(96) NOT NULL,
- NAME VARCHAR(512) NOT NULL,
- VERSION INTEGER NOT NULL,
- I_CLASS INTEGER NOT NULL,
- I_INDEX INTEGER NOT NULL,
- N_ORDER_NUM INTEGER,
- P_TYPE INTEGER,
- P_MULTIVALUED BOOLEAN,
- CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID),
- CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID)
+ ID VARCHAR(96) NOT NULL,
+ PARENT_ID VARCHAR(96) NOT NULL,
+ NAME VARCHAR(512) NOT NULL,
+ VERSION INTEGER NOT NULL,
+ I_CLASS INTEGER NOT NULL,
+ I_INDEX INTEGER NOT NULL,
+ N_ORDER_NUM INTEGER,
+ P_TYPE INTEGER,
+ P_MULTIVALUED BOOLEAN,
+ CONSTRAINT JCR_PK_MITEM PRIMARY KEY(ID),
+ CONSTRAINT JCR_FK_MITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT ON JCR_MITEM(PARENT_ID, NAME, I_INDEX, I_CLASS, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- DATA VARBINARY(65535),
- ORDER_NUM INTEGER NOT NULL,
- PROPERTY_ID VARCHAR(96) NOT NULL,
- STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
+ DATA VARBINARY(65535),
+ ORDER_NUM INTEGER NOT NULL,
+ PROPERTY_ID VARCHAR(96) NOT NULL,
+ STORAGE_DESC VARCHAR(512),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
+ CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
CREATE TABLE JCR_MREF(
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ingres.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ingres.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ingres.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -18,14 +18,12 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT ON JCR_MITEM(PARENT_ID, NAME, I_INDEX, I_CLASS, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
-CREATE SEQUENCE JCR_MVALUE_SEQ;
CREATE TABLE JCR_MVALUE(
- ID BIGINT NOT NULL WITH DEFAULT NEXT VALUE FOR JCR_MVALUE_SEQ,
DATA LONG BYTE,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mssql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mssql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mssql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT IDENTITY(1,1) NOT NULL,
DATA VARBINARY(MAX),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql-utf8.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_MITEM_PARENT_N_ORDER_NUM ON JCR_MITEM(I_CLASS, PARENT_ID, N_ORDER_NUM, ID);
CREATE TABLE JCR_MVALUE(
- ID SERIAL NOT NULL,
DATA LONGBLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(56) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.mysql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_MITEM_PARENT_N_ORDER_NUM ON JCR_MITEM(I_CLASS, PARENT_ID, N_ORDER_NUM, ID);
CREATE TABLE JCR_MVALUE(
- ID SERIAL NOT NULL,
DATA LONGBLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora-analyze.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora-analyze.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora-analyze.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -27,26 +27,14 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC)
/
CREATE TABLE JCR_MVALUE(
- ID INTEGER NOT NULL,
DATA BLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
)
/
-CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM)
-/
-CREATE sequence JCR_MVALUE_SEQ
-/
-CREATE OR REPLACE trigger BI_JCR_MVALUE
- before insert on JCR_MVALUE
- for each row
-begin
- SELECT JCR_MVALUE_SEQ.nextval INTO :NEW.ID FROM dual;
-end;
-/
CREATE TABLE JCR_MREF(
NODE_ID VARCHAR(96) NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.ora.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -27,26 +27,14 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC)
/
CREATE TABLE JCR_MVALUE(
- ID INTEGER NOT NULL,
DATA BLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
)
/
-CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM)
-/
-CREATE sequence JCR_MVALUE_SEQ
-/
-CREATE OR REPLACE trigger BI_JCR_MVALUE
- before insert on JCR_MVALUE
- for each row
-begin
- SELECT JCR_MVALUE_SEQ.nextval INTO :NEW.ID FROM dual;
-end;
-/
CREATE TABLE JCR_MREF(
NODE_ID VARCHAR(96) NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.pgsql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.pgsql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.pgsql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION);
CREATE TABLE JCR_MVALUE(
- ID BIGSERIAL NOT NULL,
DATA BYTEA,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA VARBINARY(65535),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sybase.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sybase.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-mjdbc.sybase.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -19,12 +19,11 @@
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_NAME ON JCR_MITEM(I_CLASS, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_MITEM_PARENT_ID ON JCR_MITEM(I_CLASS, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_MVALUE(
- ID BIGINT IDENTITY NOT NULL,
DATA IMAGE NULL,
ORDER_NUM INT NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512) NULL,
- CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_MVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_MVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_MITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_MVALUE_PROPERTY ON JCR_MVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -21,12 +21,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_SITEM_PARENT_FK ON JCR_SITEM(PARENT_ID);
CREATE TABLE JCR_SVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(2G) NOT LOGGED COMPACT,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROP FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2v8.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2v8.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.db2v8.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -21,12 +21,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_SITEM_PFK ON JCR_SITEM(PARENT_ID);
CREATE TABLE JCR_SVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(2G) NOT LOGGED COMPACT,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROP FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_P ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.derby.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.derby.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.derby.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_SVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA BLOB(56M),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.h2.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.h2.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.h2.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -1,30 +1,31 @@
CREATE TABLE JCR_SCONTAINER(
VERSION VARCHAR(96) NOT NULL,
- CONSTRAINT JCR_PK_SCONTAINER PRIMARY KEY(VERSION)
+ CONSTRAINT JCR_PK_SCONTAINER PRIMARY KEY(VERSION)
);
CREATE TABLE JCR_SITEM(
- ID VARCHAR(96) NOT NULL,
- PARENT_ID VARCHAR(96) NOT NULL,
- NAME VARCHAR(512) NOT NULL,
- VERSION INTEGER NOT NULL,
- CONTAINER_NAME VARCHAR(96) NOT NULL,
- I_CLASS INTEGER NOT NULL,
- I_INDEX INTEGER NOT NULL,
- N_ORDER_NUM INTEGER,
- P_TYPE INTEGER,
- P_MULTIVALUED INTEGER,
- CONSTRAINT JCR_PK_SITEM PRIMARY KEY(ID),
- CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID)
+ ID VARCHAR(96) NOT NULL,
+ PARENT_ID VARCHAR(96) NOT NULL,
+ NAME VARCHAR(512) NOT NULL,
+ VERSION INTEGER NOT NULL,
+ CONTAINER_NAME VARCHAR(96) NOT NULL,
+ I_CLASS INTEGER NOT NULL,
+ I_INDEX INTEGER NOT NULL,
+ N_ORDER_NUM INTEGER,
+ P_TYPE INTEGER,
+ P_MULTIVALUED INTEGER,
+ CONSTRAINT JCR_PK_SITEM PRIMARY KEY(ID),
+ CONSTRAINT JCR_FK_SITEM_PARENT FOREIGN KEY(PARENT_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT ON JCR_SITEM(CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, I_CLASS, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_SVALUE(
- DATA VARBINARY(65535),
- ORDER_NUM INTEGER NOT NULL,
- PROPERTY_ID VARCHAR(96) NOT NULL,
- STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
+ DATA VARBINARY(65535),
+ ORDER_NUM INTEGER NOT NULL,
+ PROPERTY_ID VARCHAR(96) NOT NULL,
+ STORAGE_DESC VARCHAR(512),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
+ CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
CREATE TABLE JCR_SREF(
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ingres.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ingres.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ingres.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,14 +20,12 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION);
CREATE INDEX JCR_IDX_SITEM_PARENT_FK ON JCR_SITEM(PARENT_ID);
-CREATE SEQUENCE JCR_SVALUE_SEQ;
CREATE TABLE JCR_SVALUE(
- ID BIGINT NOT NULL WITH DEFAULT NEXT VALUE FOR JCR_SVALUE_SEQ,
DATA LONG BYTE,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mssql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mssql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mssql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_SVALUE(
- ID BIGINT IDENTITY(1,1) NOT NULL,
DATA VARBINARY(MAX),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql-utf8.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -21,12 +21,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_SITEM_PARENT_N_ORDER_NUM ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, N_ORDER_NUM, ID);
CREATE TABLE JCR_SVALUE(
- ID SERIAL NOT NULL,
DATA LONGBLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(56) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.mysql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -21,12 +21,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE INDEX JCR_IDX_SITEM_PARENT_N_ORDER_NUM ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, N_ORDER_NUM, ID);
CREATE TABLE JCR_SVALUE(
- ID SERIAL NOT NULL,
DATA LONGBLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora-analyze.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora-analyze.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora-analyze.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -28,26 +28,14 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC)
/
CREATE TABLE JCR_SVALUE(
- ID INTEGER NOT NULL,
DATA BLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
)
/
-CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM)
-/
-CREATE sequence JCR_SVALUE_SEQ
-/
-CREATE OR REPLACE trigger BI_JCR_SVALUE
- before insert on JCR_SVALUE
- for each row
-begin
- SELECT JCR_SVALUE_SEQ.nextval INTO :NEW.ID FROM dual;
-end;
-/
CREATE TABLE JCR_SREF(
NODE_ID VARCHAR(96) NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.ora.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -28,26 +28,14 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC)
/
CREATE TABLE JCR_SVALUE(
- ID INTEGER NOT NULL,
DATA BLOB,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
)
/
-CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM)
-/
-CREATE sequence JCR_SVALUE_SEQ
-/
-CREATE OR REPLACE trigger BI_JCR_SVALUE
- before insert on JCR_SVALUE
- for each row
-begin
- SELECT JCR_SVALUE_SEQ.nextval INTO :NEW.ID FROM dual;
-end;
-/
CREATE TABLE JCR_SREF(
NODE_ID VARCHAR(96) NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.pgsql.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.pgsql.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.pgsql.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -21,12 +21,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION);
CREATE INDEX JCR_IDX_SITEM_PARENT_FK ON JCR_SITEM(PARENT_ID);
CREATE TABLE JCR_SVALUE(
- ID BIGSERIAL NOT NULL,
DATA BYTEA,
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_SVALUE(
- ID BIGINT generated by default as identity (START WITH 2, INCREMENT BY 1) NOT NULL,
DATA VARBINARY(65535),
ORDER_NUM INTEGER NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512),
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
Modified: jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sybase.sql
===================================================================
--- jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sybase.sql 2010-04-13 15:05:36 UTC (rev 2278)
+++ jcr/branches/1.14.x/exo.jcr.component.core/src/main/resources/conf/storage/jcr-sjdbc.sybase.sql 2010-04-14 11:49:35 UTC (rev 2279)
@@ -20,12 +20,11 @@
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_NAME ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, NAME, I_INDEX, VERSION DESC);
CREATE UNIQUE INDEX JCR_IDX_SITEM_PARENT_ID ON JCR_SITEM(I_CLASS, CONTAINER_NAME, PARENT_ID, ID, VERSION DESC);
CREATE TABLE JCR_SVALUE(
- ID BIGINT IDENTITY NOT NULL,
DATA IMAGE NULL,
ORDER_NUM INT NOT NULL,
PROPERTY_ID VARCHAR(96) NOT NULL,
STORAGE_DESC VARCHAR(512) NULL,
- CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(ID),
+ CONSTRAINT JCR_PK_SVALUE PRIMARY KEY(PROPERTY_ID, ORDER_NUM),
CONSTRAINT JCR_FK_SVALUE_PROPERTY FOREIGN KEY(PROPERTY_ID) REFERENCES JCR_SITEM(ID)
);
CREATE UNIQUE INDEX JCR_IDX_SVALUE_PROPERTY ON JCR_SVALUE(PROPERTY_ID, ORDER_NUM);
16 years, 1 month
exo-jcr SVN: r2278 - in ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest: impl/resource and 1 other directories.
by do-not-reply@jboss.org
Author: yakimenko
Date: 2010-04-13 11:05:36 -0400 (Tue, 13 Apr 2010)
New Revision: 2278
Modified:
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/RequestDispatcher.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ResourceBinder.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java
ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/resource/AbstractResourceDescriptor.java
Log:
EXOJCR-663: was removed finalization of classes RequestDispatcher and ResourceBinder. Was added two methods getProperties and getProperty for getting properties in AbstractResourceDescriptor and in AbstractResourceDescriptorImpl.
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/RequestDispatcher.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/RequestDispatcher.java 2010-04-13 13:10:14 UTC (rev 2277)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/RequestDispatcher.java 2010-04-13 15:05:36 UTC (rev 2278)
@@ -69,7 +69,7 @@
/**
* See {@link ResourceBinder}.
*/
- private final ResourceBinder resourceBinder;
+ protected final ResourceBinder resourceBinder;
/**
* Constructs new instance of RequestDispatcher.
@@ -93,45 +93,9 @@
String requestPath = context.getPath(false);
List<String> parameterValues = context.getParameterValues();
- ObjectFactory<AbstractResourceDescriptor> resourceFactory = null;
+ // Get root resource
+ ObjectFactory<AbstractResourceDescriptor> resourceFactory = getRootResourse(parameterValues, requestPath);
- List<ObjectFactory<AbstractResourceDescriptor>> resources = resourceBinder.getResources();
- // be sure no new entries added
- synchronized (resources)
- {
- for (ObjectFactory<AbstractResourceDescriptor> rc : resources)
- {
- if (rc.getObjectModel().getUriPattern().match(requestPath, parameterValues))
- {
- // all times will at least 1
- int len = parameterValues.size();
- // If capturing group contains last element and this element is
- // neither null nor '/' then ResourceClass must contains at least one
- // sub-resource method or sub-resource locator.
- if (parameterValues.get(len - 1) != null && !parameterValues.get(len - 1).equals("/"))
- {
- int subresnum =
- rc.getObjectModel().getSubResourceMethods().size()
- + rc.getObjectModel().getSubResourceLocators().size();
- if (subresnum == 0)
- continue;
- }
- resourceFactory = rc;
- break;
- }
- }
-
- }
-
- if (resourceFactory == null)
- {
- if (LOG.isDebugEnabled())
- LOG.debug("Root resource not found for " + requestPath);
-
- // Stop here, there is no matched root resource
- throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build());
- }
-
// Take the tail of the request path, the tail will be requested path
// for lower resources, e. g. ResourceClass -> Sub-resource method/locator
String newRequestPath = getPathTail(parameterValues);
@@ -563,5 +527,55 @@
return !locators.isEmpty();
}
+
+ /**
+ * Get root resource
+ *
+ * @param parameterValues is taken from context
+ * @param requestPath is taken from context
+ * @return root resource
+ */
+ protected ObjectFactory<AbstractResourceDescriptor> getRootResourse(List<String> parameterValues, String requestPath)
+ {
+ ObjectFactory<AbstractResourceDescriptor> resourceFactory = null;
+ List<ObjectFactory<AbstractResourceDescriptor>> resources = resourceBinder.getResources();
+ // be sure no new entries added
+ synchronized (resources)
+ {
+ for (ObjectFactory<AbstractResourceDescriptor> rc : resources)
+ {
+ if (rc.getObjectModel().getUriPattern().match(requestPath, parameterValues))
+ {
+ // all times will at least 1
+ int len = parameterValues.size();
+ // If capturing group contains last element and this element is
+ // neither null nor '/' then ResourceClass must contains at least one
+ // sub-resource method or sub-resource locator.
+ if (parameterValues.get(len - 1) != null && !parameterValues.get(len - 1).equals("/"))
+ {
+ int subresnum =
+ rc.getObjectModel().getSubResourceMethods().size()
+ + rc.getObjectModel().getSubResourceLocators().size();
+ if (subresnum == 0)
+ continue;
+ }
+ resourceFactory = rc;
+ break;
+ }
+ }
+ }
+
+ if (resourceFactory == null)
+ {
+
+ if (LOG.isDebugEnabled())
+ LOG.debug("Root resource not found for " + requestPath);
+
+ // Stop here, there is no matched root resource
+ throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).build());
+ }
+ else
+ return resourceFactory;
+ }
}
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ResourceBinder.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ResourceBinder.java 2010-04-13 13:10:14 UTC (rev 2277)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/ResourceBinder.java 2010-04-13 15:05:36 UTC (rev 2278)
@@ -60,7 +60,7 @@
* @author <a href="mailto:andrew00x@gmail.com">Andrey Parfonov</a>
* @version $Id: $
*/
-public final class ResourceBinder
+public class ResourceBinder
{
/**
@@ -68,7 +68,7 @@
*/
private static final Log LOG = ExoLogger.getLogger("exo.ws.rest.core.ResourceBinder");
- private static final Comparator<ObjectFactory<AbstractResourceDescriptor>> RESOURCE_COMPARATOR =
+ protected static final Comparator<ObjectFactory<AbstractResourceDescriptor>> RESOURCE_COMPARATOR =
new ResourceComparator();
/**
@@ -97,20 +97,20 @@
/**
* Root resource descriptors.
*/
- private final List<ObjectFactory<AbstractResourceDescriptor>> rootResources =
+ protected final List<ObjectFactory<AbstractResourceDescriptor>> rootResources =
new ArrayList<ObjectFactory<AbstractResourceDescriptor>>();
/**
* Validator.
*/
- private final ResourceDescriptorVisitor rdv = ResourceDescriptorValidator.getInstance();
+ protected final ResourceDescriptorVisitor rdv = ResourceDescriptorValidator.getInstance();
- private int size = 0;
+ protected int size = 0;
/**
* @see RuntimeDelegate
*/
- private final RuntimeDelegate rd;
+ protected final RuntimeDelegate rd;
/**
* @param containerContext eXo container context
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java 2010-04-13 13:10:14 UTC (rev 2277)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/impl/resource/AbstractResourceDescriptorImpl.java 2010-04-13 15:05:36 UTC (rev 2278)
@@ -18,6 +18,7 @@
*/
package org.exoplatform.services.rest.impl.resource;
+import org.exoplatform.services.rest.impl.MultivaluedMapImpl;
import org.exoplatform.services.log.ExoLogger;
import org.exoplatform.services.log.Log;
import org.exoplatform.services.rest.ComponentLifecycleScope;
@@ -66,6 +67,7 @@
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
/**
* @author <a href="mailto:andrew00x@gmail.com">Andrey Parfonov</a>
@@ -126,6 +128,11 @@
* Resource class fields.
*/
private final List<FieldInjector> fields;
+
+ /**
+ * Optional data
+ */
+ private MultivaluedMap<String, String> properties;
/**
* Constructs new instance of AbstractResourceDescriptor without path
@@ -223,6 +230,26 @@
/**
* {@inheritDoc}
*/
+ public MultivaluedMap<String, String> getProperties()
+ {
+ if (properties == null)
+ properties = new MultivaluedMapImpl();
+ return properties;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public List<String> getProperty(String key)
+ {
+ if (properties != null)
+ return properties.get(key);
+ return null;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
public void accept(ResourceDescriptorVisitor visitor)
{
visitor.visitAbstractResourceDescriptor(this);
Modified: ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/resource/AbstractResourceDescriptor.java
===================================================================
--- ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/resource/AbstractResourceDescriptor.java 2010-04-13 13:10:14 UTC (rev 2277)
+++ ws/trunk/exo.ws.rest.core/src/main/java/org/exoplatform/services/rest/resource/AbstractResourceDescriptor.java 2010-04-13 15:05:36 UTC (rev 2278)
@@ -22,6 +22,10 @@
import org.exoplatform.services.rest.impl.resource.PathValue;
import org.exoplatform.services.rest.uri.UriPattern;
+import java.util.List;
+
+import javax.ws.rs.core.MultivaluedMap;
+
/**
* Describe Resource Class or Root Resource Class. Resource Class is any Java
* class that uses JAX-RS annotations to implement corresponding Web resource.
@@ -54,6 +58,21 @@
* @return sub-resource methods
*/
SubResourceMethodMap getSubResourceMethods();
+
+ /**
+ * Optional data
+ *
+ * @param key
+ * @return property by key
+ */
+ List<String> getProperty(String key);
+
+ /**
+ * Optional data
+ *
+ * @return all properties
+ */
+ MultivaluedMap<String,String> getProperties();
/**
* @return See {@link UriPattern}
16 years, 1 month