You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2022/06/09 08:11:26 UTC

[sling-org-apache-sling-feature-cpconverter] 01/01: SLING-11396 enforce complete runtime classpath

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

kwin pushed a commit to branch feature/enforce-complete-runtime-classpath
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-cpconverter.git

commit cb72f2077c2a0bdb39ef2bca01af470da11cfa52
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Thu Jun 9 10:11:20 2022 +0200

    SLING-11396 enforce complete runtime classpath
    
    WIP
---
 pom.xml | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/pom.xml b/pom.xml
index 5effb2e..ab656d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -412,6 +412,45 @@
           </execution>
         </executions>
       </plugin>
+      <!-- validate that all necessary dependencies are part of the application -->
+      <plugin>
+        <groupId>org.apache.maven.plugins</groupId>
+        <artifactId>maven-enforcer-plugin</artifactId>
+        <dependencies>
+          <dependency>
+            <groupId>org.apache.sling</groupId>
+            <artifactId>maven-enforcer-rules</artifactId>
+            <version>0.0.1-SNAPSHOT</version>
+          </dependency>
+        </dependencies>
+        <executions>
+          <execution>
+            <id>enforce-complete-runtime-classpath</id>
+            <goals>
+              <goal>enforce</goal>
+            </goals>
+            <configuration>
+              <rules>
+                <requireProvidedDependenciesInRuntimeClasspath
+                    implementation="org.apache.sling.maven.enforcer.RequireProvidedDependenciesInRuntimeClasspath">
+                  <excludes>
+                    <exclude>javax.servlet:javax.servlet-api</exclude><!-- not used in the CLI context -->
+                    <exclude>javax.servlet:servlet-api</exclude><!-- not used in the CLI context -->
+                    <exclude>org.apache.felix:org.apache.felix.scr.annotations</exclude><!-- annotations not used at run time -->
+                    <exclude>org.jetbrains:annotations</exclude>
+                    <exclude>org.apache.felix:org.apache.felix.healthcheck.annotation</exclude>
+                    <exclude>org.osgi:org.osgi.service.component.annotations</exclude>
+                    <exclude>org.osgi:org.osgi.annotation</exclude>
+                    <exclude>org.osgi:osgi.annotation</exclude>
+                    <exclude>org.osgi:org.osgi.annotation.bundle</exclude>
+                  </excludes>
+                </requireProvidedDependenciesInRuntimeClasspath>
+              </rules>
+              <fail>true</fail>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
     </plugins>
   </build>