DiSL: use the logging infrastructure instead of standard output/error to produce any messages.
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()
Showing with 2157 additions and 1747 deletions
This diff is collapsed.
This diff is collapsed.