This is an automated email from the ASF dual-hosted git repository.

olli pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-testing-paxexam.git


The following commit(s) were added to refs/heads/master by this push:
     new fd03367  SLING-9683 Provide GreenMail Option
fd03367 is described below

commit fd03367940de4617476cee524ca4ab21d75b3a40
Author: Oliver Lietz <[email protected]>
AuthorDate: Sun Aug 23 18:34:03 2020 +0200

    SLING-9683 Provide GreenMail Option
---
 .../apache/sling/testing/paxexam/SlingOptions.java | 18 ++++++++
 .../testing/paxexam/SlingVersionResolver.java      |  5 +++
 src/main/resources/templates/SlingOptions.hbs      | 18 ++++++++
 .../resources/templates/SlingVersionResolver.hbs   |  7 +++-
 .../paxexam/it/tests/SlingOptionsGreenmailIT.java  | 49 ++++++++++++++++++++++
 5 files changed, 96 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java 
b/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
index 616abab..99f5173 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/SlingOptions.java
@@ -18,10 +18,12 @@
  */
 package org.apache.sling.testing.paxexam;
 
+import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
 import org.ops4j.pax.exam.options.ModifiableCompositeOption;
 import org.ops4j.pax.exam.options.WrappedUrlProvisionOption;
 import org.ops4j.pax.exam.util.PathUtils;
 
+import static org.ops4j.pax.exam.CoreOptions.bootClasspathLibrary;
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
@@ -78,6 +80,22 @@ public class SlingOptions {
         );
     }
 
+    public static ModifiableCompositeOption greenmail() {
+        final MavenArtifactProvisionOption greenmail = 
mavenBundle().groupId("com.icegreen").artifactId("greenmail").version(versionResolver);
+        final MavenArtifactProvisionOption slf4j_api = 
mavenBundle().groupId("org.slf4j").artifactId("slf4j-api").version(versionResolver);
+        final MavenArtifactProvisionOption slf4j_simple = 
mavenBundle().groupId("org.slf4j").artifactId("slf4j-simple").version(versionResolver);
+        return composite(
+            greenmail,
+            
mavenBundle().groupId("jakarta.mail").artifactId("jakarta.mail-api").version(versionResolver),
+            
mavenBundle().groupId("com.sun.mail").artifactId("jakarta.mail").version(versionResolver),
+            
mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.junit").version(versionResolver),
+            // add GreenMail to boot classpath *also* to allow setting 
ssl.SocketFactory.provider to GreenMail's DummySSLSocketFactory
+            bootClasspathLibrary(greenmail).afterFramework(),
+            bootClasspathLibrary(slf4j_api).afterFramework(), // GreenMail 
dependency
+            bootClasspathLibrary(slf4j_simple).afterFramework() // GreenMail 
dependency
+        );
+    }
+
     public static ModifiableCompositeOption http() {
         return composite(
             
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.http.jetty").version(versionResolver),
diff --git 
a/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java 
b/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
index e104b4f..72529fe 100644
--- a/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
+++ b/src/main/java/org/apache/sling/testing/paxexam/SlingVersionResolver.java
@@ -42,6 +42,7 @@ public class SlingVersionResolver implements VersionResolver {
         
versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.stax-api-1.2",
 "1.2_1");
         
versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2",
 "2.9.0");
         
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl",
 "2.2.11_1");
+        
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.junit",
 "4.13_1");
         
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.tagsoup",
 "1.2.1_1");
         versions.put("org.apache.sling:org.apache.sling.scripting.jsp-api", 
"1.0.0");
         versions.put("org.apache.sling:org.apache.sling.scripting.el-api", 
"1.0.0");
@@ -78,16 +79,20 @@ public class SlingVersionResolver implements 
VersionResolver {
         versions.put("org.ow2.asm:asm", "7.1");
         versions.put("org.rnorth.duct-tape:duct-tape", "1.0.8");
         versions.put("org.slf4j:slf4j-api", "1.7.26");
+        versions.put("org.slf4j:slf4j-simple", "1.7.26");
         versions.put("org.slf4j:jcl-over-slf4j", "1.7.26");
         versions.put("org.testcontainers:testcontainers", "1.11.3");
         versions.put("ch.qos.logback:logback-core", "1.2.3");
         versions.put("ch.qos.logback:logback-classic", "1.2.3");
+        versions.put("com.icegreen:greenmail", "1.5.14");
+        versions.put("com.sun.mail:jakarta.mail", "1.6.5");
         versions.put("biz.aQute.bnd:biz.aQute.bndlib", "3.5.0");
         versions.put("biz.aQute.bnd:bndlib", "2.4.0");
         versions.put("io.rest-assured:json-path", "4.0.0");
         versions.put("io.rest-assured:rest-assured", "4.0.0");
         versions.put("io.rest-assured:rest-assured-common", "4.0.0");
         versions.put("io.rest-assured:xml-path", "4.0.0");
+        versions.put("jakarta.mail:jakarta.mail-api", "1.6.5");
         versions.put("com.composum.sling.core:composum-sling-core-commons", 
"1.9.4");
         versions.put("com.composum.sling.core:composum-sling-core-config", 
"1.9.4");
         versions.put("com.composum.sling.core:composum-sling-core-console", 
"1.9.4");
diff --git a/src/main/resources/templates/SlingOptions.hbs 
b/src/main/resources/templates/SlingOptions.hbs
index 68d27f4..e44c6af 100644
--- a/src/main/resources/templates/SlingOptions.hbs
+++ b/src/main/resources/templates/SlingOptions.hbs
@@ -18,10 +18,12 @@
  */
 package org.apache.sling.testing.paxexam;
 
+import org.ops4j.pax.exam.options.MavenArtifactProvisionOption;
 import org.ops4j.pax.exam.options.ModifiableCompositeOption;
 import org.ops4j.pax.exam.options.WrappedUrlProvisionOption;
 import org.ops4j.pax.exam.util.PathUtils;
 
+import static org.ops4j.pax.exam.CoreOptions.bootClasspathLibrary;
 import static org.ops4j.pax.exam.CoreOptions.composite;
 import static org.ops4j.pax.exam.CoreOptions.junitBundles;
 import static org.ops4j.pax.exam.CoreOptions.mavenBundle;
@@ -78,6 +80,22 @@ public class SlingOptions {
         );
     }
 
+    public static ModifiableCompositeOption greenmail() {
+        final MavenArtifactProvisionOption greenmail = 
mavenBundle().groupId("com.icegreen").artifactId("greenmail").version(versionResolver);
+        final MavenArtifactProvisionOption slf4j_api = 
mavenBundle().groupId("org.slf4j").artifactId("slf4j-api").version(versionResolver);
+        final MavenArtifactProvisionOption slf4j_simple = 
mavenBundle().groupId("org.slf4j").artifactId("slf4j-simple").version(versionResolver);
+        return composite(
+            greenmail,
+            
mavenBundle().groupId("jakarta.mail").artifactId("jakarta.mail-api").version(versionResolver),
+            
mavenBundle().groupId("com.sun.mail").artifactId("jakarta.mail").version(versionResolver),
+            
mavenBundle().groupId("org.apache.servicemix.bundles").artifactId("org.apache.servicemix.bundles.junit").version(versionResolver),
+            // add GreenMail to boot classpath *also* to allow setting 
ssl.SocketFactory.provider to GreenMail's DummySSLSocketFactory
+            bootClasspathLibrary(greenmail).afterFramework(),
+            bootClasspathLibrary(slf4j_api).afterFramework(), // GreenMail 
dependency
+            bootClasspathLibrary(slf4j_simple).afterFramework() // GreenMail 
dependency
+        );
+    }
+
     public static ModifiableCompositeOption http() {
         return composite(
             
mavenBundle().groupId("org.apache.felix").artifactId("org.apache.felix.http.jetty").version(versionResolver),
diff --git a/src/main/resources/templates/SlingVersionResolver.hbs 
b/src/main/resources/templates/SlingVersionResolver.hbs
index 48ae121..3130d1b 100644
--- a/src/main/resources/templates/SlingVersionResolver.hbs
+++ b/src/main/resources/templates/SlingVersionResolver.hbs
@@ -42,6 +42,7 @@ public class SlingVersionResolver implements VersionResolver {
         
versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.stax-api-1.2",
 "1.2_1");
         
versions.put("org.apache.servicemix.specs:org.apache.servicemix.specs.jaxb-api-2.2",
 "2.9.0");
         
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.jaxb-impl",
 "2.2.11_1");
+        
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.junit",
 "4.13_1");
         
versions.put("org.apache.servicemix.bundles:org.apache.servicemix.bundles.tagsoup",
 "1.2.1_1");
         versions.put("org.apache.sling:org.apache.sling.scripting.jsp-api", 
"1.0.0");
         versions.put("org.apache.sling:org.apache.sling.scripting.el-api", 
"1.0.0");
@@ -78,16 +79,20 @@ public class SlingVersionResolver implements 
VersionResolver {
         versions.put("org.ow2.asm:asm", "7.1");
         versions.put("org.rnorth.duct-tape:duct-tape", "1.0.8");
         versions.put("org.slf4j:slf4j-api", "1.7.26");
+        versions.put("org.slf4j:slf4j-simple", "1.7.26");
         versions.put("org.slf4j:jcl-over-slf4j", "1.7.26");
         versions.put("org.testcontainers:testcontainers", "1.11.3");
         versions.put("ch.qos.logback:logback-core", "1.2.3");
         versions.put("ch.qos.logback:logback-classic", "1.2.3");
+        versions.put("com.icegreen:greenmail", "1.5.14");
+        versions.put("com.sun.mail:jakarta.mail", "1.6.5");
         versions.put("biz.aQute.bnd:biz.aQute.bndlib", "3.5.0");
         versions.put("biz.aQute.bnd:bndlib", "2.4.0");
         versions.put("io.rest-assured:json-path", "4.0.0");
         versions.put("io.rest-assured:rest-assured", "4.0.0");
         versions.put("io.rest-assured:rest-assured-common", "4.0.0");
-        versions.put("io.rest-assured:xml-path", "4.0.0");{{#each bundles}}
+        versions.put("io.rest-assured:xml-path", "4.0.0");
+        versions.put("jakarta.mail:jakarta.mail-api", "1.6.5");{{#each 
bundles}}
         versions.put("{{groupId}}:{{artifactId}}", "{{version}}");{{/each}}
     }
 
diff --git 
a/src/test/java/org/apache/sling/testing/paxexam/it/tests/SlingOptionsGreenmailIT.java
 
b/src/test/java/org/apache/sling/testing/paxexam/it/tests/SlingOptionsGreenmailIT.java
new file mode 100644
index 0000000..efb51dd
--- /dev/null
+++ 
b/src/test/java/org/apache/sling/testing/paxexam/it/tests/SlingOptionsGreenmailIT.java
@@ -0,0 +1,49 @@
+/*
+ * 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.testing.paxexam.it.tests;
+
+import org.apache.sling.testing.paxexam.it.SlingOptionsTestSupport;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.ops4j.pax.exam.Configuration;
+import org.ops4j.pax.exam.Option;
+import org.ops4j.pax.exam.junit.PaxExam;
+import org.ops4j.pax.exam.spi.reactors.ExamReactorStrategy;
+import org.ops4j.pax.exam.spi.reactors.PerClass;
+
+import static org.apache.sling.testing.paxexam.SlingOptions.greenmail;
+import static org.ops4j.pax.exam.CoreOptions.options;
+
+@RunWith(PaxExam.class)
+@ExamReactorStrategy(PerClass.class)
+public class SlingOptionsGreenmailIT extends SlingOptionsTestSupport {
+
+    @Configuration
+    public Option[] configuration() {
+        return options(
+            baseConfiguration(),
+            greenmail()
+        );
+    }
+
+    @Test
+    public void test() {
+    }
+
+}

Reply via email to