Skip to content

Commit

Permalink
Make plugins compatible with Gradle 6.0
Browse files Browse the repository at this point in the history
 * Change Property<Map> to MapProperty
 * Use ObjectFactory#fileProperty() instead of removed ProjectLayout#fileProperty()
 * Upgrade dynamic extensions plugin in integration tests
  • Loading branch information
vierbergenlars committed Jan 6, 2020
1 parent 4e177fb commit 4355720
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 39 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

@RunWith(Parameterized.class)
public abstract class AbstractIntegrationTest {

@Rule
public TemporaryFolder testFolder = new TemporaryFolder();

Expand All @@ -28,7 +29,7 @@ public abstract class AbstractIntegrationTest {
@Parameters(name = "Gradle v{0}")
public static Collection<Object[]> testData() {
return Arrays.asList(new Object[][]{
{"6.0"},
{"6.0.1"},
{"5.6.4"},
{"5.5.1"},
{"5.4.1"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down Expand Up @@ -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");
Expand All @@ -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");
Expand Down
Original file line number Diff line number Diff line change
@@ -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
}
Expand Down
Original file line number Diff line number Diff line change
@@ -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'
}
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ private void configureSourceSetDefaults() {
}

private Provider<WriteProperties> createWritePropertiesTask(String taskName, String sourceSetName, String fileName,
Provider<Properties> properties) {
Provider<Map<String, String>> 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<String, Object>)(Map)properties.get());
writeProperties.setOutputFile(project.getBuildDir().toPath().resolve(taskName).resolve(fileName).toFile());
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -15,8 +18,8 @@ public class DefaultAmpSourceSetConfiguration implements AmpSourceSetConfigurati
private final SourceDirectorySet config;
private final SourceDirectorySet web;
private final Project project;
private final Property<Properties> moduleProperties;
private final Property<Properties> fileMappingProperties;
private final MapProperty<String, String> moduleProperties;
private final MapProperty<String, String> fileMappingProperties;
private final Property<Boolean> dynamicExtension;

public DefaultAmpSourceSetConfiguration(Project project) {
Expand All @@ -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);
Expand All @@ -49,21 +50,22 @@ 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
public AmpSourceSetConfiguration module(Action<? super Properties> configure) {
moduleProperties.set(project.provider(() -> {
Properties newProperties = new Properties();
configure.execute(newProperties);
return newProperties;
return Collections.checkedMap((Map<String, String>) (Map) newProperties, String.class, String.class);
}));
return this;
}

public Provider<Properties> getModuleProperties() {
public MapProperty<String, String> getModuleProperties() {
return moduleProperties;
}

Expand All @@ -75,22 +77,23 @@ 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
public AmpSourceSetConfiguration fileMapping(Action<? super Properties> configure) {
fileMappingProperties.set(project.provider(() -> {
Properties newProperties = new Properties();
configure.execute(newProperties);
return newProperties;
return Collections.checkedMap((Map<String, String>) (Map) newProperties, String.class, String.class);
}));
return this;
}


public Provider<Properties> getFileMappingProperties() {
public MapProperty<String, String> getFileMappingProperties() {
return fileMappingProperties;
}

Expand Down
4 changes: 2 additions & 2 deletions src/main/java/eu/xenit/gradle/alfrescosdk/tasks/Amp.java
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public class Amp extends Zip {
@Deprecated
private Supplier<File> 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();

Expand Down

0 comments on commit 4355720

Please # to comment.