Skip to content

Commit 09a8ad0

Browse files
Merge pull request #20 from xenit-eu/issue-13
Throw an exception when applying the plugins on gradle < 4.10
2 parents 2c926cf + ec9156c commit 09a8ad0

File tree

4 files changed

+31
-0
lines changed

4 files changed

+31
-0
lines changed

src/main/java/eu/xenit/gradle/alfrescosdk/AlfrescoPlugin.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eu.xenit.gradle.alfrescosdk;
22

3+
import eu.xenit.gradle.alfrescosdk.internal.GradleVersionCheck;
34
import groovy.lang.Closure;
45
import org.gradle.api.NamedDomainObjectProvider;
56
import org.gradle.api.Plugin;
@@ -24,6 +25,8 @@ public class AlfrescoPlugin implements Plugin<Project> {
2425

2526
@Override
2627
public void apply(Project project) {
28+
GradleVersionCheck.assertSupportedVersion(PLUGIN_ID);
29+
2730
this.project = project;
2831
project.getPluginManager().apply(JavaPlugin.class);
2932

src/main/java/eu/xenit/gradle/alfrescosdk/AmpBasePlugin.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package eu.xenit.gradle.alfrescosdk;
22

33
import eu.xenit.gradle.alfrescosdk.internal.ConfigurationDispatcher;
4+
import eu.xenit.gradle.alfrescosdk.internal.GradleVersionCheck;
45
import eu.xenit.gradle.alfrescosdk.internal.tasks.DefaultAmpSourceSet;
56
import eu.xenit.gradle.alfrescosdk.tasks.Amp;
67
import eu.xenit.gradle.alfrescosdk.tasks.AmpSourceSet;
@@ -33,6 +34,7 @@
3334
public class AmpBasePlugin implements Plugin<Project> {
3435

3536
public static final Logger LOGGER = Logging.getLogger(AmpBasePlugin.class);
37+
public static final String PLUGIN_ID = "eu.xenit.amp-base";
3638

3739
private final SourceDirectorySetFactory sourceDirectorySetFactory;
3840
private final ConfigurationDispatcher<DefaultAmpSourceSet> sourceSetConfigurationDispatcher;
@@ -46,6 +48,7 @@ public AmpBasePlugin(SourceDirectorySetFactory sourceDirectorySetFactory) {
4648

4749
@Override
4850
public void apply(Project target) {
51+
GradleVersionCheck.assertSupportedVersion(PLUGIN_ID);
4952
project = target;
5053
project.getPluginManager().apply(JavaBasePlugin.class);
5154
configureSourceSetDefaults();

src/main/java/eu/xenit/gradle/alfrescosdk/AmpPlugin.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package eu.xenit.gradle.alfrescosdk;
22

3+
import eu.xenit.gradle.alfrescosdk.internal.GradleVersionCheck;
34
import eu.xenit.gradle.alfrescosdk.tasks.Amp;
45
import eu.xenit.gradle.alfrescosdk.tasks.AmpSourceSet;
56
import org.gradle.api.Plugin;
@@ -14,6 +15,8 @@
1415

1516
public class AmpPlugin implements Plugin<Project> {
1617

18+
public static final String PLUGIN_ID = "eu.xenit.amp";
19+
1720
@Deprecated
1821
public static final String AMP_CONFIGURATION = "amp";
1922
@Deprecated
@@ -23,6 +26,8 @@ public class AmpPlugin implements Plugin<Project> {
2326

2427
@Override
2528
public void apply(Project project) {
29+
GradleVersionCheck.assertSupportedVersion(PLUGIN_ID);
30+
2631
project.getPluginManager().apply(AmpBasePlugin.class);
2732
project.getPluginManager().apply(AmpLegacyPlugin.class);
2833

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package eu.xenit.gradle.alfrescosdk.internal;
2+
3+
import org.gradle.api.GradleException;
4+
import org.gradle.util.GradleVersion;
5+
6+
public final class GradleVersionCheck {
7+
private GradleVersionCheck() {
8+
9+
}
10+
private static final GradleVersion MINIMUM_VERSION = GradleVersion.version("4.10");
11+
public static void assertSupportedVersion(String pluginId) {
12+
GradleVersion currentVersion = GradleVersion.current();
13+
14+
if(MINIMUM_VERSION.compareTo(currentVersion) > 0) {
15+
throw new GradleException("The "+pluginId+" plugin requires at least "+MINIMUM_VERSION+". (You are running "+currentVersion+")");
16+
}
17+
18+
}
19+
20+
}

0 commit comments

Comments
 (0)