Package: gradle-jflex-plugin / 0.0.2-4

gradle-2.12.patch Patch series | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
From: Markus Koschany <apo@debian.org>
Date: Thu, 26 May 2016 19:01:31 +0200
Subject: gradle 2.12

Debian-Bug: https://bugs.debian.org/825368
Origin: https://github.com/thomaslee/gradle-jflex-plugin/commit/1bbdf2d6dbf702944d11e24a859e0fe4f957032f
Forwarded: not-needed, already fixed in Git
---
 gradle/wrapper/gradle-wrapper.properties            |  2 +-
 .../co/tomlee/gradle/plugins/jflex/JFlexPlugin.java | 10 ++++++++--
 .../co/tomlee/gradle/plugins/jflex/JFlexTask.java   | 21 ++++++++++++++++++++-
 .../jflex/JFlexVirtualSourceDirectoryImpl.java      |  8 ++++++--
 4 files changed, 35 insertions(+), 6 deletions(-)

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index a6aec3e..714444b 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.10-bin.zip
+distributionUrl=http\://services.gradle.org/distributions/gradle-2.12-bin.zip
diff --git a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexPlugin.java b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexPlugin.java
index 6a443d5..be24ba2 100644
--- a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexPlugin.java
+++ b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexPlugin.java
@@ -7,6 +7,7 @@ import org.gradle.api.artifacts.Configuration;
 import org.gradle.api.internal.file.FileResolver;
 import org.gradle.api.internal.plugins.DslObject;
 import org.gradle.api.internal.tasks.DefaultSourceSet;
+import org.gradle.api.internal.file.collections.DirectoryFileTreeFactory;
 import org.gradle.api.plugins.JavaPlugin;
 import org.gradle.api.plugins.JavaPluginConvention;
 import org.gradle.api.tasks.SourceSet;
@@ -17,10 +18,12 @@ import java.util.concurrent.Callable;
 
 public final class JFlexPlugin implements Plugin<Project> {
     private final FileResolver fileResolver;
+    private final DirectoryFileTreeFactory directoryFileTreeFactory;
 
     @Inject
-    public JFlexPlugin(final FileResolver fileResolver) {
+    public JFlexPlugin(final FileResolver fileResolver, final DirectoryFileTreeFactory directoryFileTreeFactory) {
         this.fileResolver = fileResolver;
+        this.directoryFileTreeFactory = directoryFileTreeFactory;
     }
 
     @Override
@@ -44,7 +47,10 @@ public final class JFlexPlugin implements Plugin<Project> {
                 // 1. Add a new 'jflex' virtual directory mapping
                 //
                 final JFlexVirtualSourceDirectoryImpl jflexSourceSet =
-                    new JFlexVirtualSourceDirectoryImpl(((DefaultSourceSet) sourceSet).getDisplayName(), fileResolver);
+                    new JFlexVirtualSourceDirectoryImpl(
+                            ((DefaultSourceSet) sourceSet).getDisplayName(),
+                            fileResolver,
+                            directoryFileTreeFactory);
                 new DslObject(sourceSet).getConvention().getPlugins().put("jflex", jflexSourceSet);
                 final String srcDir = String.format("src/%s/jflex", sourceSet.getName());
                 jflexSourceSet.getJflex().srcDir(srcDir);
diff --git a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexTask.java b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexTask.java
index f64d2be..0cf0d32 100644
--- a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexTask.java
+++ b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexTask.java
@@ -3,22 +3,41 @@ package co.tomlee.gradle.plugins.jflex;
 import groovy.lang.Closure;
 import org.gradle.api.file.FileCollection;
 import org.gradle.api.tasks.InputFiles;
+import org.gradle.api.tasks.Input;
 import org.gradle.api.tasks.OutputDirectory;
 import org.gradle.api.tasks.SourceTask;
 import org.gradle.api.tasks.TaskAction;
+import org.gradle.api.artifacts.ResolvedConfiguration;
+import org.gradle.api.artifacts.ResolvedArtifact;
 import org.gradle.process.JavaExecSpec;
 
 import java.io.File;
+import java.util.Set;
 
 public class JFlexTask extends SourceTask {
     private FileCollection jflexClasspath;
     private File outputDirectory;
 
+     private String mainClass = "jflex.Main";
+     public void setMainClass(final String mainClass) {
+         this.mainClass = mainClass;
+     }
+
+     public void mainClass(final String mainClass) {
+         this.mainClass = mainClass;
+     }
+
+     @Input
+     public String getMainClass() {
+         return mainClass;
+     }
+
+
     @TaskAction
     public void generate() throws Exception {
         getProject().javaexec(new Closure(this) {
             public void doCall(JavaExecSpec javaExecSpec) {
-                javaExecSpec.setMain("JFlex.Main")
+                javaExecSpec.setMain(mainClass)
                         .setClasspath(getProject().getConfigurations().getByName("jflex"))
                         .args("-d")
                         .args(getOutputDirectory())
diff --git a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexVirtualSourceDirectoryImpl.java b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexVirtualSourceDirectoryImpl.java
index ff82a21..df15049 100644
--- a/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexVirtualSourceDirectoryImpl.java
+++ b/src/main/java/co/tomlee/gradle/plugins/jflex/JFlexVirtualSourceDirectoryImpl.java
@@ -4,14 +4,18 @@ import groovy.lang.Closure;
 import org.gradle.api.file.SourceDirectorySet;
 import org.gradle.api.internal.file.DefaultSourceDirectorySet;
 import org.gradle.api.internal.file.FileResolver;
+import org.gradle.api.internal.file.collections.DirectoryFileTreeFactory;
 import org.gradle.util.ConfigureUtil;
 
 public class JFlexVirtualSourceDirectoryImpl implements JFlexVirtualSourceDirectory {
     private final SourceDirectorySet jflex;
 
-    public JFlexVirtualSourceDirectoryImpl(final String parentDisplayName, FileResolver fileResolver) {
+    public JFlexVirtualSourceDirectoryImpl(
+            final String parentDisplayName,
+            final FileResolver fileResolver,
+            final DirectoryFileTreeFactory directoryFileTreeFactory) {
         final String displayName = String.format("%s JFle source", parentDisplayName);
-        this.jflex = new DefaultSourceDirectorySet(displayName, fileResolver);
+        this.jflex = new DefaultSourceDirectorySet(displayName, fileResolver, directoryFileTreeFactory);
         this.jflex.getFilter().include("**/*.l", "**/*.jflex");
     }