aboutsummaryrefslogtreecommitdiff
path: root/src/delombok
diff options
context:
space:
mode:
authorReinier Zwitserloot <reinier@zwitserloot.com>2012-10-22 09:47:56 +0200
committerReinier Zwitserloot <reinier@zwitserloot.com>2012-10-22 09:47:56 +0200
commita295c4fc12247eedfe5747b547d8ac7079f33533 (patch)
tree3b6e32b547a4877d1f2b0c1a4b0771d0657993a7 /src/delombok
parent0baf73b2aaecebf75a51f3d064c6d925a52f1a6d (diff)
downloadlombok-a295c4fc12247eedfe5747b547d8ac7079f33533.tar.gz
lombok-a295c4fc12247eedfe5747b547d8ac7079f33533.tar.bz2
lombok-a295c4fc12247eedfe5747b547d8ac7079f33533.zip
Ever since we do a lot more than just calling 'parse' when running delombok in our tests, the tests are in the unfortunate scenario where we always compile against a given javac (lib/build/javac6.jar), and always run the tests against a given javac, but that javac tries to use the bootclasspath of the host JRE, and if that is JRE7, you get all sorts of errors.
I fixed it by still compiling against a given javac (we can only ship one lombok.jar after all), but having the test task run with a given bootclasspath and a given javac.jar. There are 2 tasks that download both rt.jar and javac.jar for either OpenJDK6 or OpenJDK7, and it writes a properties file with those locations. The test task will use this property file, and explain what you need to do if it is not there. Incidentally, this brought to light issue 422: Delombok in java7 produces VerifyErrors.
Diffstat (limited to 'src/delombok')
-rw-r--r--src/delombok/lombok/delombok/Delombok.java16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/delombok/lombok/delombok/Delombok.java b/src/delombok/lombok/delombok/Delombok.java
index 3f521274..f67e3724 100644
--- a/src/delombok/lombok/delombok/Delombok.java
+++ b/src/delombok/lombok/delombok/Delombok.java
@@ -68,15 +68,11 @@ public class Delombok {
this.presetWriter = writer;
}
- public Delombok() {
-// context.put(DeleteLombokAnnotations.class, new DeleteLombokAnnotations(true));
- }
-
private PrintStream feedback = System.err;
private boolean verbose;
private boolean noCopy;
private boolean force = false;
- private String classpath, sourcepath;
+ private String classpath, sourcepath, bootclasspath;
private LinkedHashMap<File, File> fileToBase = new LinkedHashMap<File, File>();
private List<File> filesToParse = new ArrayList<File>();
@@ -115,6 +111,9 @@ public class Delombok {
@Description("Sourcepath (analogous to javac -sourcepath option)")
private String sourcepath;
+ @Description("override Bootclasspath (analogous to javac -bootclasspath option)")
+ private String bootclasspath;
+
@Description("Files to delombok. Provide either a file, or a directory. If you use a directory, all files in it (recursive) are delombok-ed")
@Sequential
private List<String> input = new ArrayList<String>();
@@ -173,6 +172,7 @@ public class Delombok {
if (args.classpath != null) delombok.setClasspath(args.classpath);
if (args.sourcepath != null) delombok.setSourcepath(args.sourcepath);
+ if (args.bootclasspath != null) delombok.setBootclasspath(args.bootclasspath);
try {
for (String in : args.input) {
@@ -230,6 +230,10 @@ public class Delombok {
this.sourcepath = sourcepath;
}
+ public void setBootclasspath(String bootclasspath) {
+ this.bootclasspath = bootclasspath;
+ }
+
public void setVerbose(boolean verbose) {
this.verbose = verbose;
}
@@ -355,6 +359,7 @@ public class Delombok {
options.put(OptionName.ENCODING, charset.name());
if (classpath != null) options.put(OptionName.CLASSPATH, classpath);
if (sourcepath != null) options.put(OptionName.SOURCEPATH, sourcepath);
+ if (bootclasspath != null) options.put(OptionName.BOOTCLASSPATH, bootclasspath);
options.put("compilePolicy", "attr");
CommentCatcher catcher = CommentCatcher.create(context);
@@ -363,7 +368,6 @@ public class Delombok {
List<JCCompilationUnit> roots = new ArrayList<JCCompilationUnit>();
Map<JCCompilationUnit, File> baseMap = new IdentityHashMap<JCCompilationUnit, File>();
-
compiler.initProcessAnnotations(Collections.singleton(new lombok.javac.apt.Processor()));
for (File fileToParse : filesToParse) {