SLING-8119 : Improve configuration handling
diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
index 2e6b13d..af33860 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/FeatureProcessor.java
@@ -16,6 +16,19 @@
  */
 package org.apache.sling.feature.launcher.impl;
 
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.ServiceLoader;
+import java.util.Spliterator;
+import java.util.Spliterators;
+import java.util.stream.StreamSupport;
+
 import org.apache.sling.feature.Artifact;
 import org.apache.sling.feature.ArtifactId;
 import org.apache.sling.feature.Configuration;
@@ -33,19 +46,6 @@
 import org.apache.sling.feature.launcher.spi.LauncherPrepareContext;
 import org.apache.sling.feature.launcher.spi.extensions.ExtensionHandler;
 
-import java.io.File;
-import java.io.FileReader;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.ServiceLoader;
-import java.util.Spliterator;
-import java.util.Spliterators;
-import java.util.stream.StreamSupport;
-
 public class FeatureProcessor {
 
     /**
@@ -145,10 +145,11 @@
         }
 
         for (final Configuration cfg : app.getConfigurations()) {
-            if ( cfg.isFactoryConfiguration() ) {
-                config.getInstallation().addConfiguration(cfg.getName(), cfg.getFactoryPid(), cfg.getProperties());
+            if (Configuration.isFactoryConfiguration(cfg.getPid())) {
+                config.getInstallation().addConfiguration(Configuration.getName(cfg.getPid()),
+                        Configuration.getFactoryPid(cfg.getPid()), cfg.getConfigurationProperties());
             } else {
-                config.getInstallation().addConfiguration(cfg.getPid(), null, cfg.getProperties());
+                config.getInstallation().addConfiguration(cfg.getPid(), null, cfg.getConfigurationProperties());
             }
         }
 
diff --git a/src/main/java/org/apache/sling/feature/launcher/impl/extensions/handlers/RepoInitHandler.java b/src/main/java/org/apache/sling/feature/launcher/impl/extensions/handlers/RepoInitHandler.java
index b439200..8110954 100644
--- a/src/main/java/org/apache/sling/feature/launcher/impl/extensions/handlers/RepoInitHandler.java
+++ b/src/main/java/org/apache/sling/feature/launcher/impl/extensions/handlers/RepoInitHandler.java
@@ -37,9 +37,11 @@
             if ( extension.getType() != ExtensionType.TEXT ) {
                 throw new Exception(FeatureConstants.EXTENSION_NAME_REPOINIT + " extension must be of type text");
             }
-            final Configuration cfg = new Configuration("org.apache.sling.jcr.repoinit.RepositoryInitializer", "repoinit" + String.valueOf(index.getAndIncrement()));
+            final Configuration cfg = new Configuration("org.apache.sling.jcr.repoinit.RepositoryInitializer~repoinit"
+                    + String.valueOf(index.getAndIncrement()));
             cfg.getProperties().put("scripts", extension.getText());
-            installationContext.addConfiguration(cfg.getName(), cfg.getFactoryPid(), cfg.getProperties());
+            installationContext.addConfiguration(Configuration.getName(cfg.getPid()),
+                    Configuration.getFactoryPid(cfg.getPid()), cfg.getConfigurationProperties());
             return true;
         }
         return false;