SLING-8740 - RepositoryInitializerIT added
diff --git a/pom.xml b/pom.xml
index b27e4b8..4759aff 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,6 +88,10 @@
<name>bundle.filename</name>
<value>${basedir}/target/${project.build.finalName}.jar</value>
</property>
+ <property>
+ <name>repoinit.test.files.path</name>
+ <value>${basedir}/src/test/resources</value>
+ </property>
</systemProperties>
</configuration>
</plugin>
diff --git a/src/test/java/org/apache/sling/jcr/repoinit/it/RepoInitTestSupport.java b/src/test/java/org/apache/sling/jcr/repoinit/it/RepoInitTestSupport.java
index 38f761a..a22ea4f 100644
--- a/src/test/java/org/apache/sling/jcr/repoinit/it/RepoInitTestSupport.java
+++ b/src/test/java/org/apache/sling/jcr/repoinit/it/RepoInitTestSupport.java
@@ -20,7 +20,9 @@
import org.apache.sling.testing.paxexam.TestSupport;
import org.ops4j.pax.exam.Configuration;
import org.ops4j.pax.exam.Option;
+
import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
+
import static org.ops4j.pax.exam.CoreOptions.composite;
import static org.ops4j.pax.exam.CoreOptions.junitBundles;
import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
@@ -40,9 +42,12 @@
newConfiguration("org.apache.sling.jcr.base.internal.LoginAdminWhitelist")
.put("whitelist.bundles.regexp", "^PAXEXAM.*$")
.asOption(),
+ newConfiguration("org.apache.sling.jcr.repoinit.impl.RepositoryInitializer")
+ .put("references", RepositoryInitializerIT.REPOINIT_SRC_URLS)
+ .asOption(),
};
}
-
+
protected Option slingQuickstart() {
final String workingDirectory = workingDirectory();
final int httpPort = findFreePort();
diff --git a/src/test/java/org/apache/sling/jcr/repoinit/it/RepositoryInitializerIT.java b/src/test/java/org/apache/sling/jcr/repoinit/it/RepositoryInitializerIT.java
new file mode 100644
index 0000000..292ddb2
--- /dev/null
+++ b/src/test/java/org/apache/sling/jcr/repoinit/it/RepositoryInitializerIT.java
@@ -0,0 +1,76 @@
+/*
+ * 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.sling.jcr.repoinit.it;
+
+import static org.junit.Assert.assertTrue;
+
+import javax.inject.Inject;
+import javax.jcr.Session;
+import javax.jcr.SimpleCredentials;
+
+import org.apache.sling.jcr.api.SlingRepository;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+/** Verify that statements provided as URLS to our RepositoryInitializer
+ * are executed.
+ */
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class RepositoryInitializerIT extends RepoInitTestSupport {
+
+ static final String [] REPOINIT_SRC_URLS = {
+ "raw:file://" + getRepoinitFilesPath() + "/repoinit-path-1.txt",
+ "raw:file://" + getRepoinitFilesPath() + "/repoinit-path-2.txt",
+ };
+
+ private Session session;
+
+ @Inject
+ private SlingRepository repository;
+
+ @Before
+ public void setup() throws Exception {
+ session = repository.login(new SimpleCredentials("admin", "admin".toCharArray()));
+ }
+
+ @After
+ public void cleanup() {
+ if(session != null) {
+ session.logout();
+ }
+ }
+
+ @Test
+ public void path1Created() throws Exception {
+ assertTrue(session.itemExists("/repoinit-test/path-1"));
+ }
+
+ @Test
+ public void path2Created() throws Exception {
+ assertTrue(session.itemExists("/repoinit-test/path-2"));
+ }
+
+ static String getRepoinitFilesPath() {
+ return System.getProperty("repoinit.test.files.path");
+ }
+}
\ No newline at end of file
diff --git a/src/test/resources/repoinit-path-1.txt b/src/test/resources/repoinit-path-1.txt
new file mode 100644
index 0000000..ef819e3
--- /dev/null
+++ b/src/test/resources/repoinit-path-1.txt
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+create path /repoinit-test/path-1
\ No newline at end of file
diff --git a/src/test/resources/repoinit-path-2.txt b/src/test/resources/repoinit-path-2.txt
new file mode 100644
index 0000000..d4d4fcd
--- /dev/null
+++ b/src/test/resources/repoinit-path-2.txt
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+create path /repoinit-test/path-2
\ No newline at end of file