diff --git a/.idea/libraries/compile.xml b/.idea/libraries/compile.xml
index 9bd86aa..143dc93 100644
--- a/.idea/libraries/compile.xml
+++ b/.idea/libraries/compile.xml
@@ -2,12 +2,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/libraries/test.xml b/.idea/libraries/test.xml
index d382c72..ce3c795 100644
--- a/.idea/libraries/test.xml
+++ b/.idea/libraries/test.xml
@@ -2,14 +2,18 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/rife/bld/BaseProject.java b/src/main/java/rife/bld/BaseProject.java
index 4421fc7..1792b44 100644
--- a/src/main/java/rife/bld/BaseProject.java
+++ b/src/main/java/rife/bld/BaseProject.java
@@ -250,6 +250,13 @@ public class BaseProject extends BuildExecutor {
* @since 1.5
*/
protected File libCompileDirectory = null;
+ /**
+ * The provided scope lib directory.
+ *
+ * @see #libProvidedDirectory()
+ * @since 1.8
+ */
+ protected File libProvidedDirectory = null;
/**
* The runtime scope lib directory.
*
@@ -1010,6 +1017,16 @@ public class BaseProject extends BuildExecutor {
return Objects.requireNonNullElseGet(libCompileDirectory, () -> new File(libDirectory(), "compile"));
}
+ /**
+ * Returns the project provided scope lib directory.
+ * Defaults to {@code "provided"} relative to {@link #libDirectory()}.
+ *
+ * @since 1.8
+ */
+ public File libProvidedDirectory() {
+ return Objects.requireNonNullElseGet(libProvidedDirectory, () -> new File(libDirectory(), "provided"));
+ }
+
/**
* Returns the project runtime scope lib directory.
* Defaults to {@code "runtime"} relative to {@link #libDirectory()}.
@@ -1130,6 +1147,7 @@ public class BaseProject extends BuildExecutor {
libDirectory().mkdirs();
libBldDirectory().mkdirs();
libCompileDirectory().mkdirs();
+ libProvidedDirectory().mkdirs();
libRuntimeDirectory().mkdirs();
if (libStandaloneDirectory() != null) {
libStandaloneDirectory().mkdirs();
@@ -1399,6 +1417,24 @@ public class BaseProject extends BuildExecutor {
// build the compilation classpath
var classpath = new ArrayList<>(jar_files.stream().map(file -> new File(dir_abs, file)).toList());
addLocalDependencies(classpath, Scope.compile);
+ return classpath;
+ }
+
+ /**
+ * Returns all the jar files that are in the provided scope classpath.
+ *
+ * By default, this collects all the jar files in the {@link #libProvidedDirectory()}
+ * and adds all the jar files from the provided scope local dependencies.
+ *
+ * @since 1.8
+ */
+ public List providedClasspathJars() {
+ // detect the jar files in the provided lib directory
+ var dir_abs = libProvidedDirectory().getAbsoluteFile();
+ var jar_files = FileUtils.getFileList(dir_abs, INCLUDED_JARS, EXCLUDED_JARS);
+
+ // build the compilation classpath
+ var classpath = new ArrayList<>(jar_files.stream().map(file -> new File(dir_abs, file)).toList());
addLocalDependencies(classpath, Scope.provided);
return classpath;
}
@@ -1491,7 +1527,7 @@ public class BaseProject extends BuildExecutor {
* @since 1.5
*/
public List compileMainClasspath() {
- return FileUtils.combineToAbsolutePaths(compileClasspathJars());
+ return FileUtils.combineToAbsolutePaths(compileClasspathJars(), providedClasspathJars());
}
/**
@@ -1505,7 +1541,7 @@ public class BaseProject extends BuildExecutor {
public List compileTestClasspath() {
var paths = new ArrayList();
paths.add(buildMainDirectory().getAbsolutePath());
- paths.addAll(FileUtils.combineToAbsolutePaths(compileClasspathJars(), testClasspathJars()));
+ paths.addAll(FileUtils.combineToAbsolutePaths(compileClasspathJars(), providedClasspathJars(), testClasspathJars()));
return paths;
}
@@ -1542,7 +1578,7 @@ public class BaseProject extends BuildExecutor {
paths.add(srcTestResourcesDirectory().getAbsolutePath());
paths.add(buildMainDirectory().getAbsolutePath());
paths.add(buildTestDirectory().getAbsolutePath());
- paths.addAll(FileUtils.combineToAbsolutePaths(compileClasspathJars(), runtimeClasspathJars(), standaloneClasspathJars(), testClasspathJars()));
+ paths.addAll(FileUtils.combineToAbsolutePaths(compileClasspathJars(), providedClasspathJars(), runtimeClasspathJars(), standaloneClasspathJars(), testClasspathJars()));
return paths;
}
diff --git a/src/main/java/rife/bld/dependencies/DependencyScopes.java b/src/main/java/rife/bld/dependencies/DependencyScopes.java
index fc98cfa..f719792 100644
--- a/src/main/java/rife/bld/dependencies/DependencyScopes.java
+++ b/src/main/java/rife/bld/dependencies/DependencyScopes.java
@@ -73,8 +73,23 @@ public class DependencyScopes extends LinkedHashMap {
*/
public DependencySet resolveCompileDependencies(ArtifactRetriever retriever, List repositories) {
return resolveScopedDependencies(retriever, repositories,
- new Scope[]{Scope.provided, Scope.compile},
new Scope[]{Scope.compile},
+ new Scope[]{Scope.compile},
+ null);
+ }
+
+ /**
+ * Returns the transitive set of dependencies that would be used for the provided scope in a project.
+ *
+ * @param retriever the retriever to use to get artifacts
+ * @param repositories the repositories to use for the resolution
+ * @return the provided scope dependency set
+ * @since 1.8
+ */
+ public DependencySet resolveProvidedDependencies(ArtifactRetriever retriever, List repositories) {
+ return resolveScopedDependencies(retriever, repositories,
+ new Scope[]{Scope.provided},
+ new Scope[]{Scope.compile, Scope.runtime},
null);
}
@@ -88,7 +103,7 @@ public class DependencyScopes extends LinkedHashMap {
*/
public DependencySet resolveRuntimeDependencies(ArtifactRetriever retriever, List repositories) {
return resolveScopedDependencies(retriever, repositories,
- new Scope[]{Scope.provided, Scope.compile, Scope.runtime},
+ new Scope[]{Scope.compile, Scope.runtime},
new Scope[]{Scope.compile, Scope.runtime},
resolveCompileDependencies(retriever, repositories));
}
diff --git a/src/main/java/rife/bld/operations/DownloadOperation.java b/src/main/java/rife/bld/operations/DownloadOperation.java
index 1799049..42bd326 100644
--- a/src/main/java/rife/bld/operations/DownloadOperation.java
+++ b/src/main/java/rife/bld/operations/DownloadOperation.java
@@ -28,6 +28,7 @@ public class DownloadOperation extends AbstractOperation {
private final List repositories_ = new ArrayList<>();
private final DependencyScopes dependencies_ = new DependencyScopes();
private File libCompileDirectory_;
+ private File libProvidedDirectory_;
private File libRuntimeDirectory_;
private File libStandaloneDirectory_;
private File libTestDirectory_;
@@ -41,6 +42,7 @@ public class DownloadOperation extends AbstractOperation {
*/
public void execute() {
executeDownloadCompileDependencies();
+ executeDownloadProvidedDependencies();
executeDownloadRuntimeDependencies();
executeDownloadStandaloneDependencies();
executeDownloadTestDependencies();
@@ -58,6 +60,15 @@ public class DownloadOperation extends AbstractOperation {
executeDownloadDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(artifactRetriever(), repositories()));
}
+ /**
+ * Part of the {@link #execute} operation, download the {@code provided} scope artifacts.
+ *
+ * @since 1.8
+ */
+ protected void executeDownloadProvidedDependencies() {
+ executeDownloadDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(artifactRetriever(), repositories()));
+ }
+
/**
* Part of the {@link #execute} operation, download the {@code runtime} scope artifacts.
*
@@ -123,6 +134,7 @@ public class DownloadOperation extends AbstractOperation {
.repositories(project.repositories())
.dependencies(project.dependencies())
.libCompileDirectory(project.libCompileDirectory())
+ .libProvidedDirectory(project.libProvidedDirectory())
.libRuntimeDirectory(project.libRuntimeDirectory())
.libStandaloneDirectory(project.libStandaloneDirectory())
.libTestDirectory(project.libTestDirectory())
@@ -180,6 +192,18 @@ public class DownloadOperation extends AbstractOperation {
return this;
}
+ /**
+ * Provides the {@code provided} scope download directory.
+ *
+ * @param directory the directory to download the {@code provided} scope artifacts into
+ * @return this operation instance
+ * @since 1.8
+ */
+ public DownloadOperation libProvidedDirectory(File directory) {
+ libProvidedDirectory_ = directory;
+ return this;
+ }
+
/**
* Provides the {@code runtime} scope download directory.
*
@@ -288,6 +312,16 @@ public class DownloadOperation extends AbstractOperation {
return libCompileDirectory_;
}
+ /**
+ * Retrieves the {@code provided} scope download directory.
+ *
+ * @return the {@code provided} scope download directory
+ * @since 1.8
+ */
+ public File libProvidedDirectory() {
+ return libProvidedDirectory_;
+ }
+
/**
* Retrieves the {@code runtime} scope download directory.
*
diff --git a/src/main/java/rife/bld/operations/PurgeOperation.java b/src/main/java/rife/bld/operations/PurgeOperation.java
index c978f4d..baeb3ee 100644
--- a/src/main/java/rife/bld/operations/PurgeOperation.java
+++ b/src/main/java/rife/bld/operations/PurgeOperation.java
@@ -28,6 +28,7 @@ public class PurgeOperation extends AbstractOperation {
private final List repositories_ = new ArrayList<>();
private final DependencyScopes dependencies_ = new DependencyScopes();
private File libCompileDirectory_;
+ private File libProvidedDirectory_;
private File libRuntimeDirectory_;
private File libStandaloneDirectory_;
private File libTestDirectory_;
@@ -41,6 +42,7 @@ public class PurgeOperation extends AbstractOperation {
*/
public void execute() {
executePurgeCompileDependencies();
+ executePurgeProvidedDependencies();
executePurgeRuntimeDependencies();
executePurgeStandaloneDependencies();
executePurgeTestDependencies();
@@ -58,6 +60,15 @@ public class PurgeOperation extends AbstractOperation {
executePurgeDependencies(libCompileDirectory(), dependencies().resolveCompileDependencies(artifactRetriever(), repositories()));
}
+ /**
+ * Part of the {@link #execute} operation, purge the {@code provided} scope artifacts.
+ *
+ * @since 1.8
+ */
+ protected void executePurgeProvidedDependencies() {
+ executePurgeDependencies(libProvidedDirectory(), dependencies().resolveProvidedDependencies(artifactRetriever(), repositories()));
+ }
+
/**
* Part of the {@link #execute} operation, purge the {@code runtime} scope artifacts.
*
@@ -137,6 +148,7 @@ public class PurgeOperation extends AbstractOperation {
.repositories(project.repositories())
.dependencies(project.dependencies())
.libCompileDirectory(project.libCompileDirectory())
+ .libProvidedDirectory(project.libProvidedDirectory())
.libRuntimeDirectory(project.libRuntimeDirectory())
.libStandaloneDirectory(project.libStandaloneDirectory())
.libTestDirectory(project.libTestDirectory())
@@ -220,6 +232,18 @@ public class PurgeOperation extends AbstractOperation {
return this;
}
+ /**
+ * Provides the {@code provided} scope purge directory.
+ *
+ * @param directory the directory to purge the {@code provided} scope artifacts from
+ * @return this operation instance
+ * @since 1.8
+ */
+ public PurgeOperation libProvidedDirectory(File directory) {
+ libProvidedDirectory_ = directory;
+ return this;
+ }
+
/**
* Provides the {@code runtime} scope purge directory.
*
@@ -302,6 +326,16 @@ public class PurgeOperation extends AbstractOperation {
return libCompileDirectory_;
}
+ /**
+ * Retrieves the {@code provided} scope purge directory.
+ *
+ * @return the {@code provided} scope purge directory
+ * @since 1.8
+ */
+ public File libProvidedDirectory() {
+ return libProvidedDirectory_;
+ }
+
/**
* Retrieves the {@code runtime} scope purge directory.
*
diff --git a/src/main/resources/BLD_VERSION b/src/main/resources/BLD_VERSION
index 6620470..53bc174 100644
--- a/src/main/resources/BLD_VERSION
+++ b/src/main/resources/BLD_VERSION
@@ -1 +1 @@
-1.7.6-SNAPSHOT
\ No newline at end of file
+1.8.0-SNAPSHOT
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/base/idea/libraries/compile.xml b/src/main/resources/templates/bld/base/idea/libraries/compile.xml
index 9bd86aa..143dc93 100644
--- a/src/main/resources/templates/bld/base/idea/libraries/compile.xml
+++ b/src/main/resources/templates/bld/base/idea/libraries/compile.xml
@@ -2,12 +2,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/base/idea/libraries/test.xml b/src/main/resources/templates/bld/base/idea/libraries/test.xml
index b80486a..c16475a 100644
--- a/src/main/resources/templates/bld/base/idea/libraries/test.xml
+++ b/src/main/resources/templates/bld/base/idea/libraries/test.xml
@@ -2,13 +2,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/base/vscode/settings.json b/src/main/resources/templates/bld/base/vscode/settings.json
index 126201f..8bc7a1b 100644
--- a/src/main/resources/templates/bld/base/vscode/settings.json
+++ b/src/main/resources/templates/bld/base/vscode/settings.json
@@ -9,6 +9,7 @@
"java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-{{v version/}}.jar",
"lib/compile/*.jar",
+ "lib/provided/*.jar",
"lib/runtime/*.jar",
"lib/test/*.jar"
]
diff --git a/src/main/resources/templates/bld/blank/idea/libraries/compile.xml b/src/main/resources/templates/bld/blank/idea/libraries/compile.xml
index 9bd86aa..143dc93 100644
--- a/src/main/resources/templates/bld/blank/idea/libraries/compile.xml
+++ b/src/main/resources/templates/bld/blank/idea/libraries/compile.xml
@@ -2,12 +2,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/blank/idea/libraries/test.xml b/src/main/resources/templates/bld/blank/idea/libraries/test.xml
index b80486a..c16475a 100644
--- a/src/main/resources/templates/bld/blank/idea/libraries/test.xml
+++ b/src/main/resources/templates/bld/blank/idea/libraries/test.xml
@@ -2,13 +2,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/blank/vscode/settings.json b/src/main/resources/templates/bld/blank/vscode/settings.json
index 126201f..8bc7a1b 100644
--- a/src/main/resources/templates/bld/blank/vscode/settings.json
+++ b/src/main/resources/templates/bld/blank/vscode/settings.json
@@ -9,6 +9,7 @@
"java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-{{v version/}}.jar",
"lib/compile/*.jar",
+ "lib/provided/*.jar",
"lib/runtime/*.jar",
"lib/test/*.jar"
]
diff --git a/src/main/resources/templates/bld/lib/idea/libraries/compile.xml b/src/main/resources/templates/bld/lib/idea/libraries/compile.xml
index 9bd86aa..143dc93 100644
--- a/src/main/resources/templates/bld/lib/idea/libraries/compile.xml
+++ b/src/main/resources/templates/bld/lib/idea/libraries/compile.xml
@@ -2,12 +2,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/lib/idea/libraries/test.xml b/src/main/resources/templates/bld/lib/idea/libraries/test.xml
index b80486a..c16475a 100644
--- a/src/main/resources/templates/bld/lib/idea/libraries/test.xml
+++ b/src/main/resources/templates/bld/lib/idea/libraries/test.xml
@@ -2,13 +2,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/lib/vscode/settings.json b/src/main/resources/templates/bld/lib/vscode/settings.json
index 126201f..8bc7a1b 100644
--- a/src/main/resources/templates/bld/lib/vscode/settings.json
+++ b/src/main/resources/templates/bld/lib/vscode/settings.json
@@ -9,6 +9,7 @@
"java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-{{v version/}}.jar",
"lib/compile/*.jar",
+ "lib/provided/*.jar",
"lib/runtime/*.jar",
"lib/test/*.jar"
]
diff --git a/src/main/resources/templates/bld/rife2_hello/idea/libraries/compile.xml b/src/main/resources/templates/bld/rife2_hello/idea/libraries/compile.xml
index 9bd86aa..143dc93 100644
--- a/src/main/resources/templates/bld/rife2_hello/idea/libraries/compile.xml
+++ b/src/main/resources/templates/bld/rife2_hello/idea/libraries/compile.xml
@@ -2,12 +2,16 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/rife2_hello/idea/libraries/test.xml b/src/main/resources/templates/bld/rife2_hello/idea/libraries/test.xml
index b80486a..c16475a 100644
--- a/src/main/resources/templates/bld/rife2_hello/idea/libraries/test.xml
+++ b/src/main/resources/templates/bld/rife2_hello/idea/libraries/test.xml
@@ -2,13 +2,17 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/bld/rife2_hello/vscode/settings.json b/src/main/resources/templates/bld/rife2_hello/vscode/settings.json
index 17ef30a..63a4e07 100644
--- a/src/main/resources/templates/bld/rife2_hello/vscode/settings.json
+++ b/src/main/resources/templates/bld/rife2_hello/vscode/settings.json
@@ -10,6 +10,7 @@
"java.project.referencedLibraries": [
"${HOME}/.bld/dist/bld-{{v version/}}.jar",
"lib/compile/*.jar",
+ "lib/provided/*.jar",
"lib/runtime/*.jar",
"lib/standalone/*.jar",
"lib/test/*.jar"
diff --git a/src/test/java/rife/bld/TestProject.java b/src/test/java/rife/bld/TestProject.java
index d432a9d..eaea1a8 100644
--- a/src/test/java/rife/bld/TestProject.java
+++ b/src/test/java/rife/bld/TestProject.java
@@ -307,6 +307,7 @@ public class TestProject {
/lib/bld/bld-build.hash
/lib/compile
/lib/compile/rife2-1.5.11.jar
+ /lib/provided
/lib/runtime
/lib/test
/lib/test/apiguardian-api-1.1.2.jar
@@ -321,6 +322,7 @@ public class TestProject {
/lib/test/opentest4j-1.2.0.jar""", FileUtils.generateDirectoryListing(tmp));
FileUtils.deleteDirectory(new File(tmp, "lib/compile"));
+ FileUtils.deleteDirectory(new File(tmp, "lib/provided"));
FileUtils.deleteDirectory(new File(tmp, "lib/runtime"));
FileUtils.deleteDirectory(new File(tmp, "lib/test"));
assertEquals("""
@@ -346,6 +348,7 @@ public class TestProject {
/lib/bld/bld-build.hash
/lib/compile
/lib/compile/rife2-1.5.12.jar
+ /lib/provided
/lib/runtime
/lib/test
/lib/test/apiguardian-api-1.1.2.jar
@@ -369,6 +372,7 @@ public class TestProject {
/lib/bld/bld-build.hash
/lib/compile
/lib/compile/rife2-1.5.15.jar
+ /lib/provided
/lib/runtime
/lib/test
/lib/test/apiguardian-api-1.1.2.jar
diff --git a/src/test/java/rife/bld/operations/TestCleanOperation.java b/src/test/java/rife/bld/operations/TestCleanOperation.java
index d5f24f1..ed8a76c 100644
--- a/src/test/java/rife/bld/operations/TestCleanOperation.java
+++ b/src/test/java/rife/bld/operations/TestCleanOperation.java
@@ -116,6 +116,7 @@ public class TestCleanOperation {
/lib
/lib/bld
/lib/compile
+ /lib/provided
/lib/runtime
/lib/standalone
/lib/test
@@ -139,6 +140,7 @@ public class TestCleanOperation {
/lib
/lib/bld
/lib/compile
+ /lib/provided
/lib/runtime
/lib/standalone
/lib/test
diff --git a/src/test/java/rife/bld/operations/TestCreateBaseOperation.java b/src/test/java/rife/bld/operations/TestCreateBaseOperation.java
index 79edde2..d410755 100644
--- a/src/test/java/rife/bld/operations/TestCreateBaseOperation.java
+++ b/src/test/java/rife/bld/operations/TestCreateBaseOperation.java
@@ -88,6 +88,7 @@ public class TestCreateBaseOperation {
/myapp/lib/bld/bld-wrapper\\.jar
/myapp/lib/bld/bld-wrapper\\.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
@@ -149,6 +150,7 @@ public class TestCreateBaseOperation {
/myapp/lib/bld/bld-wrapper\\.jar
/myapp/lib/bld/bld-wrapper\\.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
@@ -223,6 +225,7 @@ public class TestCreateBaseOperation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/test
/yourthing/src
@@ -285,6 +288,7 @@ public class TestCreateBaseOperation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/test
/yourthing/src
diff --git a/src/test/java/rife/bld/operations/TestCreateBlankOperation.java b/src/test/java/rife/bld/operations/TestCreateBlankOperation.java
index c66e3ec..24799b8 100644
--- a/src/test/java/rife/bld/operations/TestCreateBlankOperation.java
+++ b/src/test/java/rife/bld/operations/TestCreateBlankOperation.java
@@ -95,6 +95,7 @@ public class TestCreateBlankOperation {
/myapp/lib/bld/bld-wrapper\\.jar
/myapp/lib/bld/bld-wrapper\\.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/lib/test/apiguardian-api-1\\.1\\.2-sources\\.jar
@@ -174,6 +175,7 @@ public class TestCreateBlankOperation {
/myapp/lib/bld/bld-wrapper\\.jar
/myapp/lib/bld/bld-wrapper\\.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/lib/test/apiguardian-api-1\\.1\\.2-sources\\.jar
@@ -266,6 +268,7 @@ public class TestCreateBlankOperation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/test
/yourthing/src
@@ -390,6 +393,7 @@ public class TestCreateBlankOperation {
/myapp/lib/local/junit-platform-engine-1\\.10\\.0\\.jar
/myapp/lib/local/opentest4j-1\\.3\\.0-sources\\.jar
/myapp/lib/local/opentest4j-1\\.3\\.0\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
@@ -511,6 +515,7 @@ public class TestCreateBlankOperation {
/myapp/lib/local_test/junit-platform-engine-1\\.10\\.0\\.jar
/myapp/lib/local_test/opentest4j-1\\.3\\.0-sources\\.jar
/myapp/lib/local_test/opentest4j-1\\.3\\.0\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
diff --git a/src/test/java/rife/bld/operations/TestCreateLibOperation.java b/src/test/java/rife/bld/operations/TestCreateLibOperation.java
index 7cfb736..3345814 100644
--- a/src/test/java/rife/bld/operations/TestCreateLibOperation.java
+++ b/src/test/java/rife/bld/operations/TestCreateLibOperation.java
@@ -86,6 +86,7 @@ public class TestCreateLibOperation {
/myapp/lib/bld/bld-wrapper.jar
/myapp/lib/bld/bld-wrapper.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
@@ -146,6 +147,7 @@ public class TestCreateLibOperation {
/myapp/lib/bld/bld-wrapper.jar
/myapp/lib/bld/bld-wrapper.properties
/myapp/lib/compile
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/test
/myapp/src
@@ -220,6 +222,7 @@ public class TestCreateLibOperation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/test
/yourthing/src
@@ -281,6 +284,7 @@ public class TestCreateLibOperation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/test
/yourthing/src
diff --git a/src/test/java/rife/bld/operations/TestCreateRife2Operation.java b/src/test/java/rife/bld/operations/TestCreateRife2Operation.java
index 4d258c7..7ddb852 100644
--- a/src/test/java/rife/bld/operations/TestCreateRife2Operation.java
+++ b/src/test/java/rife/bld/operations/TestCreateRife2Operation.java
@@ -102,6 +102,7 @@ public class TestCreateRife2Operation {
/myapp/lib/compile
/myapp/lib/compile/rife2-.+-sources\\.jar
/myapp/lib/compile/rife2-.+\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/standalone
/myapp/lib/standalone/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar
@@ -215,6 +216,7 @@ public class TestCreateRife2Operation {
/myapp/lib/compile
/myapp/lib/compile/rife2-.+-sources\\.jar
/myapp/lib/compile/rife2-.+\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/standalone
/myapp/lib/standalone/jakarta\\.servlet-api-6\\.0\\.0-sources\\.jar
@@ -345,6 +347,7 @@ public class TestCreateRife2Operation {
/yourthing/lib/bld/bld-wrapper.jar
/yourthing/lib/bld/bld-wrapper.properties
/yourthing/lib/compile
+ /yourthing/lib/provided
/yourthing/lib/runtime
/yourthing/lib/standalone
/yourthing/lib/test
@@ -508,6 +511,7 @@ public class TestCreateRife2Operation {
/myapp/lib/local/slf4j-api-2\\.0\\.9\\.jar
/myapp/lib/local/slf4j-simple-2\\.0\\.9-sources\\.jar
/myapp/lib/local/slf4j-simple-2\\.0\\.9\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/standalone
/myapp/lib/test
@@ -677,6 +681,7 @@ public class TestCreateRife2Operation {
/myapp/lib/local_test/junit-platform-engine-1\\.10\\.0\\.jar
/myapp/lib/local_test/opentest4j-1\\.3\\.0-sources\\.jar
/myapp/lib/local_test/opentest4j-1\\.3\\.0\\.jar
+ /myapp/lib/provided
/myapp/lib/runtime
/myapp/lib/standalone
/myapp/lib/test
diff --git a/src/test/java/rife/bld/operations/TestDownloadOperation.java b/src/test/java/rife/bld/operations/TestDownloadOperation.java
index 673ae82..eda94fb 100644
--- a/src/test/java/rife/bld/operations/TestDownloadOperation.java
+++ b/src/test/java/rife/bld/operations/TestDownloadOperation.java
@@ -22,6 +22,7 @@ public class TestDownloadOperation {
assertTrue(operation.dependencies().isEmpty());
assertTrue(operation.repositories().isEmpty());
assertNull(operation.libCompileDirectory());
+ assertNull(operation.libProvidedDirectory());
assertNull(operation.libRuntimeDirectory());
assertNull(operation.libStandaloneDirectory());
assertNull(operation.libTestDirectory());
@@ -37,13 +38,15 @@ public class TestDownloadOperation {
var dir2 = new File("dir2");
var dir3 = new File("dir3");
var dir4 = new File("dir4");
+ var dir5 = new File("dir5");
var operation1 = new DownloadOperation()
.repositories(List.of(repository1, repository2))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
var dependency_scopes = new DependencyScopes();
dependency_scopes.scope(Scope.compile).include(dependency1).include(dependency2);
operation1.dependencies(dependency_scopes);
@@ -52,15 +55,17 @@ public class TestDownloadOperation {
assertTrue(operation1.dependencies().scope(Scope.compile).contains(dependency1));
assertTrue(operation1.dependencies().scope(Scope.compile).contains(dependency2));
assertEquals(dir1, operation1.libCompileDirectory());
- assertEquals(dir2, operation1.libRuntimeDirectory());
- assertEquals(dir3, operation1.libStandaloneDirectory());
- assertEquals(dir4, operation1.libTestDirectory());
+ assertEquals(dir2, operation1.libProvidedDirectory());
+ assertEquals(dir3, operation1.libRuntimeDirectory());
+ assertEquals(dir4, operation1.libStandaloneDirectory());
+ assertEquals(dir5, operation1.libTestDirectory());
var operation2 = new DownloadOperation()
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation2.repositories().add(repository1);
operation2.repositories().add(repository2);
operation2.dependencies().scope(Scope.compile).include(dependency1).include(dependency2);
@@ -70,9 +75,10 @@ public class TestDownloadOperation {
assertTrue(operation2.dependencies().scope(Scope.compile).contains(dependency1));
assertTrue(operation2.dependencies().scope(Scope.compile).contains(dependency2));
assertEquals(dir1, operation2.libCompileDirectory());
- assertEquals(dir2, operation2.libRuntimeDirectory());
- assertEquals(dir3, operation2.libStandaloneDirectory());
- assertEquals(dir4, operation2.libTestDirectory());
+ assertEquals(dir2, operation2.libProvidedDirectory());
+ assertEquals(dir3, operation2.libRuntimeDirectory());
+ assertEquals(dir4, operation2.libStandaloneDirectory());
+ assertEquals(dir5, operation2.libTestDirectory());
var operation3 = new DownloadOperation()
.repositories(repository1, repository2);
@@ -89,19 +95,24 @@ public class TestDownloadOperation {
var dir2 = new File(tmp, "dir2");
var dir3 = new File(tmp, "dir3");
var dir4 = new File(tmp, "dir4");
+ var dir5 = new File(tmp, "dir5");
dir1.mkdirs();
dir2.mkdirs();
dir3.mkdirs();
dir4.mkdirs();
+ dir5.mkdirs();
var operation = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation.dependencies().scope(Scope.standalone)
@@ -115,15 +126,17 @@ public class TestDownloadOperation {
/dir1
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
} finally {
FileUtils.deleteDirectory(tmp);
@@ -139,21 +152,26 @@ public class TestDownloadOperation {
var dir2 = new File(tmp, "dir2");
var dir3 = new File(tmp, "dir3");
var dir4 = new File(tmp, "dir4");
+ var dir5 = new File(tmp, "dir5");
dir1.mkdirs();
dir2.mkdirs();
dir3.mkdirs();
dir4.mkdirs();
+ dir5.mkdirs();
var operation = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4)
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5)
.downloadJavadoc(true)
.downloadSources(true);
operation.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation.dependencies().scope(Scope.standalone)
@@ -169,29 +187,33 @@ public class TestDownloadOperation {
/dir1/commons-lang3-3.12.0-sources.jar
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4-javadoc.jar
- /dir2/commons-collections4-4.4-sources.jar
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0-javadoc.jar
+ /dir2/jakarta.servlet-api-6.0.0-sources.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6-javadoc.jar
- /dir3/slf4j-api-2.0.6-sources.jar
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6-javadoc.jar
- /dir3/slf4j-simple-2.0.6-sources.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4-javadoc.jar
+ /dir3/commons-collections4-4.4-sources.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1-javadoc.jar
- /dir4/httpclient5-5.2.1-sources.jar
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2-javadoc.jar
- /dir4/httpcore5-5.2-sources.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2-javadoc.jar
- /dir4/httpcore5-h2-5.2-sources.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36-javadoc.jar
- /dir4/slf4j-api-1.7.36-sources.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6-javadoc.jar
+ /dir4/slf4j-api-2.0.6-sources.jar
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6-javadoc.jar
+ /dir4/slf4j-simple-2.0.6-sources.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1-javadoc.jar
+ /dir5/httpclient5-5.2.1-sources.jar
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2-javadoc.jar
+ /dir5/httpcore5-5.2-sources.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2-javadoc.jar
+ /dir5/httpcore5-h2-5.2-sources.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36-javadoc.jar
+ /dir5/slf4j-api-1.7.36-sources.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
} finally {
FileUtils.deleteDirectory(tmp);
@@ -216,6 +238,8 @@ public class TestDownloadOperation {
project.repositories().add(Repository.MAVEN_CENTRAL);
project.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ project.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
project.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
project.dependencies().scope(Scope.standalone)
@@ -234,6 +258,9 @@ public class TestDownloadOperation {
/lib/compile
/lib/compile/commons-lang3-3.12.0-sources.jar
/lib/compile/commons-lang3-3.12.0.jar
+ /lib/provided
+ /lib/provided/jakarta.servlet-api-6.0.0-sources.jar
+ /lib/provided/jakarta.servlet-api-6.0.0.jar
/lib/runtime
/lib/runtime/commons-collections4-4.4-sources.jar
/lib/runtime/commons-collections4-4.4.jar
@@ -290,6 +317,7 @@ public class TestDownloadOperation {
/lib/compile
/lib/compile/stripe-java-20.136.0-sources.jar
/lib/compile/stripe-java-20.136.0.jar
+ /lib/provided
/lib/runtime
/lib/runtime/gson-2.9.0-sources.jar
/lib/runtime/gson-2.9.0.jar
diff --git a/src/test/java/rife/bld/operations/TestPurgeOperation.java b/src/test/java/rife/bld/operations/TestPurgeOperation.java
index 45a23af..aeff1b7 100644
--- a/src/test/java/rife/bld/operations/TestPurgeOperation.java
+++ b/src/test/java/rife/bld/operations/TestPurgeOperation.java
@@ -22,6 +22,7 @@ public class TestPurgeOperation {
assertTrue(operation.dependencies().isEmpty());
assertTrue(operation.repositories().isEmpty());
assertNull(operation.libCompileDirectory());
+ assertNull(operation.libProvidedDirectory());
assertNull(operation.libRuntimeDirectory());
assertNull(operation.libStandaloneDirectory());
assertNull(operation.libTestDirectory());
@@ -37,13 +38,15 @@ public class TestPurgeOperation {
var dir2 = new File("dir2");
var dir3 = new File("dir3");
var dir4 = new File("dir4");
+ var dir5 = new File("dir5");
var operation1 = new PurgeOperation()
.repositories(List.of(repository1, repository2))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
var dependency_scopes = new DependencyScopes();
dependency_scopes.scope(Scope.compile).include(dependency1).include(dependency2);
operation1.dependencies(dependency_scopes);
@@ -52,15 +55,17 @@ public class TestPurgeOperation {
assertTrue(operation1.dependencies().scope(Scope.compile).contains(dependency1));
assertTrue(operation1.dependencies().scope(Scope.compile).contains(dependency2));
assertEquals(dir1, operation1.libCompileDirectory());
- assertEquals(dir2, operation1.libRuntimeDirectory());
- assertEquals(dir3, operation1.libStandaloneDirectory());
- assertEquals(dir4, operation1.libTestDirectory());
+ assertEquals(dir2, operation1.libProvidedDirectory());
+ assertEquals(dir3, operation1.libRuntimeDirectory());
+ assertEquals(dir4, operation1.libStandaloneDirectory());
+ assertEquals(dir5, operation1.libTestDirectory());
var operation2 = new PurgeOperation()
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation2.repositories().add(repository1);
operation2.repositories().add(repository2);
operation2.dependencies().scope(Scope.compile).include(dependency1).include(dependency2);
@@ -70,9 +75,10 @@ public class TestPurgeOperation {
assertTrue(operation2.dependencies().scope(Scope.compile).contains(dependency1));
assertTrue(operation2.dependencies().scope(Scope.compile).contains(dependency2));
assertEquals(dir1, operation2.libCompileDirectory());
- assertEquals(dir2, operation2.libRuntimeDirectory());
- assertEquals(dir3, operation2.libStandaloneDirectory());
- assertEquals(dir4, operation2.libTestDirectory());
+ assertEquals(dir2, operation2.libProvidedDirectory());
+ assertEquals(dir3, operation2.libRuntimeDirectory());
+ assertEquals(dir4, operation2.libStandaloneDirectory());
+ assertEquals(dir5, operation2.libTestDirectory());
var operation3 = new PurgeOperation()
.repositories(repository1, repository2);
@@ -89,19 +95,24 @@ public class TestPurgeOperation {
var dir2 = new File(tmp, "dir2");
var dir3 = new File(tmp, "dir3");
var dir4 = new File(tmp, "dir4");
+ var dir5 = new File(tmp, "dir5");
dir1.mkdirs();
dir2.mkdirs();
dir3.mkdirs();
dir4.mkdirs();
+ dir5.mkdirs();
var operation_download1 = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation_download1.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 1)));
+ operation_download1.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5, 0, 0)));
operation_download1.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 3)));
operation_download1.dependencies().scope(Scope.standalone)
@@ -114,11 +125,14 @@ public class TestPurgeOperation {
var operation_download2 = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation_download2.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation_download2.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation_download2.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation_download2.dependencies().scope(Scope.standalone)
@@ -133,33 +147,39 @@ public class TestPurgeOperation {
/dir1/commons-lang3-3.1.jar
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.3.jar
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-5.0.0.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.0.jar
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.0.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.3.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/commons-codec-1.13.jar
- /dir4/httpclient5-5.0.jar
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.0.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.0.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.25.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.0.jar
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.0.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/commons-codec-1.13.jar
+ /dir5/httpclient5-5.0.jar
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.0.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.0.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.25.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
var operation_purge = new PurgeOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4);
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5);
operation_purge.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation_purge.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation_purge.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation_purge.dependencies().scope(Scope.standalone)
@@ -173,15 +193,17 @@ public class TestPurgeOperation {
/dir1
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
} finally {
@@ -198,21 +220,25 @@ public class TestPurgeOperation {
var dir2 = new File(tmp, "dir2");
var dir3 = new File(tmp, "dir3");
var dir4 = new File(tmp, "dir4");
+ var dir5 = new File(tmp, "dir5");
dir1.mkdirs();
- dir2.mkdirs();
dir3.mkdirs();
dir4.mkdirs();
+ dir5.mkdirs();
var operation_download1 = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4)
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5)
.downloadJavadoc(true)
.downloadSources(true);
operation_download1.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 1)));
+ operation_download1.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5, 0, 0)));
operation_download1.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 3)));
operation_download1.dependencies().scope(Scope.standalone)
@@ -225,13 +251,16 @@ public class TestPurgeOperation {
var operation_download2 = new DownloadOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4)
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5)
.downloadJavadoc(true)
.downloadSources(true);
operation_download2.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation_download2.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation_download2.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation_download2.dependencies().scope(Scope.standalone)
@@ -250,65 +279,75 @@ public class TestPurgeOperation {
/dir1/commons-lang3-3.12.0-sources.jar
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.3-javadoc.jar
- /dir2/commons-collections4-4.3-sources.jar
- /dir2/commons-collections4-4.3.jar
- /dir2/commons-collections4-4.4-javadoc.jar
- /dir2/commons-collections4-4.4-sources.jar
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-5.0.0-javadoc.jar
+ /dir2/jakarta.servlet-api-5.0.0-sources.jar
+ /dir2/jakarta.servlet-api-5.0.0.jar
+ /dir2/jakarta.servlet-api-6.0.0-javadoc.jar
+ /dir2/jakarta.servlet-api-6.0.0-sources.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.0-javadoc.jar
- /dir3/slf4j-api-2.0.0-sources.jar
- /dir3/slf4j-api-2.0.0.jar
- /dir3/slf4j-api-2.0.6-javadoc.jar
- /dir3/slf4j-api-2.0.6-sources.jar
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.0-javadoc.jar
- /dir3/slf4j-simple-2.0.0-sources.jar
- /dir3/slf4j-simple-2.0.0.jar
- /dir3/slf4j-simple-2.0.6-javadoc.jar
- /dir3/slf4j-simple-2.0.6-sources.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.3-javadoc.jar
+ /dir3/commons-collections4-4.3-sources.jar
+ /dir3/commons-collections4-4.3.jar
+ /dir3/commons-collections4-4.4-javadoc.jar
+ /dir3/commons-collections4-4.4-sources.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/commons-codec-1.13-javadoc.jar
- /dir4/commons-codec-1.13-sources.jar
- /dir4/commons-codec-1.13.jar
- /dir4/httpclient5-5.0-javadoc.jar
- /dir4/httpclient5-5.0-sources.jar
- /dir4/httpclient5-5.0.jar
- /dir4/httpclient5-5.2.1-javadoc.jar
- /dir4/httpclient5-5.2.1-sources.jar
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.0-javadoc.jar
- /dir4/httpcore5-5.0-sources.jar
- /dir4/httpcore5-5.0.jar
- /dir4/httpcore5-5.2-javadoc.jar
- /dir4/httpcore5-5.2-sources.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.0-javadoc.jar
- /dir4/httpcore5-h2-5.0-sources.jar
- /dir4/httpcore5-h2-5.0.jar
- /dir4/httpcore5-h2-5.2-javadoc.jar
- /dir4/httpcore5-h2-5.2-sources.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.25-javadoc.jar
- /dir4/slf4j-api-1.7.25-sources.jar
- /dir4/slf4j-api-1.7.25.jar
- /dir4/slf4j-api-1.7.36-javadoc.jar
- /dir4/slf4j-api-1.7.36-sources.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.0-javadoc.jar
+ /dir4/slf4j-api-2.0.0-sources.jar
+ /dir4/slf4j-api-2.0.0.jar
+ /dir4/slf4j-api-2.0.6-javadoc.jar
+ /dir4/slf4j-api-2.0.6-sources.jar
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.0-javadoc.jar
+ /dir4/slf4j-simple-2.0.0-sources.jar
+ /dir4/slf4j-simple-2.0.0.jar
+ /dir4/slf4j-simple-2.0.6-javadoc.jar
+ /dir4/slf4j-simple-2.0.6-sources.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/commons-codec-1.13-javadoc.jar
+ /dir5/commons-codec-1.13-sources.jar
+ /dir5/commons-codec-1.13.jar
+ /dir5/httpclient5-5.0-javadoc.jar
+ /dir5/httpclient5-5.0-sources.jar
+ /dir5/httpclient5-5.0.jar
+ /dir5/httpclient5-5.2.1-javadoc.jar
+ /dir5/httpclient5-5.2.1-sources.jar
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.0-javadoc.jar
+ /dir5/httpcore5-5.0-sources.jar
+ /dir5/httpcore5-5.0.jar
+ /dir5/httpcore5-5.2-javadoc.jar
+ /dir5/httpcore5-5.2-sources.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.0-javadoc.jar
+ /dir5/httpcore5-h2-5.0-sources.jar
+ /dir5/httpcore5-h2-5.0.jar
+ /dir5/httpcore5-h2-5.2-javadoc.jar
+ /dir5/httpcore5-h2-5.2-sources.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.25-javadoc.jar
+ /dir5/slf4j-api-1.7.25-sources.jar
+ /dir5/slf4j-api-1.7.25.jar
+ /dir5/slf4j-api-1.7.36-javadoc.jar
+ /dir5/slf4j-api-1.7.36-sources.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
var operation_purge = new PurgeOperation()
.repositories(List.of(Repository.MAVEN_CENTRAL))
.libCompileDirectory(dir1)
- .libRuntimeDirectory(dir2)
- .libStandaloneDirectory(dir3)
- .libTestDirectory(dir4)
+ .libProvidedDirectory(dir2)
+ .libRuntimeDirectory(dir3)
+ .libStandaloneDirectory(dir4)
+ .libTestDirectory(dir5)
.preserveSources(true)
.preserveJavadoc(true);
operation_purge.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ operation_purge.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
operation_purge.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
operation_purge.dependencies().scope(Scope.standalone)
@@ -324,29 +363,33 @@ public class TestPurgeOperation {
/dir1/commons-lang3-3.12.0-sources.jar
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4-javadoc.jar
- /dir2/commons-collections4-4.4-sources.jar
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0-javadoc.jar
+ /dir2/jakarta.servlet-api-6.0.0-sources.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6-javadoc.jar
- /dir3/slf4j-api-2.0.6-sources.jar
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6-javadoc.jar
- /dir3/slf4j-simple-2.0.6-sources.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4-javadoc.jar
+ /dir3/commons-collections4-4.4-sources.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1-javadoc.jar
- /dir4/httpclient5-5.2.1-sources.jar
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2-javadoc.jar
- /dir4/httpcore5-5.2-sources.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2-javadoc.jar
- /dir4/httpcore5-h2-5.2-sources.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36-javadoc.jar
- /dir4/slf4j-api-1.7.36-sources.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6-javadoc.jar
+ /dir4/slf4j-api-2.0.6-sources.jar
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6-javadoc.jar
+ /dir4/slf4j-simple-2.0.6-sources.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1-javadoc.jar
+ /dir5/httpclient5-5.2.1-sources.jar
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2-javadoc.jar
+ /dir5/httpcore5-5.2-sources.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2-javadoc.jar
+ /dir5/httpcore5-h2-5.2-sources.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36-javadoc.jar
+ /dir5/slf4j-api-1.7.36-sources.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
operation_purge
@@ -357,22 +400,25 @@ public class TestPurgeOperation {
/dir1/commons-lang3-3.12.0-sources.jar
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4-sources.jar
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0-sources.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6-sources.jar
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6-sources.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4-sources.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1-sources.jar
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2-sources.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2-sources.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36-sources.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6-sources.jar
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6-sources.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1-sources.jar
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2-sources.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2-sources.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36-sources.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
operation_purge
@@ -382,15 +428,17 @@ public class TestPurgeOperation {
/dir1
/dir1/commons-lang3-3.12.0.jar
/dir2
- /dir2/commons-collections4-4.4.jar
+ /dir2/jakarta.servlet-api-6.0.0.jar
/dir3
- /dir3/slf4j-api-2.0.6.jar
- /dir3/slf4j-simple-2.0.6.jar
+ /dir3/commons-collections4-4.4.jar
/dir4
- /dir4/httpclient5-5.2.1.jar
- /dir4/httpcore5-5.2.jar
- /dir4/httpcore5-h2-5.2.jar
- /dir4/slf4j-api-1.7.36.jar""",
+ /dir4/slf4j-api-2.0.6.jar
+ /dir4/slf4j-simple-2.0.6.jar
+ /dir5
+ /dir5/httpclient5-5.2.1.jar
+ /dir5/httpcore5-5.2.jar
+ /dir5/httpcore5-h2-5.2.jar
+ /dir5/slf4j-api-1.7.36.jar""",
FileUtils.generateDirectoryListing(tmp));
} finally {
FileUtils.deleteDirectory(tmp);
@@ -415,6 +463,8 @@ public class TestPurgeOperation {
project1.repositories().add(Repository.MAVEN_CENTRAL);
project1.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 1)));
+ project1.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(5, 0, 0)));
project1.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 3)));
project1.dependencies().scope(Scope.standalone)
@@ -427,6 +477,8 @@ public class TestPurgeOperation {
project2.repositories().add(Repository.MAVEN_CENTRAL);
project2.dependencies().scope(Scope.compile)
.include(new Dependency("org.apache.commons", "commons-lang3", new VersionNumber(3, 12, 0)));
+ project2.dependencies().scope(Scope.provided)
+ .include(new Dependency("jakarta.servlet", "jakarta.servlet-api", new VersionNumber(6, 0, 0)));
project2.dependencies().scope(Scope.runtime)
.include(new Dependency("org.apache.commons", "commons-collections4", new VersionNumber(4, 4)));
project2.dependencies().scope(Scope.standalone)
@@ -449,6 +501,11 @@ public class TestPurgeOperation {
/lib/compile/commons-lang3-3.1.jar
/lib/compile/commons-lang3-3.12.0-sources.jar
/lib/compile/commons-lang3-3.12.0.jar
+ /lib/provided
+ /lib/provided/jakarta.servlet-api-5.0.0-sources.jar
+ /lib/provided/jakarta.servlet-api-5.0.0.jar
+ /lib/provided/jakarta.servlet-api-6.0.0-sources.jar
+ /lib/provided/jakarta.servlet-api-6.0.0.jar
/lib/runtime
/lib/runtime/commons-collections4-4.3-sources.jar
/lib/runtime/commons-collections4-4.3.jar
@@ -505,6 +562,9 @@ public class TestPurgeOperation {
/lib/compile
/lib/compile/commons-lang3-3.12.0-sources.jar
/lib/compile/commons-lang3-3.12.0.jar
+ /lib/provided
+ /lib/provided/jakarta.servlet-api-6.0.0-sources.jar
+ /lib/provided/jakarta.servlet-api-6.0.0.jar
/lib/runtime
/lib/runtime/commons-collections4-4.4-sources.jar
/lib/runtime/commons-collections4-4.4.jar