Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/xml/ImporterImpl.java (working copy) @@ -16,8 +16,6 @@ */ package org.apache.jackrabbit.oak.jcr.xml; -import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH; - import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; @@ -25,7 +23,6 @@ import java.util.Set; import java.util.Stack; import java.util.UUID; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.jcr.ImportUUIDBehavior; @@ -48,9 +45,9 @@ 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.core.IdentifierManager; -import org.apache.jackrabbit.oak.jcr.session.SessionContext; import org.apache.jackrabbit.oak.jcr.security.AccessManager; +import org.apache.jackrabbit.oak.jcr.session.SessionContext; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.plugins.nodetype.DefinitionProvider; import org.apache.jackrabbit.oak.plugins.nodetype.EffectiveNodeTypeProvider; @@ -66,6 +63,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.NODE_TYPES_PATH; + public class ImporterImpl implements Importer { private static final Logger log = LoggerFactory.getLogger(ImporterImpl.class); Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/session/NodeImpl.java (working copy) @@ -65,7 +65,7 @@ import org.apache.jackrabbit.oak.api.Tree.Status; import org.apache.jackrabbit.oak.api.Type; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.jcr.delegate.NodeDelegate; import org.apache.jackrabbit.oak.jcr.delegate.PropertyDelegate; import org.apache.jackrabbit.oak.jcr.delegate.VersionManagerDelegate; Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/NodeDelegate.java (working copy) @@ -16,6 +16,34 @@ */ package org.apache.jackrabbit.oak.jcr.delegate; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; +import javax.jcr.InvalidItemStateException; +import javax.jcr.ItemNotFoundException; +import javax.jcr.RepositoryException; +import javax.jcr.ValueFormatException; +import javax.jcr.lock.LockException; +import javax.jcr.nodetype.ConstraintViolationException; +import javax.jcr.nodetype.NoSuchNodeTypeException; +import javax.jcr.security.AccessControlException; + +import com.google.common.base.Function; +import com.google.common.base.Predicate; +import org.apache.jackrabbit.oak.api.CommitFailedException; +import org.apache.jackrabbit.oak.api.PropertyState; +import org.apache.jackrabbit.oak.api.Root; +import org.apache.jackrabbit.oak.api.Tree; +import org.apache.jackrabbit.oak.api.Tree.Status; +import org.apache.jackrabbit.oak.api.Type; +import org.apache.jackrabbit.oak.commons.PathUtils; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; +import org.apache.jackrabbit.oak.spi.state.NodeStateUtils; +import org.apache.jackrabbit.oak.util.TreeUtil; + import static com.google.common.base.Objects.toStringHelper; import static com.google.common.collect.Iterables.addAll; import static com.google.common.collect.Iterables.contains; @@ -57,36 +85,6 @@ import static org.apache.jackrabbit.oak.util.TreeUtil.getBoolean; import static org.apache.jackrabbit.oak.util.TreeUtil.getNames; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.annotation.CheckForNull; -import javax.annotation.Nonnull; -import javax.jcr.InvalidItemStateException; -import javax.jcr.ItemNotFoundException; -import javax.jcr.RepositoryException; -import javax.jcr.ValueFormatException; -import javax.jcr.lock.LockException; -import javax.jcr.nodetype.ConstraintViolationException; -import javax.jcr.nodetype.NoSuchNodeTypeException; -import javax.jcr.security.AccessControlException; - -import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.api.Root; -import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.api.Tree.Status; -import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.core.IdentifierManager; -import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; -import org.apache.jackrabbit.oak.spi.state.NodeStateUtils; -import org.apache.jackrabbit.oak.util.TreeUtil; - -import com.google.common.base.Function; -import com.google.common.base.Predicate; - /** * {@code NodeDelegate} serve as internal representations of {@code Node}s. * Most methods of this class throw an {@code InvalidItemStateException} Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/WorkspaceDelegate.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/WorkspaceDelegate.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/WorkspaceDelegate.java (working copy) @@ -16,31 +16,31 @@ */ package org.apache.jackrabbit.oak.jcr.delegate; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.JcrConstants.JCR_UUID; - import java.util.ArrayList; import java.util.List; import java.util.Map; - import javax.jcr.ItemExistsException; import javax.jcr.PathNotFoundException; import javax.jcr.RepositoryException; -import com.google.common.collect.Maps; import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Root; 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.core.IdentifierManager; import org.apache.jackrabbit.oak.jcr.security.AccessManager; import org.apache.jackrabbit.oak.jcr.session.SessionContext; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.memory.GenericPropertyState; import org.apache.jackrabbit.oak.plugins.memory.MultiGenericPropertyState; import org.apache.jackrabbit.oak.spi.security.authorization.permission.Permissions; +import com.google.common.collect.Maps; + +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.JcrConstants.JCR_UUID; + /** * Delegate class for workspace operations. */ Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/delegate/SessionDelegate.java (working copy) @@ -33,7 +33,7 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.commons.PathUtils; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.jcr.security.AccessManager; import org.apache.jackrabbit.oak.jcr.session.RefreshStrategy; import org.apache.jackrabbit.oak.jcr.session.operation.SessionOperation; Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventImpl.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventImpl.java (working copy) @@ -17,7 +17,7 @@ * under the License. */ -package org.apache.jackrabbit.oak.jcr.observation; +package org.apache.jackrabbit.oak.plugins.observation; import java.util.Collections; import java.util.Map; @@ -29,7 +29,7 @@ /** * TODO document */ -public class EventImpl implements JackrabbitEvent { +class EventImpl implements JackrabbitEvent { private final int type; private final String jcrPath; @@ -40,7 +40,7 @@ private final String userData; private final boolean external; - public EventImpl( + EventImpl( int type, String jcrPath, String userID, String identifier, Map info, long date, String userData, boolean external) { this.type = type; Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ChangeProcessor.java (working copy) @@ -16,24 +16,12 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.jackrabbit.oak.jcr.observation; +package org.apache.jackrabbit.oak.plugins.observation; -import static com.google.common.base.Preconditions.checkArgument; -import static com.google.common.base.Preconditions.checkState; -import static com.google.common.collect.Iterators.emptyIterator; -import static com.google.common.collect.Iterators.singletonIterator; -import static com.google.common.collect.Iterators.transform; -import static javax.jcr.observation.Event.NODE_ADDED; -import static javax.jcr.observation.Event.NODE_REMOVED; -import static javax.jcr.observation.Event.PROPERTY_ADDED; -import static javax.jcr.observation.Event.PROPERTY_REMOVED; -import static org.apache.jackrabbit.oak.core.IdentifierManager.getIdentifier; - import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.atomic.AtomicReference; - import javax.annotation.Nonnull; import javax.jcr.observation.Event; import javax.jcr.observation.EventListener; @@ -53,8 +41,6 @@ import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.observation.ChangeDispatcher.ChangeSet; import org.apache.jackrabbit.oak.plugins.observation.ChangeDispatcher.Listener; -import org.apache.jackrabbit.oak.plugins.observation.Observable; -import org.apache.jackrabbit.oak.plugins.observation.SecureNodeStateDiff; import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.RecursingNodeStateDiff; import org.apache.jackrabbit.oak.spi.state.VisibleDiff; @@ -64,6 +50,17 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static com.google.common.base.Preconditions.checkArgument; +import static com.google.common.base.Preconditions.checkState; +import static com.google.common.collect.Iterators.emptyIterator; +import static com.google.common.collect.Iterators.singletonIterator; +import static com.google.common.collect.Iterators.transform; +import static javax.jcr.observation.Event.NODE_ADDED; +import static javax.jcr.observation.Event.NODE_REMOVED; +import static javax.jcr.observation.Event.PROPERTY_ADDED; +import static javax.jcr.observation.Event.PROPERTY_REMOVED; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getIdentifier; + /** * A {@code ChangeProcessor} generates observation {@link javax.jcr.observation.Event}s * based on a {@link EventFilter} and delivers them to an {@link javax.jcr.observation.EventListener}. @@ -72,7 +69,7 @@ * {@link #run()} methods to be regularly executed and stopped in order to not * execute its run method anymore. */ -class ChangeProcessor implements Runnable { +public class ChangeProcessor implements Runnable { private static final Logger log = LoggerFactory.getLogger(ChangeProcessor.class); Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFilter.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFilter.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/EventFilter.java (working copy) @@ -16,12 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.jackrabbit.oak.jcr.observation; +package org.apache.jackrabbit.oak.plugins.observation; -import static com.google.common.base.Objects.toStringHelper; - import java.util.Arrays; - import javax.annotation.CheckForNull; import javax.jcr.RepositoryException; import javax.jcr.nodetype.NoSuchNodeTypeException; @@ -33,10 +30,12 @@ import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; +import static com.google.common.base.Objects.toStringHelper; + /** * Filter for filtering observation events according to a certain criterion. */ -class EventFilter { +public class EventFilter { private final ReadOnlyNodeTypeManager ntMgr; private final int eventTypes; private final String path; Index: oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java =================================================================== --- oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java (revision 1526424) +++ oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/observation/ObservationManagerImpl.java (working copy) @@ -18,12 +18,9 @@ */ package org.apache.jackrabbit.oak.jcr.observation; -import static com.google.common.collect.Lists.newArrayList; - import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.annotation.CheckForNull; import javax.annotation.Nullable; import javax.jcr.RepositoryException; @@ -40,6 +37,8 @@ import org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate; import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; +import org.apache.jackrabbit.oak.plugins.observation.ChangeProcessor; +import org.apache.jackrabbit.oak.plugins.observation.EventFilter; import org.apache.jackrabbit.oak.plugins.observation.Observable; import org.apache.jackrabbit.oak.spi.whiteboard.Whiteboard; import org.slf4j.Logger; @@ -47,6 +46,8 @@ import org.slf4j.Marker; import org.slf4j.MarkerFactory; +import static com.google.common.collect.Lists.newArrayList; + public class ObservationManagerImpl implements ObservationManager { private static final Logger log = LoggerFactory.getLogger(ObservationManagerImpl.class); Index: oak-core/src/test/java/org/apache/jackrabbit/oak/core/IdentifierManagerTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/core/IdentifierManagerTest.java (revision 1526424) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/core/IdentifierManagerTest.java (working copy) @@ -16,9 +16,9 @@ * specific language governing permissions and limitations * under the License. */ -package org.apache.jackrabbit.oak.core; +package org.apache.jackrabbit.oak.plugins.identifier; -import static org.apache.jackrabbit.oak.core.IdentifierManager.getIdentifier; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getIdentifier; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; import static org.junit.Assert.fail; @@ -30,6 +30,7 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent; import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider; Index: oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java (revision 1526424) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImplTest.java (working copy) @@ -28,7 +28,7 @@ import javax.jcr.RepositoryException; import com.google.common.collect.ImmutableMap; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.junit.Test; public class NamePathMapperImplTest { Index: oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImplTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImplTest.java (revision 1526424) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImplTest.java (working copy) @@ -32,7 +32,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.spi.security.authentication.ImpersonationCredentials; import org.apache.jackrabbit.oak.spi.security.authentication.token.TokenInfo; import org.apache.jackrabbit.oak.spi.security.authentication.token.TokenProvider; Index: oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java =================================================================== --- oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java (revision 1526424) +++ oak-core/src/test/java/org/apache/jackrabbit/oak/security/authorization/evaluation/JcrUUIDTest.java (working copy) @@ -23,7 +23,7 @@ import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.nodetype.RegistrationEditorProvider; import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider; import org.apache.jackrabbit.oak.plugins.nodetype.write.ReadWriteNodeTypeManager; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadWriteVersionManager.java (working copy) @@ -18,6 +18,29 @@ */ package org.apache.jackrabbit.oak.plugins.version; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import java.util.Set; +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import javax.jcr.RepositoryException; + +import com.google.common.collect.ImmutableList; +import com.google.common.collect.Sets; +import org.apache.jackrabbit.oak.api.CommitFailedException; +import org.apache.jackrabbit.oak.api.PropertyState; +import org.apache.jackrabbit.oak.api.Root; +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.core.ImmutableRoot; +import org.apache.jackrabbit.oak.core.ImmutableTree; +import org.apache.jackrabbit.oak.namepath.NamePathMapper; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; +import org.apache.jackrabbit.oak.spi.state.NodeBuilder; + import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; import static com.google.common.base.Preconditions.checkState; @@ -39,31 +62,6 @@ import static org.apache.jackrabbit.oak.plugins.version.VersionConstants.REP_VERSIONSTORAGE; import static org.apache.jackrabbit.oak.plugins.version.VersionConstants.VERSION_STORE_PATH; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Set; - -import javax.annotation.Nonnull; -import javax.annotation.Nullable; -import javax.jcr.RepositoryException; - -import org.apache.jackrabbit.oak.api.CommitFailedException; -import org.apache.jackrabbit.oak.api.PropertyState; -import org.apache.jackrabbit.oak.api.Root; -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.core.IdentifierManager; -import org.apache.jackrabbit.oak.core.ImmutableRoot; -import org.apache.jackrabbit.oak.core.ImmutableTree; -import org.apache.jackrabbit.oak.namepath.NamePathMapper; -import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; -import org.apache.jackrabbit.oak.spi.state.NodeBuilder; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Sets; - /** * TODO document */ Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/VersionableState.java (working copy) @@ -60,7 +60,7 @@ import org.apache.jackrabbit.oak.api.CommitFailedException; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.core.ImmutableTree; import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState; import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeBuilder; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/version/ReadOnlyVersionManager.java (working copy) @@ -31,7 +31,7 @@ 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.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.nodetype.ReadOnlyNodeTypeManager; import org.apache.jackrabbit.oak.util.TreeUtil; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/NodeTypeImpl.java (working copy) @@ -61,7 +61,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.namepath.JcrNameParser; import org.apache.jackrabbit.oak.namepath.JcrPathParser; import org.apache.jackrabbit.oak.namepath.NamePathMapper; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/nodetype/TypeEditor.java (working copy) @@ -44,7 +44,7 @@ import static org.apache.jackrabbit.oak.api.Type.NAME; import static org.apache.jackrabbit.oak.api.Type.STRING; import static org.apache.jackrabbit.oak.api.Type.STRINGS; -import static org.apache.jackrabbit.oak.core.IdentifierManager.isValidUUID; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.isValidUUID; import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.EMPTY_NODE; import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE; import static org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants.JCR_IS_ABSTRACT; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/value/ValueFactoryImpl.java (working copy) @@ -27,7 +27,6 @@ import javax.jcr.Node; import javax.jcr.PropertyType; import javax.jcr.RepositoryException; -import javax.jcr.UnsupportedRepositoryOperationException; import javax.jcr.Value; import javax.jcr.ValueFactory; import javax.jcr.ValueFormatException; @@ -41,7 +40,7 @@ import org.apache.jackrabbit.oak.namepath.JcrNameParser; import org.apache.jackrabbit.oak.namepath.JcrPathParser; import org.apache.jackrabbit.oak.namepath.NamePathMapper; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.memory.BinaryPropertyState; import org.apache.jackrabbit.oak.plugins.memory.BooleanPropertyState; import org.apache.jackrabbit.oak.plugins.memory.DecimalPropertyState; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/authentication/token/TokenProviderImpl.java (working copy) @@ -45,7 +45,7 @@ import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.namepath.NamePathMapper; import org.apache.jackrabbit.oak.plugins.name.NamespaceConstants; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; @@ -61,7 +61,7 @@ import org.slf4j.LoggerFactory; import static org.apache.jackrabbit.oak.api.Type.STRING; -import static org.apache.jackrabbit.oak.core.IdentifierManager.getIdentifier; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getIdentifier; /** * Default implementation of the {@code TokenProvider} interface that keeps login Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/authorization/permission/PermissionProviderImpl.java (working copy) @@ -29,7 +29,7 @@ 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.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.core.ImmutableRoot; import org.apache.jackrabbit.oak.core.ImmutableTree; import org.apache.jackrabbit.oak.core.TreeTypeProvider; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/AuthorizableBaseProvider.java (working copy) @@ -16,21 +16,21 @@ */ package org.apache.jackrabbit.oak.security.user; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.core.IdentifierManager.generateUUID; -import static org.apache.jackrabbit.oak.core.IdentifierManager.getIdentifier; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.user.AuthorizableType; import org.apache.jackrabbit.oak.spi.security.user.UserConstants; import org.apache.jackrabbit.oak.spi.security.user.util.UserUtil; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.generateUUID; +import static org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager.getIdentifier; + /** * Base class for {@link UserProvider} and {@link MembershipProvider}. */ Index: oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/security/user/UserImporter.java (working copy) @@ -16,9 +16,6 @@ */ package org.apache.jackrabbit.oak.security.user; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.apache.jackrabbit.oak.api.Type.STRINGS; - import java.security.Principal; import java.util.ArrayList; import java.util.HashMap; @@ -28,7 +25,6 @@ import java.util.List; import java.util.Map; import java.util.Set; - import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.jcr.ImportUUIDBehavior; @@ -49,8 +45,8 @@ import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.api.Tree; import org.apache.jackrabbit.oak.api.Type; -import org.apache.jackrabbit.oak.core.IdentifierManager; import org.apache.jackrabbit.oak.namepath.NamePathMapper; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.spi.security.ConfigurationParameters; import org.apache.jackrabbit.oak.spi.security.SecurityProvider; import org.apache.jackrabbit.oak.spi.security.principal.PrincipalImpl; @@ -66,6 +62,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static com.google.common.base.Preconditions.checkNotNull; +import static org.apache.jackrabbit.oak.api.Type.STRINGS; + /** * {@code UserImporter} implements both {@code ode>ProtectedPropertyImporter} * and {@code ProtectedNodeImporter} and provides import facilities for protected Index: oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/core/ImmutableTree.java (working copy) @@ -16,8 +16,6 @@ */ package org.apache.jackrabbit.oak.core; -import static com.google.common.base.Preconditions.checkNotNull; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; @@ -29,6 +27,8 @@ import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.jackrabbit.oak.spi.state.ReadOnlyBuilder; +import static com.google.common.base.Preconditions.checkNotNull; + /** * Immutable implementation of the {@code Tree} interface in order to provide * the much feature rich API functionality for a given {@code NodeState}. @@ -60,8 +60,7 @@ *
  • {@link ParentProvider#ROOT_PROVIDER}: the default parent provider for * the root tree. All children will get {@link DefaultParentProvider}
  • *
  • {@link ParentProvider#UNSUPPORTED}: throws {@code UnsupportedOperationException} - * upon hierarchy related methods like {@link #getParent()}, {@link #getPath()} and - * {@link #getIdentifier()}
  • + * upon hierarchy related methods like {@link #getParent()}, {@link #getPath()} * * *

    TreeTypeProvider

    Index: oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractTree.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractTree.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/core/AbstractTree.java (working copy) @@ -19,31 +19,28 @@ package org.apache.jackrabbit.oak.core; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.collect.Iterables.filter; -import static com.google.common.collect.Iterables.size; -import static com.google.common.collect.Iterables.transform; -import static org.apache.jackrabbit.oak.api.Tree.Status.EXISTING; -import static org.apache.jackrabbit.oak.api.Tree.Status.MODIFIED; -import static org.apache.jackrabbit.oak.api.Tree.Status.NEW; -import static org.apache.jackrabbit.oak.api.Type.STRING; -import static org.apache.jackrabbit.oak.spi.state.NodeStateUtils.isHidden; - import java.util.Iterator; - import javax.annotation.Nonnull; import com.google.common.base.Function; import com.google.common.base.Predicate; -import org.apache.jackrabbit.JcrConstants; import org.apache.jackrabbit.mk.api.MicroKernel; import org.apache.jackrabbit.oak.api.PropertyState; import org.apache.jackrabbit.oak.api.Tree; -import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.plugins.index.IndexConstants; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; +import static com.google.common.base.Preconditions.checkNotNull; +import static com.google.common.collect.Iterables.filter; +import static com.google.common.collect.Iterables.size; +import static com.google.common.collect.Iterables.transform; +import static org.apache.jackrabbit.oak.api.Tree.Status.EXISTING; +import static org.apache.jackrabbit.oak.api.Tree.Status.MODIFIED; +import static org.apache.jackrabbit.oak.api.Tree.Status.NEW; +import static org.apache.jackrabbit.oak.api.Type.STRING; +import static org.apache.jackrabbit.oak.spi.state.NodeStateUtils.isHidden; + /** * {@code AbstractTree} provides default implementations for most * read methods of {@code Tree}. Furthermore it handles the @@ -268,27 +265,4 @@ } }); } - - //------------------------------------------------------------< internal >--- - - /** - * The identifier of a tree is the value of its {@code jcr:uuid} property. - * If no such property exists the identifier is a slash ({@code/}) if the - * tree is the root. Otherwise the identifier is the tree's {@code name} appended - * to its parent's identifier separated by a slash ({@code/}). - * @return the identifier of this tree - */ - @Nonnull - String getIdentifier() { - PropertyState property = nodeBuilder.getProperty(JcrConstants.JCR_UUID); - if (property != null) { - return property.getValue(STRING); - } else if (isRoot()) { - return "/"; - } else { - return PathUtils.concat(getParent().getIdentifier(), getName()); - } - } - - } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/core/IdentifierManager.java (working copy) @@ -14,17 +14,13 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.jackrabbit.oak.core; +package org.apache.jackrabbit.oak.plugins.identifier; -import static com.google.common.base.Preconditions.checkArgument; -import static org.apache.jackrabbit.oak.api.Type.STRING; - import java.text.ParseException; import java.util.Collections; import java.util.Map; import java.util.Set; import java.util.UUID; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import javax.jcr.PropertyType; @@ -51,6 +47,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import static com.google.common.base.Preconditions.checkArgument; +import static org.apache.jackrabbit.oak.api.Type.STRING; + /** * TODO document */ @@ -94,10 +93,14 @@ */ @Nonnull public static String getIdentifier(Tree tree) { - if (tree instanceof AbstractTree) { - return ((AbstractTree) tree).getIdentifier(); + PropertyState property = tree.getProperty(JcrConstants.JCR_UUID); + if (property != null) { + return property.getValue(STRING); + } else if (tree.isRoot()) { + return "/"; } else { - return tree.getPath(); + String parentId = getIdentifier(tree.getParent()); + return PathUtils.concat(parentId, tree.getName()); } } Index: oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/api/Tree.java (working copy) @@ -52,7 +52,8 @@ * will throw an {@code InvalidStateException}. *

    * {@link Tree} instances may become non existing after a call to - * {@link Root#refresh()}, {@link Root#rebase()} or {@link Root#commit()}. Any write + * {@link Root#refresh()}, {@link Root#rebase()} or + * {@link Root#commit(org.apache.jackrabbit.oak.spi.commit.CommitHook...)}. Any write * access to non existing {@code Tree} instances will cause an * {@code InvalidStateException}. * Index: oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NamePathMapperImpl.java (working copy) @@ -23,7 +23,7 @@ import org.apache.jackrabbit.oak.commons.PathUtils; import org.apache.jackrabbit.oak.namepath.JcrPathParser.Listener; -import org.apache.jackrabbit.oak.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Index: oak-core/src/main/java/org/apache/jackrabbit/oak/util/TreeUtil.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/util/TreeUtil.java (revision 1526424) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/util/TreeUtil.java (working copy) @@ -62,7 +62,7 @@ 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.core.IdentifierManager; +import org.apache.jackrabbit.oak.plugins.identifier.IdentifierManager; import org.apache.jackrabbit.oak.plugins.memory.PropertyStates; import org.apache.jackrabbit.oak.plugins.nodetype.NodeTypeConstants; Index: oak-core/pom.xml =================================================================== --- oak-core/pom.xml (revision 1526424) +++ oak-core/pom.xml (working copy) @@ -44,12 +44,12 @@ org.apache.jackrabbit.oak, org.apache.jackrabbit.oak.api, - org.apache.jackrabbit.oak.core, org.apache.jackrabbit.oak.kernel, org.apache.jackrabbit.oak.util, org.apache.jackrabbit.oak.namepath, org.apache.jackrabbit.oak.plugins.value, org.apache.jackrabbit.oak.plugins.commit, + org.apache.jackrabbit.oak.plugins.identifier, org.apache.jackrabbit.oak.plugins.index, org.apache.jackrabbit.oak.plugins.index.aggregate, org.apache.jackrabbit.oak.plugins.index.nodetype, Index: oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrBaseTest.java =================================================================== --- oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrBaseTest.java (revision 1526424) +++ oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrBaseTest.java (working copy) @@ -16,21 +16,21 @@ */ package org.apache.jackrabbit.oak.plugins.index.solr; -import javax.annotation.Nonnull; -import javax.security.auth.Subject; +import javax.jcr.NoSuchWorkspaceException; +import javax.security.auth.login.LoginException; import org.apache.jackrabbit.mk.api.MicroKernel; import org.apache.jackrabbit.mk.core.MicroKernelImpl; -import org.apache.jackrabbit.oak.api.ContentSession; -import org.apache.jackrabbit.oak.core.AbstractRoot; +import org.apache.jackrabbit.oak.Oak; +import org.apache.jackrabbit.oak.api.ContentRepository; +import org.apache.jackrabbit.oak.api.Root; import org.apache.jackrabbit.oak.kernel.KernelNodeStore; import org.apache.jackrabbit.oak.plugins.index.IndexUpdateProvider; import org.apache.jackrabbit.oak.plugins.index.solr.index.SolrIndexEditorProvider; +import org.apache.jackrabbit.oak.plugins.index.solr.query.SolrQueryIndexProvider; +import org.apache.jackrabbit.oak.plugins.nodetype.write.InitialContent; import org.apache.jackrabbit.oak.spi.commit.EditorHook; -import org.apache.jackrabbit.oak.spi.commit.PostCommitHook; -import org.apache.jackrabbit.oak.spi.query.CompositeQueryIndexProvider; import org.apache.jackrabbit.oak.spi.security.OpenSecurityProvider; -import org.apache.jackrabbit.oak.spi.state.NodeState; import org.apache.solr.client.solrj.SolrServer; import org.junit.After; import org.junit.Before; @@ -41,22 +41,28 @@ public abstract class SolrBaseTest { protected KernelNodeStore store; - protected NodeState state; protected TestUtils provider; protected SolrServer server; protected OakSolrConfiguration configuration; protected EditorHook hook; + private ContentRepository repository; @Before public void setUp() throws Exception { MicroKernel microKernel = new MicroKernelImpl(); store = new KernelNodeStore(microKernel); - state = createInitialState(microKernel); provider = new TestUtils(); server = provider.getSolrServer(); configuration = provider.getConfiguration(); hook = new EditorHook(new IndexUpdateProvider( new SolrIndexEditorProvider(provider, provider))); + Oak oak = new Oak().with(new InitialContent()) + .with(new OpenSecurityProvider()) + .with(new SolrIndexInitializer()) + .with(new SolrQueryIndexProvider(provider, provider)) + .with(new SolrIndexEditorProvider(provider, provider)); + repository = oak + .createContentRepository(); } @After @@ -68,22 +74,8 @@ } } - protected AbstractRoot createRoot() { - return new AbstractRoot(store, hook, PostCommitHook.EMPTY, "solr-query-engine-it", new Subject(), - new OpenSecurityProvider(), new CompositeQueryIndexProvider()) { - @Nonnull - @Override - public ContentSession getContentSession() { - throw new UnsupportedOperationException(); - } - }; + protected Root createRoot() throws LoginException, NoSuchWorkspaceException { + return repository.login(null, null).getLatestRoot(); } - protected NodeState createInitialState(MicroKernel microKernel) { - String jsop = "^\"a\":1 ^\"b\":2 ^\"c\":3 +\"x\":{} +\"y\":{} +\"z\":{} " + - "+\"oak:index\":{\"solr\":{\"type\":\"solr\"}}"; - microKernel.commit("/", jsop, microKernel.getHeadRevision(), "test data"); - return store.getRoot(); - } - } Index: oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java =================================================================== --- oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java (revision 1526424) +++ oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java (working copy) @@ -16,9 +16,6 @@ */ package org.apache.jackrabbit.oak.plugins.index.solr.index; -import static org.apache.felix.scr.annotations.ReferencePolicy.STATIC; -import static org.apache.felix.scr.annotations.ReferencePolicyOption.GREEDY; - import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.Reference; import org.apache.felix.scr.annotations.Service; @@ -32,6 +29,9 @@ import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.oak.spi.state.NodeState; +import static org.apache.felix.scr.annotations.ReferencePolicy.STATIC; +import static org.apache.felix.scr.annotations.ReferencePolicyOption.GREEDY; + /** * Service that provides Lucene based {@link IndexEditor}s * Index: oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrIndexInitializer.java =================================================================== --- oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrIndexInitializer.java (revision 0) +++ oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrIndexInitializer.java (revision 0) @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.jackrabbit.oak.plugins.index.solr; + +import javax.annotation.Nonnull; + +import org.apache.jackrabbit.JcrConstants; +import org.apache.jackrabbit.oak.plugins.index.IndexConstants; +import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer; +import org.apache.jackrabbit.oak.spi.state.NodeBuilder; + +/** + * A {@link RepositoryInitializer} for Solr index + */ +public class SolrIndexInitializer implements RepositoryInitializer { + + private static final String SOLR_IDX = "solr"; + + @Override + public void initialize(@Nonnull NodeBuilder builder) { + if (builder.hasChildNode(IndexConstants.INDEX_DEFINITIONS_NAME) + && !builder.getChildNode(IndexConstants.INDEX_DEFINITIONS_NAME).hasChildNode(SOLR_IDX)) { + builder = builder.getChildNode(IndexConstants.INDEX_DEFINITIONS_NAME).child(SOLR_IDX); + builder.setProperty(JcrConstants.JCR_PRIMARYTYPE, IndexConstants.INDEX_DEFINITIONS_NODE_TYPE) + .setProperty(IndexConstants.TYPE_PROPERTY_NAME, "solr") + .setProperty(IndexConstants.REINDEX_PROPERTY_NAME, "true"); + + } + } +} Property changes on: oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/SolrIndexInitializer.java ___________________________________________________________________ Added: svn:eol-style + native