You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by md...@apache.org on 2011/09/27 18:37:43 UTC
svn commit: r1176462 - in /jackrabbit/sandbox/jackrabbit-mk:
jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/
jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/
jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/...
Author: mduerig
Date: Tue Sep 27 16:37:42 2011
New Revision: 1176462
URL: http://svn.apache.org/viewvc?rev=1176462&view=rev
Log:
Microkernel based Jackrabbit prototype (WIP)
refactor: move getItemInfoCache method from RepositoryService to SessionInfo
Modified:
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/benchmark/ReadPerformanceTest.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractReadableRepositoryService.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/SessionInfoImpl.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/SessionInfoLogger.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/SessionInfo.java
jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/main/java/org/apache/jackrabbit/jcr2spi/WorkspaceManager.java Tue Sep 27 16:37:42 2011
@@ -143,7 +143,7 @@ public final class WorkspaceManager impl
private volatile Subscription subscription;
/**
- * A cache for item infos as supplied by {@link RepositoryService#getItemInfoCache(SessionInfo)}
+ * A cache for item infos as supplied by {@link SessionInfo#getItemInfoCache()}
*/
private ItemInfoCache cache;
@@ -423,7 +423,7 @@ public final class WorkspaceManager impl
* @throws RepositoryException If an error occurs.
*/
private TransientItemStateFactory createItemStateFactory() throws RepositoryException {
- cache = service.getItemInfoCache(sessionInfo);
+ cache = sessionInfo.getItemInfoCache();
WorkspaceItemStateFactory isf = new WorkspaceItemStateFactory(service, sessionInfo,
getItemDefinitionProvider(), cache);
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/AbstractJCR2SPITest.java Tue Sep 27 16:37:42 2011
@@ -25,7 +25,6 @@ import org.apache.jackrabbit.spi.EventFi
import org.apache.jackrabbit.spi.IdFactory;
import org.apache.jackrabbit.spi.ItemId;
import org.apache.jackrabbit.spi.ItemInfo;
-import org.apache.jackrabbit.spi.ItemInfoCache;
import org.apache.jackrabbit.spi.LockInfo;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.NameFactory;
@@ -258,10 +257,6 @@ public abstract class AbstractJCR2SPITes
return repositoryService.getRepositoryDescriptors();
}
- public ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) throws RepositoryException {
- return repositoryService.getItemInfoCache(sessionInfo);
- }
-
//-----------------------------------< SessionInfo creation and release >---
public SessionInfo obtain(Credentials credentials, String workspaceName) throws RepositoryException {
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/benchmark/ReadPerformanceTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/benchmark/ReadPerformanceTest.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/benchmark/ReadPerformanceTest.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-jcr2spi/src/test/java/org/apache/jackrabbit/jcr2spi/benchmark/ReadPerformanceTest.java Tue Sep 27 16:37:42 2011
@@ -30,7 +30,6 @@ import org.apache.jackrabbit.spi.Reposit
import org.apache.jackrabbit.spi.SessionInfo;
import org.apache.jackrabbit.spi.commons.ItemInfoBuilder.NodeInfoBuilder;
import org.apache.jackrabbit.spi.commons.ItemInfoBuilder.PropertyInfoBuilder;
-import org.apache.jackrabbit.spi.commons.ItemInfoCacheImpl;
import org.apache.jackrabbit.spi.commons.util.Predicate1;
import javax.jcr.Item;
@@ -102,15 +101,6 @@ public class ReadPerformanceTest extends
private final Random rnd = new Random(12345);
/**
- * This implementation overrides the default cache size with the value of
- * {@value #ITEM_INFO_CACHE_SIZE}
- */
- @Override
- public ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) throws RepositoryException {
- return new ItemInfoCacheImpl(ITEM_INFO_CACHE_SIZE);
- }
-
- /**
* This implementation adds a tree of nodes and properties up to certain {@link #TREE_DEPTH}.
* Each node has {@link #NODE_COUNT} child nodes and {@link #PROPERTY_COUNT} properties.
* {@inheritDoc}
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractReadableRepositoryService.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractReadableRepositoryService.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractReadableRepositoryService.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/AbstractReadableRepositoryService.java Tue Sep 27 16:37:42 2011
@@ -19,7 +19,6 @@ package org.apache.jackrabbit.spi.common
import org.apache.jackrabbit.commons.cnd.ParseException;
import org.apache.jackrabbit.spi.ItemId;
import org.apache.jackrabbit.spi.ItemInfo;
-import org.apache.jackrabbit.spi.ItemInfoCache;
import org.apache.jackrabbit.spi.NodeId;
import org.apache.jackrabbit.spi.NodeInfo;
import org.apache.jackrabbit.spi.QValue;
@@ -113,16 +112,6 @@ public abstract class AbstractReadableRe
return super.createSessionInfo(userId, workspaceName == null? defaultWsp : workspaceName);
}
- // -------------------------------------------------------------< cache >---
- /**
- * @param sessionInfo
- * @return a new instance of {@code ItemInfoCacheImpl}
- */
- @Override
- public ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) {
- return new ItemInfoCacheImpl();
- }
-
//------------------------------------------------------------< reading >---
/**
* This default implementation returns the first item returned by the call to
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/SessionInfoImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/SessionInfoImpl.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/SessionInfoImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/SessionInfoImpl.java Tue Sep 27 16:37:42 2011
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.spi.commons;
+import org.apache.jackrabbit.spi.ItemInfoCache;
import org.apache.jackrabbit.spi.SessionInfo;
import javax.jcr.RepositoryException;
@@ -50,6 +51,8 @@ public class SessionInfoImpl implements
*/
private final List<String> lockTokens = new ArrayList<String>();
+ private ItemInfoCacheImpl itemInfoCache;
+
/**
* Sets the userId.
*
@@ -102,6 +105,18 @@ public class SessionInfoImpl implements
}
/**
+ * @return an ItemInfoCacheImpl instance
+ * @throws RepositoryException
+ */
+ @Override
+ public ItemInfoCache getItemInfoCache() throws RepositoryException {
+ if (itemInfoCache == null) {
+ itemInfoCache = new ItemInfoCacheImpl();
+ }
+ return itemInfoCache;
+ }
+
+ /**
* Empty implementation
*/
@Override
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/RepositoryServiceLogger.java Tue Sep 27 16:37:42 2011
@@ -124,16 +124,6 @@ public class RepositoryServiceLogger ext
}
@Override
- public ItemInfoCache getItemInfoCache(final SessionInfo sessionInfo) throws RepositoryException {
- return execute(new Callable<ItemInfoCache>() {
- @Override
- public ItemInfoCache call() throws RepositoryException {
- return service.getItemInfoCache(sessionInfo);
- }
- }, "getItemInfoCache(SessionInfo)", new Object[]{sessionInfo});
- }
-
- @Override
public SessionInfo obtain(final Credentials credentials, final String workspaceName)
throws RepositoryException {
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/SessionInfoLogger.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/SessionInfoLogger.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/SessionInfoLogger.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi-commons/src/main/java/org/apache/jackrabbit/spi/commons/logging/SessionInfoLogger.java Tue Sep 27 16:37:42 2011
@@ -16,6 +16,7 @@
*/
package org.apache.jackrabbit.spi.commons.logging;
+import org.apache.jackrabbit.spi.ItemInfoCache;
import org.apache.jackrabbit.spi.SessionInfo;
import javax.jcr.RepositoryException;
@@ -110,6 +111,16 @@ public class SessionInfoLogger extends A
}
@Override
+ public ItemInfoCache getItemInfoCache() throws RepositoryException {
+ return execute(new Callable<ItemInfoCache>() {
+ @Override
+ public ItemInfoCache call() throws RepositoryException {
+ return sessionInfo.getItemInfoCache();
+ }
+ }, "getItemInfoCache()", new Object[]{});
+ }
+
+ @Override
public void refresh() {
execute(new SafeCallable<String>() {
@Override
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/RepositoryService.java Tue Sep 27 16:37:42 2011
@@ -110,14 +110,6 @@ public interface RepositoryService {
*/
QValueFactory getQValueFactory() throws RepositoryException;
- /**
- * Returns a {@link ItemInfoCache} for the given {@code SessionInfo}.
- * @param sessionInfo
- * @return
- * @throws RepositoryException
- */
- ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) throws RepositoryException;
-
//--------------------------------------------------------------------------
/**
* Returns all property descriptors that can be exposed with the
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/SessionInfo.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/SessionInfo.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/SessionInfo.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi/src/main/java/org/apache/jackrabbit/spi/SessionInfo.java Tue Sep 27 16:37:42 2011
@@ -100,6 +100,13 @@ public interface SessionInfo {
void setUserData(String userData) throws RepositoryException;
/**
+ * Returns a {@link ItemInfoCache} for this session.
+ * @return
+ * @throws RepositoryException
+ */
+ ItemInfoCache getItemInfoCache() throws RepositoryException;
+
+ /**
* Notification about a {@link javax.jcr.Session#refresh(boolean)} call. Implementations need to ensure
* that after this call all infos returned by {@link RepositoryService#getItemInfos(SessionInfo, ItemId)}
* reflect the state of the persistence layer not later than from the time of this method call. That is,
Modified: jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java?rev=1176462&r1=1176461&r2=1176462&view=diff
==============================================================================
--- jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java (original)
+++ jackrabbit/sandbox/jackrabbit-mk/jackrabbit-spi2microkernel/src/main/java/org/apache/jackrabbit/spi2microkernel/RepositoryServiceImpl.java Tue Sep 27 16:37:42 2011
@@ -33,7 +33,6 @@ import org.apache.jackrabbit.spi.EventFi
import org.apache.jackrabbit.spi.IdFactory;
import org.apache.jackrabbit.spi.ItemId;
import org.apache.jackrabbit.spi.ItemInfo;
-import org.apache.jackrabbit.spi.ItemInfoCache;
import org.apache.jackrabbit.spi.LockInfo;
import org.apache.jackrabbit.spi.Name;
import org.apache.jackrabbit.spi.NodeId;
@@ -49,7 +48,6 @@ import org.apache.jackrabbit.spi.Session
import org.apache.jackrabbit.spi.Subscription;
import org.apache.jackrabbit.spi.commons.AbstractRepositoryService;
import org.apache.jackrabbit.spi.commons.EventFilterImpl;
-import org.apache.jackrabbit.spi.commons.ItemInfoCacheImpl;
import org.apache.jackrabbit.spi.commons.QNodeDefinitionImpl;
import org.apache.jackrabbit.spi.commons.batch.ConsolidatingChangeLog;
import org.apache.jackrabbit.spi.commons.name.NameConstants;
@@ -245,11 +243,6 @@ public class RepositoryServiceImpl exten
}
@Override
- public ItemInfoCache getItemInfoCache(SessionInfo sessionInfo) throws RepositoryException {
- return new ItemInfoCacheImpl();
- }
-
- @Override
protected QNodeDefinition createRootNodeDefinition(SessionInfo sessionInfo) throws RepositoryException {
return ROOT_NODE_DEFINITION;
}