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 to...@apache.org on 2016/10/24 10:05:27 UTC
svn commit: r1766370 -
/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
Author: tomekr
Date: Mon Oct 24 10:05:27 2016
New Revision: 1766370
URL: http://svn.apache.org/viewvc?rev=1766370&view=rev
Log:
OAK-4970: Optimize the version copying performance during sidegrade
Throw an exception if the workspace name can't be detected.
Modified:
jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
Modified: jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java?rev=1766370&r1=1766369&r2=1766370&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java (original)
+++ jackrabbit/oak/trunk/oak-upgrade/src/main/java/org/apache/jackrabbit/oak/upgrade/RepositorySidegrade.java Mon Oct 24 10:05:27 2016
@@ -27,6 +27,7 @@ import javax.annotation.Nullable;
import javax.jcr.RepositoryException;
import com.google.common.base.Function;
+import org.apache.commons.lang.StringUtils;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent;
import org.apache.jackrabbit.oak.spi.commit.CommitHook;
@@ -51,18 +52,14 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Predicates.notNull;
import static com.google.common.collect.ImmutableSet.copyOf;
import static com.google.common.collect.ImmutableSet.of;
-import static com.google.common.collect.Iterables.find;
import static com.google.common.collect.Lists.newArrayList;
import static com.google.common.collect.Lists.transform;
import static com.google.common.collect.Sets.union;
-import static java.util.Arrays.asList;
import static java.util.Collections.sort;
import static org.apache.jackrabbit.JcrConstants.JCR_PRIMARYTYPE;
import static org.apache.jackrabbit.JcrConstants.JCR_SYSTEM;
-import static org.apache.jackrabbit.oak.Oak.DEFAULT_WORKSPACE_NAME;
import static org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionConstants.NT_REP_PERMISSION_STORE;
import static org.apache.jackrabbit.oak.spi.security.authorization.permission.PermissionConstants.REP_PERMISSION_STORE;
import static org.apache.jackrabbit.oak.upgrade.RepositoryUpgrade.DEFAULT_EXCLUDE_PATHS;
@@ -290,7 +287,7 @@ public class RepositorySidegrade {
builder.setChildNode(":async");
}
- private void copyState(NodeState sourceRoot, NodeBuilder targetRoot) throws CommitFailedException {
+ private void copyState(NodeState sourceRoot, NodeBuilder targetRoot) throws CommitFailedException, RepositoryException {
copyWorkspace(sourceRoot, targetRoot);
if (includeIndex) {
@@ -435,8 +432,16 @@ public class RepositorySidegrade {
return superRoot.child("checkpoints").child(name);
}
- private String getWorkspaceName() {
- return find(asList(System.getProperty(WORKSPACE_NAME_PROP), deriveWorkspaceName(), DEFAULT_WORKSPACE_NAME), notNull());
+ private String getWorkspaceName() throws RepositoryException {
+ String definedName = System.getProperty(WORKSPACE_NAME_PROP);
+ String detectedName = deriveWorkspaceName();
+ if (StringUtils.isNotBlank(definedName)) {
+ return definedName;
+ } else if (StringUtils.isNotBlank(detectedName)) {
+ return detectedName;
+ } else {
+ throw new RepositoryException("Can't detect the workspace name. Please use the system property " + WORKSPACE_NAME_PROP + " to set it manually.");
+ }
}
/**
@@ -458,7 +463,6 @@ public class RepositorySidegrade {
if (nameCandidates.size() == 1) {
return nameCandidates.get(0);
} else {
- LOG.warn("Can't find the workspace name. '{}' will be used. It can be overriden with system property {}", DEFAULT_WORKSPACE_NAME, WORKSPACE_NAME_PROP);
return null;
}
}