DiSL: mark the constructor as deprecated because of the amount of work done in it, and provide an init() static factory method.
DiSL: selectShadowsWithGuards() converted to the streams API.
DiSL: dropped getters from InstrumentedClass, as it is private class that only serves to return a multi-value result.
DiSL: introduce the usage of the CodeOption enums to determine how to instrument code, so far in backwards compatibility mode.
AbstractParser: use logger instead of stdout to print out warning.
AbstractParser: added ensure*() methods to check for expected properties in snippets.
AnnotationMapper: new class for processing Java annotations.
ArgProcessorParser: cleaned up the parsing code, switched several loops to the streams API.
ContextKind: introduced to represent the various kinds of contexts.
DiSLClasses: use a set of CodeOption enums instead of boolean flags when loading DiSL classes.
SnippetParser: extracted the Contexts class into ContextUsage class.
SnippetParser: cleaned up snippet validation and parsing.
ParserRuntimeException: introduced as an internal exception for class parser classes.
Code, UnprocessedCode: use MethodNode as a reference to code, instead of separate instruction and try-catch-block lists.
Code, UnprocessedCode: drop context kind usage information, because it is not used by any code.
Code: only expose information on local variables and static context methods as unmodifiable sets.
Code, UnprocessedCode, SnippetCode, SnippetUnprocessedCode: introduce a copy contructor for use in the clone() method.
ContextUsage: extracted from SnippetParser and slightly refactored.
InvalidStaticContextInvocationException: introduced as an internal exception for code representation classes.
UnprocessedCode: added className(), methodName(), and location(AbstractInsn) methods.
UnprocessedCode: cleaned up translateThreadLocalVars() method and renamed it to __rewriteThreadLocalVarAccesses().
UnprocessedCode: converted many loops in helper methods to the streams API, sometimes even using parallel streams.
ArgumentContextImpl: just wrap ProcMethodInstance instead of duplicating the information.
GuardHelper: use ProcMethodInstance in guardApplicable() method instead of passing argument context parameters explicitly.
ArgProcessorParserException: repurposed to ParserRuntimeException.
ParserException, ParserRuntimeException, ProcessorException, StaticContextGenException: added constructor(s) for formatted messages and cleaned up formatting.
ArgProcessor: added getReferencedSCMs() method to collected static context methods referenced in argument processor methods.
ArgProcessorKind: removed valueOf(ProcessAlso.Type) because it is not used.
ArgProcessorMethod: use Code and UnprocessedCode instead of ProcCode and ProcUnprocessedCode.
ArgProcessorMethod: replaced getTypes() with handlesType(ArgProcessorKind) to make the class do more work.
ArgProcessorMethod, Snippet: make sure getCode() can be only called after the template code has been expanded.
ArgProcessorMethod, Snippet, SnippetUnprocessedCode: use the template code as a source of the snippet origin class and method names.
ProcCode, ProcUnprocessedCode: removed, as their function is subsumed by Code and UnprocessedCode classes.
PIResolver: cleaned up and simplified the equals() implementation.
ProcGenerator: use handlesType() instead of getTypes().contains() on ArgProcessorMethod.
ProcGenerator: pass ProcMethodInstance into guardApplicable() invocations, eliminated isPMGuardApplicable() private method.
ProcMethodInstance: use Code instead of ProcCode.
ProcMethodInstance: renamed getArgPos() to getArgIndex().
ProcMethodInstance: renamed getArgType() to getKind() because that is what it does.
ProcMethodInstance: changed getArgTypeDesc() to getArgType() and made it to return Type, instead of string type descriptor to keep the abstraction higher.
Snippet: use Integer.compare() on snippet order in the compareTo() method.
Snippet: cleaned up code and javadoc formatting.
SnippetCode: decorate Code instead of extending it, besides other things it makes cloning much simpler.
SnippetCode: build the set of reference static context methods lazily based on the SCMs referenced in the template code and the associated argument processor methods.
SnippetUnprocessedCode: decorate UnprocessedCode instead of extending it, makes cloning much simpler.
SnippetUnprocessedCode: dropped context kind usage information, it is not used anywhere.
SnippetUnprocessedCode, UnprocessedCode: cleaned up and added comments to the process() method.
SnippetUnprocessedCode: dropped getters from the privater ProcessorInfo class.
SnippetUnprocessedCode: cleaned up the insnInvokesProcessor() method.
SnippetUnprocessedCode: cleaned up the insertExceptionHandler() method and renamed it to __insertExceptionHandler().
SnippetUnprocessedCode: cleaned up the insertDynamicBypass() method and renamed it to __insertDynamicBypassControl().
SCGenerator: simplified computeStaticInfo() and cleaned up the formatting.
AsmHelper: removed the deprecated helper methods, they now reside closer to where they are used.
WeavingCode: reflect the changes in ProcMethodInstance method names.
RequestProcessor: use DiSL.init() instead of new DiSL(), and convert "dislserver.disablebypass" property to "disl.disablebypass" to preserve compatibility.
OnPlaceTransformer, Transformer: use DiSL.init() instead of new DiSL()