[maven-release-plugin] copy for tag org.apache.sling.jcr.repoinit-1.1.0

git-svn-id: https://svn.apache.org/repos/asf/sling/tags/org.apache.sling.jcr.repoinit-1.1.0@1768890 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
index f4abbe3..17f3640 100644
--- a/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
+++ b/src/main/java/org/apache/sling/jcr/repoinit/impl/RepositoryInitializer.java
@@ -30,6 +30,7 @@
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.ConfigurationPolicy;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.metatype.annotations.AttributeDefinition;
 import org.osgi.service.metatype.annotations.Designate;
@@ -42,6 +43,7 @@
  */
 @Designate(ocd = RepositoryInitializer.Config.class)
 @Component(service = SlingRepositoryInitializer.class,
+    configurationPolicy=ConfigurationPolicy.REQUIRE,
     property = {
             Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
             // SlingRepositoryInitializers are executed in ascending
@@ -84,19 +86,21 @@
 
     @Override
     public void processRepository(SlingRepository repo) throws Exception {
-        // loginAdministrative is ok here, definitely an admin operation
-        final Session s = repo.loginAdministrative(null);
-        try {
-            final RepoinitTextProvider p = new RepoinitTextProvider();
-            for(String reference : config.references()) {
-                final String repoinitText = p.getRepoinitText(reference);
-                final List<Operation> ops = parser.parse(new StringReader(repoinitText));
-                log.info("Executing {} repoinit operations", ops.size());
-                processor.apply(s, ops);
-                s.save();
+        if ( config.references() != null && config.references().length > 0 ) {
+            // loginAdministrative is ok here, definitely an admin operation
+            final Session s = repo.loginAdministrative(null);
+            try {
+                final RepoinitTextProvider p = new RepoinitTextProvider();
+                for(String reference : config.references()) {
+                    final String repoinitText = p.getRepoinitText(reference);
+                    final List<Operation> ops = parser.parse(new StringReader(repoinitText));
+                    log.info("Executing {} repoinit operations", ops.size());
+                    processor.apply(s, ops);
+                    s.save();
+                }
+            } finally {
+                s.logout();
             }
-        } finally {
-            s.logout();
         }
     }
 }