diff --git a/src/main/java/org/openjfx/gradle/JavaFXModule.java b/src/main/java/org/openjfx/gradle/JavaFXModule.java index 949384d..96e400d 100644 --- a/src/main/java/org/openjfx/gradle/JavaFXModule.java +++ b/src/main/java/org/openjfx/gradle/JavaFXModule.java @@ -48,25 +48,40 @@ public enum JavaFXModule { FXML(BASE, GRAPHICS), MEDIA(BASE, GRAPHICS), SWING(BASE, GRAPHICS), - WEB(BASE, CONTROLS, GRAPHICS, MEDIA); + WEB(BASE, CONTROLS, GRAPHICS, MEDIA), + INPUT_INCUBATOR(true, BASE, GRAPHICS, CONTROLS), + RICHTEXT_INCUBATOR(true, BASE, GRAPHICS, CONTROLS, INPUT_INCUBATOR), + ; static final String PREFIX_MODULE = "javafx."; + static final String INCUBATOR_PREFIX_MODULE = "jfx.incubator."; private static final String PREFIX_ARTIFACT = "javafx-"; + private static final String INCUBATOR_PREFIX_ARTIFACT = "jfx-incubator-"; private final List dependentModules; + private final boolean isIncubator; - JavaFXModule(JavaFXModule...dependentModules) { + JavaFXModule(boolean isIncubator, JavaFXModule... dependentModules) { + this.isIncubator = isIncubator; this.dependentModules = List.of(dependentModules); } + JavaFXModule(JavaFXModule...dependentModules) { + this(false, dependentModules); + } + public static Optional fromModuleName(String moduleName) { return Stream.of(JavaFXModule.values()) .filter(javaFXModule -> moduleName.equals(javaFXModule.getModuleName())) .findFirst(); } + private String baseName() { + return name().replace("_INCUBATOR", "").toLowerCase(Locale.ROOT); + } + public String getModuleName() { - return PREFIX_MODULE + name().toLowerCase(Locale.ROOT); + return (isIncubator ? INCUBATOR_PREFIX_MODULE : PREFIX_MODULE) + baseName(); } public String getModuleJarFileName() { @@ -74,7 +89,7 @@ public String getModuleJarFileName() { } public String getArtifactName() { - return PREFIX_ARTIFACT + name().toLowerCase(Locale.ROOT); + return (isIncubator ? INCUBATOR_PREFIX_ARTIFACT : PREFIX_ARTIFACT) + baseName(); } public boolean compareJarFileName(JavaFXPlatform platform, String jarFileName) { diff --git a/src/test/java/org/openjfx/gradle/JavaFXModuleTest.java b/src/test/java/org/openjfx/gradle/JavaFXModuleTest.java index 4bc58bc..f835f67 100644 --- a/src/test/java/org/openjfx/gradle/JavaFXModuleTest.java +++ b/src/test/java/org/openjfx/gradle/JavaFXModuleTest.java @@ -63,6 +63,28 @@ void getArtifactName() { assertEquals("javafx-base", JavaFXModule.BASE.getArtifactName()); } + @Test + void existingIncubatorModuleName() { + Optional javafxDependency = JavaFXModule.fromModuleName("jfx.incubator.richtext"); + assertTrue(javafxDependency.isPresent(), "Expected the text to convert to a module, but it did not"); + assertEquals(JavaFXModule.RICHTEXT_INCUBATOR, javafxDependency.get()); + } + + @Test + void nonExistingIncubatorModuleName() { + assertTrue(JavaFXModule.fromModuleName("jfx.incubator.unknown").isEmpty(), "Somehow got a module from an unknown module name."); + } + + @Test + void getIncubatorModuleName() { + assertEquals("jfx.incubator.richtext", JavaFXModule.RICHTEXT_INCUBATOR.getModuleName()); + } + + @Test + void getIncubatorArtifactName() { + assertEquals("jfx-incubator-richtext", JavaFXModule.RICHTEXT_INCUBATOR.getArtifactName()); + } + @Test void validateWithValidModules() { var moduleNames = List.of(JavaFXModule.CONTROLS.getModuleName(), JavaFXModule.WEB.getModuleName());