diff options
author | Reinier Zwitserloot <reinier@zwitserloot.com> | 2012-08-28 09:14:41 +0200 |
---|---|---|
committer | Reinier Zwitserloot <reinier@zwitserloot.com> | 2012-08-28 09:17:01 +0200 |
commit | 70256754c2587361c9f70287f62c1e3fd2dede10 (patch) | |
tree | 464b128f4e7453760a714f9a2fad67e644c09482 /src/core/lombok | |
parent | 672ddda8f5b27b0a97ff00413edf6d159885d636 (diff) | |
download | lombok-70256754c2587361c9f70287f62c1e3fd2dede10.tar.gz lombok-70256754c2587361c9f70287f62c1e3fd2dede10.tar.bz2 lombok-70256754c2587361c9f70287f62c1e3fd2dede10.zip |
If the JVM is started with -Dlombok.disable, lombok is disabled entirely for both eclipse/ecj and javac operations.
Diffstat (limited to 'src/core/lombok')
-rw-r--r-- | src/core/lombok/eclipse/TransformEclipseAST.java | 38 | ||||
-rw-r--r-- | src/core/lombok/javac/apt/Processor.java | 7 |
2 files changed, 29 insertions, 16 deletions
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' |