1. 05 Apr, 2018 1 commit
  2. 24 Oct, 2017 1 commit
  3. 07 Oct, 2016 1 commit
  4. 06 Oct, 2016 2 commits
  5. 29 Aug, 2016 1 commit
  6. 26 Aug, 2016 1 commit
  7. 25 Aug, 2016 1 commit
    • Lubomir Bulej's avatar
      NetReferenceHelper: add getUniqueId() method that will return a net reference... · 5c376d0e
      Lubomir Bulej authored
      NetReferenceHelper: add getUniqueId() method that will return a net reference with the special payload bit masked.
      ShadowObject: add (package private) getUniqueId() method.
      ShadowObject: add (package private) isSpecial() method.
      ShadowObject, ShadowClass: move (package private) getClassId() method from ShadowClass to ShadowObject.
      ShadowObject: remove the getNetRef() method to (sort of) keep a lid on the raw net reference.
      ShadowObject: test equality using getUniqueId() instead of raw net reference, so that objects with the same it but one containing special payload are considered equal.
      ShadowObjectTable: only call updateFrom() on an existing object when the other object is "special", i.e., it contains special payload.
      ShadowClassTable: avoid using net reference directly, use isSpecial() and getClassId() on the shadow object.
      
      5c376d0e
  8. 18 Aug, 2016 3 commits
  9. 16 Aug, 2016 1 commit
  10. 15 Aug, 2016 2 commits
  11. 06 Aug, 2016 2 commits
  12. 16 Nov, 2015 1 commit
  13. 01 Oct, 2015 1 commit
  14. 26 Apr, 2015 1 commit
    • Lubomir Bulej's avatar
      - Reimplemented the scope matcher. The scope now accepts multiple parameter... · 11234525
      Lubomir Bulej authored
      - Reimplemented the scope matcher. The scope now accepts multiple parameter wild cards, similar to normal textual wild cards.
      - Added tests for the simpler matchers that comprise a scope matcher, and fixed, extended, and cleaned up the existing scope tests.
      - Removed ScopeParserException, and replaced it with package-private MalformedScopeException.
      - Introduced GeneralException class to hold common runtime exception code.
      - Introduced JavaNames utility class to hold common Java name handling code.
      - Modified SnippetParser, ExclusionSet to use the new ScopeMatcher.
      
      11234525
  15. 21 Apr, 2015 3 commits
  16. 09 Oct, 2014 1 commit
    • 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
  17. 08 Oct, 2014 2 commits
  18. 06 Oct, 2014 1 commit
  19. 01 Oct, 2014 1 commit
  20. 29 Aug, 2014 1 commit
  21. 15 Aug, 2014 1 commit
    • Lubomir Bulej's avatar
      DiSL: moved transformer related code into Transformers class. · ec5b7a4a
      Lubomir Bulej authored
      DiSL: moved DiSL class initialization into DislClasses class.
      DiSL: moved ClassNode unmarshalling/marshaling code into ClassNodeHelper.
      ClassNodeHelper: encapsulate different loading strategies for snippets and instrumented classes.
      ClassNodeHelper: provide ClassNode duplication code.
      ClassNodeHelper: provide code for marshaling ClassNode into class-files.
      Transformer: moved to disl package.
      Transformer: removed propagateUninstrumentedClasses() method, its purpose is unclear.
      TransformerException: moved to disl package, to be used for exceptions resulting from applying transformers to code.
      TransformerInitializationException: created as a class to be used for exceptions occurring during transformer loading and initialization.
      Transformers: encapsulates transformer loading, initialization, and application code.
      InitException: renamed to DiSLInitializationException to serve as top-level exception for initialization exceptions.
      LocalVars: added put() methods for thread-local and synthetic-local variables.
      LocalVars: getThreadLocals() and getSyntheticLocals() now return unmodifiable maps.
      AbstractParser: use the LocalVars.put() methods to insert local variables into LocalVars.
      DislClassParser: renamed to DislClasses, as it represents the collected snippets.
      DislClasses: moved snippet and argument processor initialization code from DiSL class.
      DislClasses: removed the getProcessors() and getAllLocalVars() methods that are no long necessary.
      ClassByteLoader, DiSL: cleaned up formatting.
      testtools.agent.Transformer: initialize DiSL statically.
      testtools.agent.Transformer: partially cleaned up formatting.
       initialization/loading code 
      ec5b7a4a
  22. 02 Aug, 2014 1 commit
  23. 19 Jul, 2014 2 commits
  24. 20 Jun, 2014 1 commit
    • Lubomir Bulej's avatar
      Job: return self from start() method. · 7a3ff2d0
      Lubomir Bulej authored
      Runner: added utility method for watching a file.
      ClientServerRunner: detect DiSL server readiness, speeding up test execution.
      ClientServerEvaluationServer: detect DiSL and Shadow VM server readiness, speeding up test execution.
      7a3ff2d0
  25. 13 Jun, 2014 1 commit
    • Lubomir Bulej's avatar
      - Added annotation processor (DislClassFinder) to find DiSL classes. · 072e8bab
      Lubomir Bulej authored
      - Modified builds system to automatically find DiSL classes in test suites.
      - Removed MANIFEST.MF files from test suites.
      - Changed class name separator for DiSL-Classes attribute from colon to comma,
        because the Ant "jar" task does not like the colon as a separator when generating
        MANIFEST.MF on the fly.
      072e8bab
  26. 29 May, 2014 1 commit
    • Lubomir Bulej's avatar
      - Merged the new DiSL agent code. Code generations options are not yet used. · ed524974
      Lubomir Bulej authored
      - Removed the old DiSL agent code as well as the old Java agent.
      - Copied old shared DiSL agent headers to Shadow VM agent.
      - Added JDK includes for JNI and JVMTI to avoid looking for them.
      - Unified the naming of source directories.
      - Updated the test infrastructure to the new build system layout.
      - Examples can be now run even from the source distribution.
      ed524974
  27. 27 May, 2014 1 commit
    • Lubomir Bulej's avatar
      Sanitized the build system before merging the new DiSL agent: · a8e0a26b
      Lubomir Bulej authored
      - The build.xml file has been cleaned up extensively.
      - The build system for examples has been simplified and cleaned up.
      - There is support for binary DiSL releases with examples and documentation.
      - Examples should be used with a binary DiSL distribution (see output/dist).
      - Moved the disl.py launcher out of the examples subdirectory.
      - Test suite Runner has been modified to accept locations and native library names from outside.
      a8e0a26b
  28. 14 May, 2014 4 commits