You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by an...@apache.org on 2014/02/11 16:13:37 UTC
svn commit: r1567172 - in
/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml:
ImportHandler.java ImporterImpl.java
Author: angela
Date: Tue Feb 11 15:13:37 2014
New Revision: 1567172
URL: http://svn.apache.org/r1567172
Log:
OAK-931 : Importer: review usage of write-root and objects obtained from the sessioncontext
Modified:
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java?rev=1567172&r1=1567171&r2=1567172&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImportHandler.java Tue Feb 11 15:13:37 2014
@@ -57,7 +57,6 @@ public class ImportHandler extends Defau
private static final Logger log = LoggerFactory.getLogger(ImportHandler.class);
private final Root root;
- private final Root initialRoot;
private final SessionContext sessionContext;
private final Importer importer;
@@ -73,9 +72,8 @@ public class ImportHandler extends Defau
this.isWorkspaceImport = isWorkspaceImport;
SessionDelegate sd = sessionContext.getSessionDelegate();
- initialRoot = sd.getContentSession().getLatestRoot();
root = (isWorkspaceImport) ? sd.getContentSession().getLatestRoot() : sd.getRoot();
- importer = new ImporterImpl(absPath, sessionContext, root, initialRoot, uuidBehavior, isWorkspaceImport);
+ importer = new ImporterImpl(absPath, sessionContext, root, uuidBehavior, isWorkspaceImport);
}
//---------------------------------------------------------< ErrorHandler >
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java?rev=1567172&r1=1567171&r2=1567172&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java Tue Feb 11 15:13:37 2014
@@ -45,8 +45,10 @@ import org.apache.jackrabbit.oak.api.Roo
import org.apache.jackrabbit.oak.api.Tree;
import org.apache.jackrabbit.oak.api.Type;
import org.apache.jackrabbit.oak.commons.PathUtils;
+import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate;
import org.apache.jackrabbit.oak.jcr.security.AccessManager;
import org.apache.jackrabbit.oak.jcr.session.SessionContext;
+import org.apache.jackrabbit.oak.jcr.session.WorkspaceImpl;
import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager;
import org.apache.jackrabbit.oak.plugins.memory.PropertyStates;
import org.apache.jackrabbit.oak.plugins.nodetype.DefinitionProvider;
@@ -78,15 +80,15 @@ public class ImporterImpl implements Imp
/**
* There are two IdentifierManagers used.
*
- * baseStateIdManager - Associated with the initial root on which
- * no modifications are performed
- *
- * currentStateIdManager - Associated with current root on which all import
- * operations are being performed
+ * 1) currentStateIdManager - Associated with current root on which all import
+ * operations are being performed
*
+ * 2) baseStateIdManager - Associated with the initial root on which
+ * no modifications are performed
*/
- private final IdentifierManager baseStateIdManager;
private final IdentifierManager currentStateIdManager;
+ private final IdentifierManager baseStateIdManager;
+
private final EffectiveNodeTypeProvider effectiveNodeTypeProvider;
private final DefinitionProvider definitionProvider;
@@ -117,7 +119,6 @@ public class ImporterImpl implements Imp
* @param sessionContext The context of the editing session
* @param root The write {@code Root}, which in case of a workspace import
* is different from the {@code Root} associated with the editing session.
- * @param initialRoot
* @param uuidBehavior The uuid behavior
* @param isWorkspaceImport {@code true} if this is a workspace import,
* {@code false} otherwise.
@@ -127,7 +128,6 @@ public class ImporterImpl implements Imp
public ImporterImpl(String absPath,
SessionContext sessionContext,
Root root,
- Root initialRoot,
int uuidBehavior,
boolean isWorkspaceImport) throws RepositoryException {
if (!PathUtils.isAbsolute(absPath)) {
@@ -138,34 +138,35 @@ public class ImporterImpl implements Imp
throw new RepositoryException("Invalid name or path: " + absPath);
}
- if (isWorkspaceImport && sessionContext.getSessionDelegate().hasPendingChanges()) {
+ SessionDelegate sd = sessionContext.getSessionDelegate();
+ if (isWorkspaceImport && sd.hasPendingChanges()) {
throw new RepositoryException("Pending changes on session. Cannot run workspace import.");
}
this.uuidBehavior = uuidBehavior;
- userID = sessionContext.getSessionDelegate().getAuthInfo().getUserID();
+ userID = sd.getAuthInfo().getUserID();
importTargetTree = root.getTree(absPath);
if (!importTargetTree.exists()) {
throw new PathNotFoundException(absPath);
}
- // TODO: review usage of write-root and object obtained from session-context (OAK-931)
- VersionManager vMgr = sessionContext.getWorkspace().getVersionManager();
+ WorkspaceImpl wsp = sessionContext.getWorkspace();
+ VersionManager vMgr = wsp.getVersionManager();
if (!vMgr.isCheckedOut(absPath)) {
throw new VersionException("Target node is checked in.");
}
- if (importTargetTree.getStatus() != Tree.Status.NEW
- && sessionContext.getWorkspace().getLockManager().isLocked(absPath)) {
+ if (importTargetTree.getStatus() != Tree.Status.NEW && wsp.getLockManager().isLocked(absPath)) {
throw new LockException("Target node is locked.");
}
+ effectiveNodeTypeProvider = wsp.getNodeTypeManager();
+ definitionProvider = wsp.getNodeTypeManager();
ntTypesRoot = root.getTree(NODE_TYPES_PATH);
+
accessManager = sessionContext.getAccessManager();
- baseStateIdManager = new IdentifierManager(initialRoot);
+
currentStateIdManager = new IdentifierManager(root);
- effectiveNodeTypeProvider = sessionContext.getWorkspace().getNodeTypeManager();
- definitionProvider = sessionContext.getWorkspace().getNodeTypeManager();
- // TODO: end
+ baseStateIdManager = new IdentifierManager(sd.getContentSession().getLatestRoot());
refTracker = new ReferenceChangeTracker();