Skip to content
  • Lubomir Bulej's avatar
    DiSL: use the logging infrastructure instead of standard output/error to produce any messages. · 55b410df
    Lubomir Bulej authored
    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()
    55b410df