Author: olli
Date: Fri Jul 22 17:37:32 2016
New Revision: 1753819

URL: http://svn.apache.org/viewvc?rev=1753819&view=rev
Log:
SLING-5680 Add Integration Tests for Scripting Thymeleaf

simplify (use test support and default Launchpad Oak Tar configuration)

Modified:
    
sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/ThymeleafTestSupport.java

Modified: 
sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/ThymeleafTestSupport.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/ThymeleafTestSupport.java?rev=1753819&r1=1753818&r2=1753819&view=diff
==============================================================================
--- 
sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/ThymeleafTestSupport.java
 (original)
+++ 
sling/trunk/contrib/scripting/org.apache.sling.scripting.thymeleaf/src/test/java/org/apache/sling/scripting/thymeleaf/it/tests/ThymeleafTestSupport.java
 Fri Jul 22 17:37:32 2016
@@ -19,9 +19,6 @@
 package org.apache.sling.scripting.thymeleaf.it.tests;
 
 import java.io.File;
-import java.io.IOException;
-import java.net.ServerSocket;
-import java.util.Dictionary;
 
 import javax.inject.Inject;
 import javax.script.ScriptEngineFactory;
@@ -31,13 +28,13 @@ import org.apache.sling.auth.core.Authen
 import org.apache.sling.engine.SlingRequestProcessor;
 import org.apache.sling.scripting.thymeleaf.it.app.Activator;
 import org.apache.sling.testing.paxexam.SlingOptions;
+import org.apache.sling.testing.paxexam.TestSupport;
 import org.ops4j.pax.exam.Configuration;
 import org.ops4j.pax.exam.Option;
 import org.ops4j.pax.exam.ProbeBuilder;
 import org.ops4j.pax.exam.TestProbeBuilder;
 import org.ops4j.pax.exam.util.Filter;
 import org.osgi.framework.Constants;
-import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.http.HttpService;
 import org.thymeleaf.ITemplateEngine;
 
@@ -45,16 +42,15 @@ import static org.apache.sling.testing.p
 import static 
org.apache.sling.testing.paxexam.SlingOptions.slingExtensionModels;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingJcrOak;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingLaunchpadOak;
+import static 
org.apache.sling.testing.paxexam.SlingOptions.slingLaunchpadOakTarConfiguration;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingScripting;
 import static org.apache.sling.testing.paxexam.SlingOptions.slingScriptingJsp;
 import static org.ops4j.pax.exam.CoreOptions.bundle;
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
-import static org.ops4j.pax.exam.CoreOptions.workingDirectory;
-import static org.ops4j.pax.exam.cm.ConfigurationAdminOptions.newConfiguration;
 
-public abstract class ThymeleafTestSupport {
+public abstract class ThymeleafTestSupport extends TestSupport {
 
     @Inject
     protected ServletResolver servletResolver;
@@ -75,33 +71,13 @@ public abstract class ThymeleafTestSuppo
     @Inject
     protected ITemplateEngine templateEngine;
 
-    @Inject
-    protected ConfigurationAdmin configurationAdmin;
-
-    protected static synchronized int findFreePort() {
-        try {
-            final ServerSocket serverSocket = new ServerSocket(0);
-            final int port = serverSocket.getLocalPort();
-            serverSocket.close();
-            return port;
-        } catch (Exception e) {
-            throw new RuntimeException(e);
-        }
-    }
-
-    protected int httpPort() throws IOException {
-        final Dictionary<String, Object> properties = 
configurationAdmin.getConfiguration("org.apache.felix.http").getProperties();
-        return 
Integer.parseInt(properties.get("org.osgi.service.http.port").toString());
-    }
-
     @Configuration
     public Option[] configuration() {
-        final String workingDirectory = String.format("target/paxexam/%s", 
getClass().getSimpleName());
         final String filename = System.getProperty("bundle.filename");
         final File file = new File(filename);
         return new Option[]{
-            workingDirectory(workingDirectory),
-            launchpad(workingDirectory),
+            baseConfiguration(),
+            launchpad(),
             // Sling Scripting Thymeleaf
             bundle(file.toURI().toString()),
             
mavenBundle().groupId("org.javassist").artifactId("javassist").versionAsInProject(),
@@ -125,28 +101,17 @@ public abstract class ThymeleafTestSuppo
         return testProbeBuilder;
     }
 
-    protected static Option launchpad(final String workingDirectory) {
+    protected Option launchpad() {
         final int httpPort = findFreePort();
-        final String slingHome = String.format("%s/sling", workingDirectory);
-        final String repositoryHome = String.format("%s/repository", 
slingHome);
-        final String localIndexDir = String.format("%s/index", repositoryHome);
+        final String workingDirectory = workingDirectory();
         return composite(
+            slingLaunchpadOakTarConfiguration(workingDirectory, httpPort),
             slingJcrOak(), // TODO if slingJcrOak() is called elsewhere, 
ResourceResolverFactory will not be created
             slingLaunchpadOak(),
             slingExtensionI18n(),
             slingExtensionModels(),
             slingScripting(),
             slingScriptingJsp(),
-            newConfiguration("org.apache.felix.http")
-                .put("org.osgi.service.http.port", httpPort)
-                .asOption(),
-            
newConfiguration("org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStoreService")
-                .put("repository.home", repositoryHome)
-                .put("name", "Default NodeStore")
-                .asOption(),
-            
newConfiguration("org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexProviderService")
-                .put("localIndexDir", localIndexDir)
-                .asOption(),
             
mavenBundle().groupId("org.apache.jackrabbit").artifactId("oak-segment").version(SlingOptions.versionResolver)
         );
     }


Reply via email to