diff options
-rw-r--r-- | doc/changelog.markdown | 3 | ||||
-rw-r--r-- | src/core/lombok/eclipse/TransformEclipseAST.java | 38 | ||||
-rw-r--r-- | src/core/lombok/javac/apt/Processor.java | 7 |
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' |