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

[jackrabbit-filevault] branch master updated: JCRVLT-634 check shipped dependencies (#224)

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

kwin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jackrabbit-filevault.git


The following commit(s) were added to refs/heads/master by this push:
     new 424c8d98 JCRVLT-634 check shipped dependencies (#224)
424c8d98 is described below

commit 424c8d98e8ac5cdcc252cd7765a0a672e7781ad4
Author: Konrad Windszus <kw...@apache.org>
AuthorDate: Mon Jun 13 10:13:00 2022 +0200

    JCRVLT-634 check shipped dependencies (#224)
    
    Remove non necessary dependencies
    Add missing transitive provided dependency
---
 vault-cli/pom.xml                                  | 49 +++++++++++++++++++++-
 vault-core/pom.xml                                 |  8 +++-
 .../vault/packaging/integration/ImportIT.java      |  2 +-
 .../packaging/integration/IntegrationTestBase.java |  4 +-
 .../ReferenceableIdentifiersImportIT.java          |  2 +-
 vault-sync/pom.xml                                 |  6 ---
 vault-vlt/pom.xml                                  |  6 +--
 7 files changed, 60 insertions(+), 17 deletions(-)

diff --git a/vault-cli/pom.xml b/vault-cli/pom.xml
index e501bbe6..ae288865 100644
--- a/vault-cli/pom.xml
+++ b/vault-cli/pom.xml
@@ -119,6 +119,47 @@
                     </excludes>
                 </configuration>
             </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>1.0.0</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>*:txw2</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:woodstox-core</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:stax2-api</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:maven-artifact</exclude><!-- embedded in vault-core -->
+                                        <exclude>*:h2</exclude><!-- embedded in vault-core -->
+                                        <!-- no annotations are evaluated at run time -->
+                                        <exclude>org.jetbrains:annotations</exclude>
+                                        <exclude>org.osgi:org.osgi.annotation</exclude>
+                                        <exclude>org.osgi:org.osgi.annotation.versioning</exclude>
+                                        <exclude>org.osgi:org.osgi.service.metatype.annotations</exclude>
+                                        <exclude>org.osgi:org.osgi.service.component.annotations</exclude>
+                                    </excludes>
+                                </requireProvidedDependenciesInRuntimeClasspath>
+                            </rules>
+                        </configuration>
+                    </execution>
+                </executions>
+              </plugin>
         </plugins>
     </build>
 
@@ -152,6 +193,12 @@
             <artifactId>org.apache.jackrabbit.vault</artifactId>
             <version>3.6.1-SNAPSHOT</version>
         </dependency>
+        <!-- transitive (but with scope "provided") dependency of vault -->
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.framework</artifactId>
+            <scope>runtime</scope>
+        </dependency>
         <dependency>
             <groupId>org.apache.jackrabbit.vault</groupId>
             <artifactId>vault-vlt</artifactId>
@@ -177,7 +224,7 @@
         <dependency>
             <groupId>jline</groupId>
             <artifactId>jline</artifactId>
-            <version>0.9.94</version>
+            <version>1.0</version>
         </dependency>
 
         <!-- JCR Stuff -->
diff --git a/vault-core/pom.xml b/vault-core/pom.xml
index 0a9f9193..f0ef1868 100644
--- a/vault-core/pom.xml
+++ b/vault-core/pom.xml
@@ -241,13 +241,19 @@
             <optional>true</optional>
         </dependency>
 
-        <!-- for parsing Maven versions -->
+        <!-- for parsing Maven versions (org.apache.maven.artifact.versioning.ComparableVersion) -->
         <dependency>
             <groupId>org.apache.maven</groupId>
             <artifactId>maven-artifact</artifactId>
             <version>3.8.4</version>
             <!-- embedded, therefore not transitively relevant -->
             <scope>provided</scope>
+            <exclusions>
+                <exclusion>
+                    <artifactId>*</artifactId>
+                    <groupId>*</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
         <!-- for the https://github.com/h2database/h2database/blob/master/h2/src/main/org/h2/util/CloseWatcher.java -->
         <dependency>
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
index bc8b2a8c..ed5b045e 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ImportIT.java
@@ -31,6 +31,7 @@ import javax.jcr.SimpleCredentials;
 import javax.jcr.nodetype.ConstraintViolationException;
 import javax.jcr.nodetype.NodeType;
 
+import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.user.User;
 import org.apache.jackrabbit.api.security.user.UserManager;
@@ -46,7 +47,6 @@ import org.apache.jackrabbit.vault.fs.io.JcrArchive;
 import org.apache.jackrabbit.vault.fs.io.ZipArchive;
 import org.apache.jackrabbit.vault.packaging.PackageException;
 import org.apache.jackrabbit.vault.util.JcrConstants;
-import org.codehaus.plexus.util.ExceptionUtils;
 import org.junit.Assert;
 import org.junit.Assume;
 import org.junit.Before;
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
index ade2f40e..416459a3 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/IntegrationTestBase.java
@@ -62,6 +62,7 @@ import javax.jcr.security.AccessControlPolicyIterator;
 import javax.jcr.security.Privilege;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang3.SystemUtils;
 import org.apache.jackrabbit.api.JackrabbitSession;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlEntry;
 import org.apache.jackrabbit.api.security.JackrabbitAccessControlList;
@@ -111,7 +112,6 @@ import org.apache.jackrabbit.vault.packaging.impl.ActivityLog;
 import org.apache.jackrabbit.vault.packaging.impl.JcrPackageManagerImpl;
 import org.apache.jackrabbit.vault.packaging.impl.ZipVaultPackage;
 import org.apache.jackrabbit.vault.packaging.registry.impl.JcrPackageRegistry;
-import org.codehaus.plexus.util.Os;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -276,7 +276,7 @@ public class IntegrationTestBase  {
             FileUtils.deleteDirectory(directory);
         } catch (IOException ioe) {
             // retry after wait on Windows, as it may release file locks in a deferred manner
-            if (Os.isFamily(Os.FAMILY_WINDOWS)) {
+            if (SystemUtils.IS_OS_WINDOWS) {
                 try {
                     Thread.sleep(100);
                 } catch (InterruptedException ie) {
diff --git a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ReferenceableIdentifiersImportIT.java b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ReferenceableIdentifiersImportIT.java
index 907fec4e..0cf5e2dc 100644
--- a/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ReferenceableIdentifiersImportIT.java
+++ b/vault-core/src/test/java/org/apache/jackrabbit/vault/packaging/integration/ReferenceableIdentifiersImportIT.java
@@ -36,12 +36,12 @@ import javax.jcr.PropertyIterator;
 import javax.jcr.ReferentialIntegrityException;
 import javax.jcr.RepositoryException;
 
+import org.apache.commons.lang3.exception.ExceptionUtils;
 import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.commons.JcrUtils;
 import org.apache.jackrabbit.vault.fs.api.IdConflictPolicy;
 import org.apache.jackrabbit.vault.fs.io.ImportOptions;
 import org.apache.jackrabbit.vault.packaging.PackageException;
-import org.codehaus.plexus.util.ExceptionUtils;
 import org.junit.Assert;
 import org.junit.Test;
 
diff --git a/vault-sync/pom.xml b/vault-sync/pom.xml
index 6a646544..f9c48a4f 100644
--- a/vault-sync/pom.xml
+++ b/vault-sync/pom.xml
@@ -139,7 +139,6 @@
             <artifactId>commons-jci-fam</artifactId>
             <version>1.0</version>
         </dependency>
-
         <!-- OSGi Annotations: @Version -->
         <dependency>
             <groupId>org.osgi</groupId>
@@ -162,11 +161,6 @@
             <artifactId>org.apache.sling.jcr.api</artifactId>
             <version>2.0.6</version>
         </dependency>
-        <dependency>
-            <groupId>org.apache.sling</groupId>
-            <artifactId>org.apache.sling.commons.osgi</artifactId>
-            <version>2.0.6</version>
-        </dependency>
 
         <!-- SLF4j / Log4j -->
         <dependency>
diff --git a/vault-vlt/pom.xml b/vault-vlt/pom.xml
index 37483933..99f27a05 100644
--- a/vault-vlt/pom.xml
+++ b/vault-vlt/pom.xml
@@ -72,11 +72,7 @@
         <!-- SLF4j / Log4j -->
         <dependency>
             <groupId>org.slf4j</groupId>
-            <artifactId>slf4j-log4j12</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>log4j</groupId>
-            <artifactId>log4j</artifactId>
+            <artifactId>slf4j-api</artifactId>
         </dependency>
         <dependency>
             <groupId>commons-io</groupId>