Author: stillalex
Date: Tue Dec 12 09:33:22 2017
New Revision: 1817897

URL: http://svn.apache.org/viewvc?rev=1817897&view=rev
Log:
OAK-7013 Replace usage in oak-auth-external


Modified:
    jackrabbit/oak/trunk/oak-auth-external/pom.xml
    
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java

Modified: jackrabbit/oak/trunk/oak-auth-external/pom.xml
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/pom.xml?rev=1817897&r1=1817896&r2=1817897&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-auth-external/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-auth-external/pom.xml Tue Dec 12 09:33:22 2017
@@ -171,12 +171,6 @@
             <scope>test</scope>
         </dependency>
         <dependency>
-            <groupId>com.h2database</groupId>
-            <artifactId>h2</artifactId>
-            <version>${h2.version}</version>
-            <scope>test</scope>
-        </dependency>
-        <dependency>
             <groupId>org.slf4j</groupId>
             <artifactId>jul-to-slf4j</artifactId>
             <scope>test</scope>

Modified: 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java?rev=1817897&r1=1817896&r2=1817897&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-auth-external/src/main/java/org/apache/jackrabbit/oak/spi/security/authentication/external/impl/principal/ExternalIdentityRepositoryInitializer.java
 Tue Dec 12 09:33:22 2017
@@ -17,32 +17,13 @@
 package 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.principal;
 
 import javax.annotation.Nonnull;
-import javax.jcr.RepositoryException;
 
-import org.apache.jackrabbit.JcrConstants;
-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.commons.PathUtils;
-import org.apache.jackrabbit.oak.plugins.index.IndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.IndexUtils;
-import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
-import org.apache.jackrabbit.oak.plugins.name.NamespaceEditorProvider;
-import org.apache.jackrabbit.oak.plugins.nodetype.TypeEditorProvider;
-import org.apache.jackrabbit.oak.plugins.tree.factories.RootFactory;
-import org.apache.jackrabbit.oak.spi.commit.CompositeEditorProvider;
-import org.apache.jackrabbit.oak.spi.commit.EditorHook;
 import org.apache.jackrabbit.oak.spi.lifecycle.RepositoryInitializer;
 import 
org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalIdentityConstants;
-import org.apache.jackrabbit.oak.spi.state.ApplyDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
-import org.apache.jackrabbit.oak.spi.state.NodeState;
-import org.apache.jackrabbit.oak.spi.state.NodeStore;
-import org.apache.jackrabbit.oak.plugins.tree.TreeUtil;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
-import static com.google.common.base.Preconditions.checkState;
+import com.google.common.collect.ImmutableList;
 
 /**
  * Implementation of the {@code RepositoryInitializer} interface responsible 
for
@@ -60,8 +41,6 @@ import static com.google.common.base.Pre
  */
 class ExternalIdentityRepositoryInitializer implements RepositoryInitializer {
 
-    private static final Logger log = 
LoggerFactory.getLogger(ExternalIdentityRepositoryInitializer.class);
-
     private final boolean enforceUniqueIds;
 
     ExternalIdentityRepositoryInitializer(boolean enforceUniqueIds) {
@@ -70,42 +49,20 @@ class ExternalIdentityRepositoryInitiali
 
     @Override
     public void initialize(@Nonnull NodeBuilder builder) {
-        NodeState base = builder.getNodeState();
-        NodeStore store = new MemoryNodeStore(base);
-
-        String errorMsg = "Failed to initialize external identity content.";
-        try {
 
-            Root root = RootFactory.createSystemRoot(store,
-                    new EditorHook(new CompositeEditorProvider(new 
NamespaceEditorProvider(), new TypeEditorProvider())),
-                    null, null, null);
-
-            // create index definition for "rep:externalId" and 
"rep:externalPrincipalNames"
-            Tree rootTree = root.getTree(PathUtils.ROOT_PATH);
-            checkState(rootTree.exists());
-            Tree index = TreeUtil.getOrAddChild(rootTree, 
IndexConstants.INDEX_DEFINITIONS_NAME, JcrConstants.NT_UNSTRUCTURED);
-
-            if (enforceUniqueIds && !index.hasChild("externalId")) {
-                Tree definition = IndexUtils.createIndexDefinition(index, 
"externalId", true,
-                        new 
String[]{ExternalIdentityConstants.REP_EXTERNAL_ID});
-                definition.setProperty("info", "Oak index assuring uniqueness 
of rep:externalId properties.");
-            }
-
-            if (!index.hasChild("externalPrincipalNames")) {
-                Tree definition = IndexUtils.createIndexDefinition(index, 
"externalPrincipalNames", false,
-                        new 
String[]{ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES});
-                definition.setProperty("info", "Oak index used by the 
principal management provided by the external authentication module.");
-            }
-
-            if (root.hasPendingChanges()) {
-                root.commit();
-            }
-        } catch (RepositoryException | CommitFailedException e) {
-            log.error(errorMsg, e);
-            throw new RuntimeException(e);
+        // create index definition for "rep:externalId" and
+        // "rep:externalPrincipalNames"
+        NodeBuilder index = IndexUtils.getOrCreateOakIndex(builder);
+        if (enforceUniqueIds && !index.hasChildNode("externalId")) {
+            NodeBuilder definition = IndexUtils.createIndexDefinition(index, 
"externalId", true, true,
+                    
ImmutableList.of(ExternalIdentityConstants.REP_EXTERNAL_ID), null);
+            definition.setProperty("info", "Oak index assuring uniqueness of 
rep:externalId properties.");
+        }
+        if (!index.hasChildNode("externalPrincipalNames")) {
+            NodeBuilder definition = IndexUtils.createIndexDefinition(index, 
"externalPrincipalNames", true, false,
+                    
ImmutableList.of(ExternalIdentityConstants.REP_EXTERNAL_PRINCIPAL_NAMES), null);
+            definition.setProperty("info",
+                    "Oak index used by the principal management provided by 
the external authentication module.");
         }
-
-        NodeState target = store.getRoot();
-        target.compareAgainstBaseState(base, new ApplyDiff(builder));
     }
 }
\ No newline at end of file


Reply via email to