diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/AbstractJctCompiler.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/AbstractJctCompiler.java
index a89e260b1..c3cd068f7 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/AbstractJctCompiler.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/AbstractJctCompiler.java
@@ -77,7 +77,11 @@ public abstract class AbstractJctCompiler>
private boolean fixJvmModulePathMismatch;
private boolean inheritClassPath;
private boolean inheritModulePath;
+
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
private boolean inheritPlatformClassPath;
+
private boolean inheritSystemModulePath;
private LoggingMode fileManagerLoggingMode;
private AnnotationProcessorDiscovery annotationProcessorDiscovery;
@@ -87,6 +91,7 @@ public abstract class AbstractJctCompiler>
*
* @param defaultName the printable default name to use for the compiler.
*/
+ @SuppressWarnings("removal")
protected AbstractJctCompiler(String defaultName) {
name = requireNonNull(defaultName, "name");
annotationProcessors = new ArrayList<>();
@@ -335,12 +340,16 @@ public A inheritModulePath(boolean inheritModulePath) {
return myself();
}
+ @Deprecated(forRemoval = true, since = "0.6.0")
@Override
+ @SuppressWarnings({"removal", "DeprecatedIsStillUsed"})
public boolean isInheritPlatformClassPath() {
return inheritPlatformClassPath;
}
+ @Deprecated(forRemoval = true, since = "0.6.0")
@Override
+ @SuppressWarnings({"removal", "DeprecatedIsStillUsed"})
public A inheritPlatformClassPath(boolean inheritPlatformClassPath) {
this.inheritPlatformClassPath = inheritPlatformClassPath;
return myself();
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/JctCompiler.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/JctCompiler.java
index a1731370e..0c289c0ef 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/JctCompiler.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/compilers/JctCompiler.java
@@ -90,9 +90,15 @@ public interface JctCompiler, R extends JctCompilati
boolean DEFAULT_INHERIT_MODULE_PATH = true;
/**
- * Default setting for inclusion of the current platform class path ({@code true}).
+ * Default setting for inclusion of the current platform class path ({@code false}).
+ *
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0, and has been changed to default to
+ * {@code false} as of v0.6.0
*/
- boolean DEFAULT_INHERIT_PLATFORM_CLASS_PATH = true;
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
+ boolean DEFAULT_INHERIT_PLATFORM_CLASS_PATH = false;
/**
* Default setting for inclusion of the system module path ({@code true}).
@@ -727,7 +733,11 @@ default C target(SourceVersion target) {
* {@link #DEFAULT_INHERIT_PLATFORM_CLASS_PATH}.
*
* @return whether the platform class path is being inherited or not.
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
boolean isInheritPlatformClassPath();
/**
@@ -740,7 +750,10 @@ default C target(SourceVersion target) {
*
* @param inheritPlatformClassPath {@code true} to include it, or {@code false} to exclude it.
* @return this compiler object for further call chaining.
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
C inheritPlatformClassPath(boolean inheritPlatformClassPath);
/**
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/JctFileManager.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/JctFileManager.java
index 2d75e9738..7e0fe676a 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/JctFileManager.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/JctFileManager.java
@@ -251,8 +251,12 @@ default ModuleContainerGroup getAnnotationProcessorModulePathGroup() {
*
* @return the location, or {@code null} if the location is not present in the file manager.
* @since 0.1.0
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
@Nullable
+ @SuppressWarnings("DeprecatedIsStillUsed")
default PackageContainerGroup getPlatformClassPathGroup() {
return getPackageContainerGroup(StandardLocation.PLATFORM_CLASS_PATH);
}
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurer.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurer.java
index 509ec0a9c..9c7d261f2 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurer.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurer.java
@@ -33,10 +33,14 @@
*
* @author Ashley Scopes
* @since 0.0.1 (0.0.1-M7)
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
@API(since = "0.0.1", status = Status.STABLE)
-public final class JctFileManagerJvmPlatformClassPathConfigurer implements
- JctFileManagerConfigurer {
+@Deprecated(forRemoval = true, since = "0.6.0")
+@SuppressWarnings("DeprecatedIsStillUsed")
+public final class JctFileManagerJvmPlatformClassPathConfigurer
+ implements JctFileManagerConfigurer {
private static final Logger LOGGER = LoggerFactory
.getLogger(JctFileManagerJvmPlatformClassPathConfigurer.class);
@@ -53,6 +57,7 @@ public JctFileManagerJvmPlatformClassPathConfigurer(JctCompiler, ?> compiler)
}
@Override
+ @SuppressWarnings("removal")
public JctFileManager configure(JctFileManager fileManager) {
LOGGER.debug("Configuring JVM platform class path");
@@ -69,6 +74,7 @@ public JctFileManager configure(JctFileManager fileManager) {
}
@Override
+ @SuppressWarnings("removal")
public boolean isEnabled() {
return compiler.isInheritPlatformClassPath();
}
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/impl/JctFileManagerFactoryImpl.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/impl/JctFileManagerFactoryImpl.java
index 22c478627..5f4fbe433 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/impl/JctFileManagerFactoryImpl.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/filemanagers/impl/JctFileManagerFactoryImpl.java
@@ -74,6 +74,7 @@ public JctFileManager createFileManager(Workspace workspace) {
* @return the chain to use.
*/
@VisibleForTestingOnly
+ @SuppressWarnings("removal")
public JctFileManagerConfigurerChain createConfigurerChain(Workspace workspace) {
// The order here is important. Do not adjust it without testing extensively first!
return new JctFileManagerConfigurerChain()
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/SpecialLocationUtils.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/SpecialLocationUtils.java
index eabc81cac..9944367b5 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/SpecialLocationUtils.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/utils/SpecialLocationUtils.java
@@ -121,11 +121,18 @@ public static List currentModulePathLocations() {
*
* @return a list across the paths.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
public static List currentPlatformClassPathLocations() {
var mxBean = ManagementFactory.getRuntimeMXBean();
if (mxBean.isBootClassPathSupported()) {
- LOGGER.trace("Platform (boot) classpath is supported on this JVM, so will be inspected");
+ LOGGER.warn(
+ "Warning: platform (boot) class path locations were found on this JVM, but this "
+ + "feature is deprecated for removal in v1.0.0 of the java-compiler-testing API. "
+ + "Consider disabling platform classpath discovery explicitly to prevent tests "
+ + "having differing behaviour for v1.0.0."
+ );
return createPaths(mxBean.getBootClassPath());
}
diff --git a/java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/Workspace.java b/java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/Workspace.java
index 7b2f8a619..2dd0d7b43 100644
--- a/java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/Workspace.java
+++ b/java-compiler-testing/src/main/java/io/github/ascopes/jct/workspaces/Workspace.java
@@ -513,7 +513,11 @@ default void addAnnotationProcessorPathModule(String moduleName, Path path) {
* @throws IllegalArgumentException if the path does not exist.
* @see #addPackage(Location, Path)
* @see #createPlatformClassPathPackage()
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
default void addPlatformClassPathPackage(Path path) {
addPackage(StandardLocation.PLATFORM_CLASS_PATH, path);
}
@@ -756,7 +760,11 @@ default ManagedDirectory createAnnotationProcessorPathModule(String moduleName)
* @return the created test directory.
* @see #createPackage(Location)
* @see #addPlatformClassPathPackage(Path)
+ * @deprecated The platform class path has been mostly replaced by the use of system modules, so
+ * should not be used. This will be removed in v1.0.0.
*/
+ @Deprecated(forRemoval = true, since = "0.6.0")
+ @SuppressWarnings("DeprecatedIsStillUsed")
default ManagedDirectory createPlatformClassPathPackage() {
return createPackage(StandardLocation.PLATFORM_CLASS_PATH);
}
@@ -850,7 +858,7 @@ default List extends PathRoot> getClassOutputModule(String moduleName) {
* Get the module path roots for {@link StandardLocation#CLASS_OUTPUT class outputs}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getClassOutputModules() {
@@ -884,7 +892,7 @@ default List extends PathRoot> getSourceOutputModule(String moduleName) {
* Get the module path roots for {@link StandardLocation#SOURCE_OUTPUT source outputs}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getSourceOutputModules() {
@@ -939,7 +947,7 @@ default List extends PathRoot> getAnnotationProcessorPathModule(String moduleN
* {@link StandardLocation#ANNOTATION_PROCESSOR_MODULE_PATH annotation processor module path}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getAnnotationProcessorPathModules() {
@@ -985,7 +993,7 @@ default List extends PathRoot> getNativeHeaderOutputModule(String moduleName)
* {@link StandardLocation#NATIVE_HEADER_OUTPUT native header outputs}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getNativeHeaderOutputModules() {
@@ -1008,7 +1016,7 @@ default List extends PathRoot> getSourcePathModule(String moduleName) {
* {@link StandardLocation#MODULE_SOURCE_PATH module source paths}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getSourcePathModules() {
@@ -1031,7 +1039,7 @@ default List extends PathRoot> getUpgradeModulePathModule(String moduleName) {
* {@link StandardLocation#UPGRADE_MODULE_PATH upgrade module paths}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getUpgradeModulePathModules() {
@@ -1053,7 +1061,7 @@ default List extends PathRoot> getSystemModulePathModule(String moduleName) {
* Get the module path roots for the {@link StandardLocation#SYSTEM_MODULES system modules}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getSystemModulePathModules() {
@@ -1075,7 +1083,7 @@ default List extends PathRoot> getModulePathModule(String moduleName) {
* Get the module path roots for the {@link StandardLocation#MODULE_PATH module paths}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getModulePathModules() {
@@ -1098,7 +1106,7 @@ default List extends PathRoot> getPatchModulePathModule(String moduleName) {
* {@link StandardLocation#PATCH_MODULE_PATH patch module paths}.
*
* @return the roots in a map of module names to lists of roots, or an empty map if none were
- * found.
+ * found.
* @since 0.1.0
*/
default Map> getPatchModulePathModules() {
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/compilers/AbstractJctCompilerTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/compilers/AbstractJctCompilerTest.java
index ba5c7444c..aa1e442a3 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/compilers/AbstractJctCompilerTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/compilers/AbstractJctCompilerTest.java
@@ -285,6 +285,7 @@ void constructorInitialisesInheritModulePathToDefaultValue() {
@DisplayName("constructor initialises inheritPlatformClassPath to default value")
@Test
+ @SuppressWarnings("removal")
void constructorInitialisesInheritPlatformClassPathToDefaultValue() {
// Then
assertThatCompilerField("inheritPlatformClassPath")
@@ -1292,6 +1293,7 @@ void inheritModulePathReturnsTheCompiler() {
@DisplayName(".isInheritPlatformClassPath() returns the expected values")
@ValueSource(booleans = {true, false})
@ParameterizedTest(name = "for inheritPlatformClassPath = {0}")
+ @SuppressWarnings("removal")
void isInheritPlatformClassPathReturnsExpectedValue(boolean expected) {
// Given
setFieldOnCompiler("inheritPlatformClassPath", expected);
@@ -1307,6 +1309,7 @@ class InheritPlatformClassPathTests {
@DisplayName(".inheritPlatformClassPath(...) sets the expected values")
@ValueSource(booleans = {true, false})
@ParameterizedTest(name = "for inheritPlatformClassPath = {0}")
+ @SuppressWarnings("removal")
void inheritPlatformClassPathSetsExpectedValue(boolean expected) {
// When
compiler.inheritPlatformClassPath(expected);
@@ -1317,6 +1320,7 @@ void inheritPlatformClassPathSetsExpectedValue(boolean expected) {
@DisplayName(".inheritPlatformClassPath(...) returns the compiler")
@Test
+ @SuppressWarnings("removal")
void inheritPlatformClassPathReturnsTheCompiler() {
// When
var result = compiler.inheritPlatformClassPath(true);
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/JctFileManagerTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/JctFileManagerTest.java
index 7ecc864a2..119b1f577 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/JctFileManagerTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/JctFileManagerTest.java
@@ -152,6 +152,7 @@ void getAnnotationProcessorModulePathGroupMakesTheExpectedCall(ModuleContainerGr
@DisplayName(".getPlatformClassPathGroup() makes the expected call")
@MethodSource("outputContainerGroupResults")
@ParameterizedTest(name = "when internal getter returns {0}")
+ @SuppressWarnings("removal")
void getPlatformClassPathGroupMakesTheExpectedCall(PackageContainerGroup expected) {
// Given
when(fileManager.getPlatformClassPathGroup()).thenCallRealMethod();
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurerTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurerTest.java
index 5fe5fbc3c..a2a802ebf 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurerTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/config/JctFileManagerJvmPlatformClassPathConfigurerTest.java
@@ -47,6 +47,7 @@
*/
@DisplayName("JctFileManagerJvmPlatformClassPathConfigurer tests")
@ExtendWith(MockitoExtension.class)
+@SuppressWarnings("removal")
class JctFileManagerJvmPlatformClassPathConfigurerTest {
@Mock
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/impl/JctFileManagerFactoryImplTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/impl/JctFileManagerFactoryImplTest.java
index 2c332ddf8..ff859881a 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/impl/JctFileManagerFactoryImplTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/filemanagers/impl/JctFileManagerFactoryImplTest.java
@@ -119,6 +119,7 @@ void createdFileManagersAreTransformedByTheConfigurerChain() {
@DisplayName("The configurer chain uses the expected configurers")
@Test
+ @SuppressWarnings("removal")
void createdFileManagersAreReturnedAsTheResultFromTheConfigurerChain() {
// When
var configurerChain = factory.createConfigurerChain(workspace);
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/utils/SpecialLocationsUtilsTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/utils/SpecialLocationsUtilsTest.java
index 303a2a034..55ac7c504 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/utils/SpecialLocationsUtilsTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/utils/SpecialLocationsUtilsTest.java
@@ -140,6 +140,7 @@ void currentModulePathLocationsReturnsTheClassPathLocationsThatExist() throws IO
@DisplayName("currentPlatformClassPathLocations() returns the class path locations that exist")
@Test
+ @SuppressWarnings("removal")
void currentPlatformClassPathLocationsReturnsTheClassPathLocationsThatExist() throws IOException {
// Given
try (
@@ -163,6 +164,7 @@ void currentPlatformClassPathLocationsReturnsTheClassPathLocationsThatExist() th
@DisplayName("currentPlatformClassPathLocations() returns empty when boot path not supported")
@Test
+ @SuppressWarnings("removal")
void currentPlatformClassPathLocationsReturnsEmptyWhenBootPathNotSupported() {
// Given
try (var mx = new MockedMxBean<>(ManagementFactory::getRuntimeMXBean, RuntimeMXBean.class)) {
diff --git a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/workspaces/WorkspaceTest.java b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/workspaces/WorkspaceTest.java
index 13f55e022..80da4c1d7 100644
--- a/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/workspaces/WorkspaceTest.java
+++ b/java-compiler-testing/src/test/java/io/github/ascopes/jct/tests/unit/workspaces/WorkspaceTest.java
@@ -215,6 +215,7 @@ void addAnnotationProcessorPathModuleCallsAddModule() {
@DisplayName(".addPlatformClassPathPackage(Path) calls addPackage(PLATFORM_CLASS_PATH, Path)")
@Test
+ @SuppressWarnings("removal")
void addPlatformClassPathPackageCallsAddPackage() {
// Given
doCallRealMethod().when(workspace).addPlatformClassPathPackage(any());
@@ -470,6 +471,7 @@ void createAnnotationProcessorPathModuleCallsCreateModule() {
@DisplayName(".createPlatformClassPathPackage() calls createPackage(PLATFORM_CLASS_PATH)")
@Test
+ @SuppressWarnings("removal")
void createPlatformClassPathPackageCallsCreatePackage() {
// Given
doCallRealMethod().when(workspace).createPlatformClassPathPackage();