You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2022/07/01 12:47:32 UTC

[sling-parent] branch master updated: SLING-11395 - Create a profile that allows running the Sling Starter ITs with the current SNAPSHOT being built (#27)

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

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


The following commit(s) were added to refs/heads/master by this push:
     new 1ae5745  SLING-11395 - Create a profile that allows running the Sling Starter ITs with the current SNAPSHOT being built (#27)
1ae5745 is described below

commit 1ae574564e2bd861a440267685eac8bca5cf4fce
Author: Robert Munteanu <ro...@apache.org>
AuthorDate: Fri Jul 1 14:47:27 2022 +0200

    SLING-11395 - Create a profile that allows running the Sling Starter ITs with the current SNAPSHOT being built (#27)
    
    Create the tarter-its profile, activated by the starter-its.starter.version property.
---
 sling-parent/pom.xml | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 202 insertions(+)

diff --git a/sling-parent/pom.xml b/sling-parent/pom.xml
index c92c764..5be7539 100644
--- a/sling-parent/pom.xml
+++ b/sling-parent/pom.xml
@@ -879,6 +879,208 @@
                 </pluginManagement>
             </build>
         </profile>
+        <profile>
+            <!--
+                This profile enables execution of the Sling Starter ITs on top of the specified
+                Starter version. It is designed to include the current version of the bundle as an override
+                so that the tests are executed against the version of the bundle being built.
+            -->
+            <id>starter-its</id>
+            <activation>
+                <property>
+                    <!-- the version of the Starter and Starter ITs to run, e.g. 12 or 13-SNAPSHOT -->
+                    <name>starter-its.starter.version</name>
+                </property>
+            </activation>
+            <properties>
+                <it.startTimeoutSeconds>120</it.startTimeoutSeconds>
+            </properties>
+            <dependencies>
+                <dependency>
+                     <groupId>org.apache.sling</groupId>
+                     <artifactId>org.apache.sling.launchpad.integration-tests</artifactId>
+                     <version>${starter-its.starter.version}</version>
+                     <scope>test</scope>
+                     <!--
+                        Remove various banned dependencies. These should be gradually removed from the integration-tests
+                        module.
+                    -->
+                     <exclusions>
+                         <exclusion>
+                             <groupId>org.apache.felix</groupId>
+                             <artifactId>org.apache.felix.scr.annotations</artifactId>
+                         </exclusion>
+                         <exclusion>
+                             <groupId>org.osgi</groupId>
+                             <artifactId>osgi.core</artifactId>
+                         </exclusion>
+                         <exclusion>
+                             <groupId>org.osgi</groupId>
+                             <artifactId>osgi.cmpn</artifactId>
+                         </exclusion>
+                     </exclusions>
+                </dependency>
+            </dependencies>
+            <build>
+                <plugins>
+                    <!-- reserve network ports for the integration tests -->
+                    <plugin>
+                        <groupId>org.codehaus.mojo</groupId>
+                        <artifactId>build-helper-maven-plugin</artifactId>
+                        <executions>
+                            <execution>
+                                <id>reserve-network-port</id>
+                                <goals>
+                                    <goal>reserve-network-port</goal>
+                                </goals>
+                                <phase>pre-integration-test</phase>
+                                <configuration>
+                                    <portNames>
+                                        <portName>starter-its.http.port</portName>
+                                    </portNames>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <plugin>
+                        <groupId>org.apache.sling</groupId>
+                        <artifactId>slingfeature-maven-plugin</artifactId>
+                        <version>1.6.4</version>
+                        <extensions>true</extensions>
+                        <executions>
+                            <execution>
+                                <id>create-current-artifact-feature</id>
+                                <goals>
+                                    <goal>include-artifact</goal>
+                                </goals>
+                                <configuration>
+                                    <includeArtifactClassifier>current-artifact-feature</includeArtifactClassifier>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>aggregate-features</id>
+                                <phase>prepare-package</phase>
+                                <goals>
+                                    <goal>aggregate-features</goal>
+                                    <goal>attach-features</goal>
+                                    <goal>analyse-features</goal>
+                                </goals>
+                                <configuration>
+                                    <aggregates>
+                                        <aggregate>
+                                            <!-- aggregate the Sling Starter with the additional testing files from this module -->
+                                            <classifier>testing_oak_tar</classifier>
+                                            <!-- depend on the exact same Slingstart version -->
+                                            <includeArtifact>
+                                                <groupId>org.apache.sling</groupId>
+                                                <artifactId>org.apache.sling.starter</artifactId>
+                                                <version>${starter-its.starter.version}</version>
+                                                <classifier>oak_tar_test</classifier>
+                                                <type>slingosgifeature</type>
+                                            </includeArtifact>
+                                            <includeClassifier>current-artifact-feature</includeClassifier>
+                                            <!-- To apply the same override rule for all clashes, a wildcard using '*' for
+                                                 groupID and artifactID can be used; this can be used as a catch all --> 
+                                            <artifactsOverrides>
+                                                <artifactsOverride>${project.groupId}:${project.artifactId}:${project.version}</artifactsOverride>
+                                            </artifactsOverrides>
+                                        </aggregate>
+                                    </aggregates>
+                                    <scans>
+                                        <scan>
+                                            <includeClassifier>testing_oak_tar</includeClassifier>
+                                        </scan>
+                                    </scans>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!-- launch the Sling instances to test; only oak-tar -->
+                    <plugin>
+                        <groupId>org.apache.sling</groupId>
+                        <artifactId>feature-launcher-maven-plugin</artifactId>
+                        <version>0.1.2</version>
+                        <configuration>
+                            <launches>
+                                <launch>
+                                    <id>sling-starter-oak-tar</id>
+                                    <!-- Include the feature previously aggregated -->
+                                    <feature>
+                                        <groupId>${project.groupId}</groupId>
+                                        <artifactId>${project.artifactId}</artifactId>
+                                        <version>${project.version}</version>
+                                        <classifier>testing_oak_tar</classifier>
+                                        <type>slingosgifeature</type>
+                                    </feature>
+                                    <launcherArguments>
+                                        <frameworkProperties>
+                                            <org.osgi.service.http.port>${starter-its.http.port}</org.osgi.service.http.port>
+                                        </frameworkProperties>
+                                    </launcherArguments>
+                                    <startTimeoutSeconds>${starter-its.startTimeoutSeconds}</startTimeoutSeconds>
+                                </launch>
+                            </launches>
+                        </configuration>
+                        <executions>
+                            <execution>
+                                <goals>
+                                    <goal>start</goal>
+                                    <goal>stop</goal>
+                                </goals>
+                            </execution>
+                        </executions>
+                    </plugin>
+                    <!-- run the ITs -->
+                    <plugin>
+                       <artifactId>maven-failsafe-plugin</artifactId>
+                       <!-- ensure that tests are run with JUnit 4, even if the test classpath has JUnit 5  -->
+                        <dependencies>
+                            <dependency>
+                                <groupId>org.apache.maven.surefire</groupId>
+                                <artifactId>surefire-junit47</artifactId>
+                                <version>${surefire.version}</version>
+                            </dependency>
+                        </dependencies>
+                       <executions>
+                           <execution>
+                               <goals>
+                                   <goal>integration-test</goal>
+                                   <goal>verify</goal>
+                               </goals>
+                           </execution>
+                       </executions>
+                       <configuration>
+                            <dependenciesToScan>
+                                <dependency>org.apache.sling:org.apache.sling.launchpad.integration-tests</dependency>
+                            </dependenciesToScan>
+                            <includes>
+                                <include>**/*Test.java</include>
+                                <include>**/*IT.java</include>
+                            </includes>
+                            <excludes>
+                                <exclude>${failsafe.exclude}</exclude>
+                                <!-- Don't run provisioning model ITs in the feature model context -->
+                                <exclude>org/apache/sling/launchpad/webapp/integrationtest/provisioning/**.java</exclude>
+                            </excludes>
+                           <systemPropertyVariables>
+                               <launchpad.http.server.url>http://localhost:${starter-its.http.port}/</launchpad.http.server.url>
+                               <starter.http.test.ports>false:${starter-its.http.port}</starter.http.test.ports>
+                               <starter.min.bundles.count>100</starter.min.bundles.count>
+                               <!-- Comma-separated list of paths to check for 200 status (added for SLING-10402) -->
+                               <starter.check.paths>
+                                    /slingshot/users/slingshot1/travel/home/images/home.jpg,
+                                    /slingshot/resources/images/background.jpg,
+                                    /slingshot/users/slingshot2/places/landing/images/landing.jpg,
+                                    /starter.html,
+                                    /bin/browser.html,
+                                    /system/console/bundles,
+                                </starter.check.paths>
+                           </systemPropertyVariables>
+                       </configuration>
+                    </plugin>
+                </plugins>
+            </build>
+        </profile>
     </profiles>
 
     <mailingLists>