diff --git a/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/AbstractIntegrationTest.java b/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/AbstractIntegrationTest.java index 7ec3f65..df424b3 100644 --- a/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/AbstractIntegrationTest.java +++ b/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/AbstractIntegrationTest.java @@ -17,6 +17,7 @@ @RunWith(Parameterized.class) public abstract class AbstractIntegrationTest { + @Rule public TemporaryFolder testFolder = new TemporaryFolder(); @@ -28,7 +29,7 @@ public abstract class AbstractIntegrationTest { @Parameters(name = "Gradle v{0}") public static Collection testData() { return Arrays.asList(new Object[][]{ - {"6.0"}, + {"6.0.1"}, {"5.6.4"}, {"5.5.1"}, {"5.4.1"}, diff --git a/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/Examples.java b/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/Examples.java index 68e9a5a..f6325ba 100644 --- a/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/Examples.java +++ b/src/integrationTest/java/eu/xenit/gradle/alfrescosdk/Examples.java @@ -14,6 +14,8 @@ import java.util.Properties; import java.util.function.Predicate; import org.gradle.util.GUtil; +import org.gradle.util.GradleVersion; +import org.junit.Assume; import org.junit.Test; public class Examples extends AbstractIntegrationTest { @@ -52,6 +54,9 @@ public void testSimpleAlfrescoProject() throws IOException { @Test public void testLegacyDeProject() throws IOException { + // Gradle 5.1 has problems with memory usage with the bnd plugin + Assume.assumeTrue("Gradle version >= 5.2", + GradleVersion.version(gradleVersion).compareTo(GradleVersion.version("5.2")) >= 0); testProjectFolder(EXAMPLES.resolve("legacy-de-project")); Path buildFolder = projectFolder.toPath().resolve("build"); @@ -77,6 +82,9 @@ public void testLegacyDeProject() throws IOException { @Test public void testSimpleDeProject() throws IOException { + // Gradle 5.1 has problems with memory usage with the bnd plugin + Assume.assumeTrue("Gradle version >= 5.2", + GradleVersion.version(gradleVersion).compareTo(GradleVersion.version("5.2")) >= 0); testProjectFolder(EXAMPLES.resolve("simple-de-project")); Path buildFolder = projectFolder.toPath().resolve("build"); diff --git a/src/integrationTest/resources/examples/legacy-de-project/build.gradle b/src/integrationTest/resources/examples/legacy-de-project/build.gradle index 6cfd947..c223979 100644 --- a/src/integrationTest/resources/examples/legacy-de-project/build.gradle +++ b/src/integrationTest/resources/examples/legacy-de-project/build.gradle @@ -1,19 +1,9 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath "eu.xenit.de:gradle-plugin:1.7.6" - } -} - plugins { + id 'eu.xenit.de' version '2.0.1' id 'eu.xenit.alfresco' id 'eu.xenit.amp' } -apply plugin: 'alfresco-dynamic-extension' - ampConfig { dynamicExtension = true } diff --git a/src/integrationTest/resources/examples/simple-de-project/build.gradle b/src/integrationTest/resources/examples/simple-de-project/build.gradle index 252e8a5..0b69481 100644 --- a/src/integrationTest/resources/examples/simple-de-project/build.gradle +++ b/src/integrationTest/resources/examples/simple-de-project/build.gradle @@ -1,13 +1,5 @@ -buildscript { - repositories { - mavenCentral() - } - dependencies { - classpath "eu.xenit.de:gradle-plugin:1.7.6" - } -} - plugins { + id 'eu.xenit.de' version '2.0.1' id 'eu.xenit.alfresco' id 'eu.xenit.amp' } diff --git a/src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java b/src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java index 1d9dacb..afc6be3 100644 --- a/src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java +++ b/src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java @@ -115,10 +115,10 @@ private void configureSourceSetDefaults() { } private Provider createWritePropertiesTask(String taskName, String sourceSetName, String fileName, - Provider properties) { + Provider> properties) { return project.getTasks().register(taskName, WriteProperties.class, writeProperties -> { writeProperties.setDescription("Creates " + fileName + " for " + sourceSetName); - writeProperties.setProperties(properties.map(AmpBasePlugin::propertiesToMap).get()); + writeProperties.setProperties((Map)(Map)properties.get()); writeProperties.setOutputFile(project.getBuildDir().toPath().resolve(taskName).resolve(fileName).toFile()); }); } diff --git a/src/main/java/eu/xenit/gradle/alfrescosdk/internal/tasks/DefaultAmpSourceSetConfiguration.java b/src/main/java/eu/xenit/gradle/alfrescosdk/internal/tasks/DefaultAmpSourceSetConfiguration.java index 64a7af5..3781035 100644 --- a/src/main/java/eu/xenit/gradle/alfrescosdk/internal/tasks/DefaultAmpSourceSetConfiguration.java +++ b/src/main/java/eu/xenit/gradle/alfrescosdk/internal/tasks/DefaultAmpSourceSetConfiguration.java @@ -2,10 +2,13 @@ import eu.xenit.gradle.alfrescosdk.tasks.AmpSourceSetConfiguration; import java.io.File; +import java.util.Collections; +import java.util.Map; import java.util.Properties; import org.gradle.api.Action; import org.gradle.api.Project; import org.gradle.api.file.SourceDirectorySet; +import org.gradle.api.provider.MapProperty; import org.gradle.api.provider.Property; import org.gradle.api.provider.Provider; import org.gradle.util.GUtil; @@ -15,8 +18,8 @@ public class DefaultAmpSourceSetConfiguration implements AmpSourceSetConfigurati private final SourceDirectorySet config; private final SourceDirectorySet web; private final Project project; - private final Property moduleProperties; - private final Property fileMappingProperties; + private final MapProperty moduleProperties; + private final MapProperty fileMappingProperties; private final Property dynamicExtension; public DefaultAmpSourceSetConfiguration(Project project) { @@ -29,12 +32,10 @@ public DefaultAmpSourceSetConfiguration(Project project) { web = project.getObjects().sourceDirectorySet("web", "Alfresco AMP web"); //alfresco module.properties file - moduleProperties = project.getObjects().property(Properties.class); - moduleProperties.set(new Properties()); + moduleProperties = project.getObjects().mapProperty(String.class, String.class).empty(); //file-mapping properties - fileMappingProperties = project.getObjects().property(Properties.class); - fileMappingProperties.set(new Properties()); + fileMappingProperties = project.getObjects().mapProperty(String.class, String.class).empty(); //dynamic extension related options. dynamicExtension = project.getObjects().property(Boolean.class); @@ -49,8 +50,9 @@ public AmpSourceSetConfiguration module(String moduleProperties) { @Override public AmpSourceSetConfiguration module(File moduleProperties) { - this.moduleProperties.set(project.provider(() -> GUtil.loadProperties(moduleProperties))); - return this; + return module(properties -> { + properties.putAll(GUtil.loadProperties(moduleProperties)); + }); } @Override @@ -58,12 +60,12 @@ public AmpSourceSetConfiguration module(Action configure) { moduleProperties.set(project.provider(() -> { Properties newProperties = new Properties(); configure.execute(newProperties); - return newProperties; + return Collections.checkedMap((Map) (Map) newProperties, String.class, String.class); })); return this; } - public Provider getModuleProperties() { + public MapProperty getModuleProperties() { return moduleProperties; } @@ -75,8 +77,9 @@ public AmpSourceSetConfiguration fileMapping(String fileMappingProperties) { @Override public AmpSourceSetConfiguration fileMapping(File fileMappingProperties) { - this.fileMappingProperties.set(project.provider(() -> GUtil.loadProperties(fileMappingProperties))); - return this; + return fileMapping(properties -> { + properties.putAll(GUtil.loadProperties(fileMappingProperties)); + }); } @Override @@ -84,13 +87,13 @@ public AmpSourceSetConfiguration fileMapping(Action configur fileMappingProperties.set(project.provider(() -> { Properties newProperties = new Properties(); configure.execute(newProperties); - return newProperties; + return Collections.checkedMap((Map) (Map) newProperties, String.class, String.class); })); return this; } - public Provider getFileMappingProperties() { + public MapProperty getFileMappingProperties() { return fileMappingProperties; } diff --git a/src/main/java/eu/xenit/gradle/alfrescosdk/tasks/Amp.java b/src/main/java/eu/xenit/gradle/alfrescosdk/tasks/Amp.java index 0034e78..ac65125 100644 --- a/src/main/java/eu/xenit/gradle/alfrescosdk/tasks/Amp.java +++ b/src/main/java/eu/xenit/gradle/alfrescosdk/tasks/Amp.java @@ -40,9 +40,9 @@ public class Amp extends Zip { @Deprecated private Supplier config; - private RegularFileProperty moduleProperties = getProject().getLayout().fileProperty(); + private RegularFileProperty moduleProperties = getProject().getObjects().fileProperty(); - private RegularFileProperty fileMappingProperties = getProject().getLayout().fileProperty(); + private RegularFileProperty fileMappingProperties = getProject().getObjects().fileProperty(); private ConfigurableFileCollection deBundles = getProject().files();