aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/changelog.markdown3
-rw-r--r--src/core/lombok/eclipse/TransformEclipseAST.java38
-rw-r--r--src/core/lombok/javac/apt/Processor.java7
3 files changed, 32 insertions, 16 deletions
diff --git a/doc/changelog.markdown b/doc/changelog.markdown
index e2b4d132..f042f69f 100644
--- a/doc/changelog.markdown
+++ b/doc/changelog.markdown
@@ -1,6 +1,9 @@
Lombok Changelog
----------------
+### v0.11.5 (Edgy Guinea Pig)
+* FEATURE: Lombok can be disabled entirely for any given compile run by using JVM switch `-Dlombok.disable`. This might be useful for code style checkers and such.
+
### v0.11.4 (August 13th, 2012)
* FEATURE: {Experimental} `@Value`, `@Wither` and `@FieldDefaults` are now available. These are a lot like `@Data` but geared towards immutable classes. [Documentation on @Value](http://projectlombok.org/features/experimental/Value.html), [Documentation on @Wither](http://projectlombok.org/features/experimental/Wither.html) and [Documentation on @FieldDefaults](http://projectlombok.org/features/experimental/FieldDefaults.html).
* BUGFIX: Eclipse would throw an OOME if using `@ExtensionMethod`. [Issue #390](http://code.google.com/p/projectlombok/issues/detail?id=390)
diff --git a/src/core/lombok/eclipse/TransformEclipseAST.java b/src/core/lombok/eclipse/TransformEclipseAST.java
index 63783734..89d23fbd 100644
--- a/src/core/lombok/eclipse/TransformEclipseAST.java
+++ b/src/core/lombok/eclipse/TransformEclipseAST.java
@@ -62,25 +62,31 @@ public class TransformEclipseAST {
Field f = null;
HandlerLibrary h = null;
- try {
- h = HandlerLibrary.load();
- } catch (Throwable t) {
+ if (System.getProperty("lombok.disable") != null) {
+ disableLombok = true;
+ astCacheField = null;
+ handlers = null;
+ } else {
try {
- error(null, "Problem initializing lombok", t);
- } catch (Throwable t2) {
- System.err.println("Problem initializing lombok");
- t.printStackTrace();
+ h = HandlerLibrary.load();
+ } catch (Throwable t) {
+ try {
+ error(null, "Problem initializing lombok", t);
+ } catch (Throwable t2) {
+ System.err.println("Problem initializing lombok");
+ t.printStackTrace();
+ }
+ disableLombok = true;
}
- disableLombok = true;
- }
- try {
- f = CompilationUnitDeclaration.class.getDeclaredField("$lombokAST");
- } catch (Throwable t) {
- //I guess we're in an ecj environment; we'll just not cache stuff then.
+ try {
+ f = CompilationUnitDeclaration.class.getDeclaredField("$lombokAST");
+ } catch (Throwable t) {
+ //I guess we're in an ecj environment; we'll just not cache stuff then.
+ }
+
+ astCacheField = f;
+ handlers = h;
}
-
- astCacheField = f;
- handlers = h;
}
public static void transform_swapped(CompilationUnitDeclaration ast, Parser parser) {
diff --git a/src/core/lombok/javac/apt/Processor.java b/src/core/lombok/javac/apt/Processor.java
index 94e0e644..96150b06 100644
--- a/src/core/lombok/javac/apt/Processor.java
+++ b/src/core/lombok/javac/apt/Processor.java
@@ -75,10 +75,16 @@ public class Processor extends AbstractProcessor {
private JavacProcessingEnvironment processingEnv;
private JavacTransformer transformer;
private Trees trees;
+ private boolean lombokDisabled = false;
/** {@inheritDoc} */
@Override public void init(ProcessingEnvironment procEnv) {
super.init(procEnv);
+ if (System.getProperty("lombok.disable") != null) {
+ lombokDisabled = true;
+ return;
+ }
+
this.processingEnv = (JavacProcessingEnvironment) procEnv;
placePostCompileAndDontMakeForceRoundDummiesHook();
transformer = new JavacTransformer(procEnv.getMessager());
@@ -223,6 +229,7 @@ public class Processor extends AbstractProcessor {
/** {@inheritDoc} */
@Override public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
+ if (lombokDisabled) return false;
if (roundEnv.processingOver()) return false;
// We have: A sorted set of all priority levels: 'priorityLevels'