AspectJ scripting agent
Scripting extension for AspectJ java agent. Allow java bytecode instrumentation at jvm startup by using MVEL expression and execute code from maven artifact repositories
Any AspectJ pointcut expression available with aspect types: AROUND, BEFORE, AFTER, AFTER_RETURNING, AFTER_THROWING
For example:
    {
      "name": "org.aspect.testing.Aspect6",
      "type": "AROUND",
      "pointcut": "execution(public static void main(String[]))",
      "init": {
        "expression": "System.out.println(\"Start jvm\")"
      },
      "dispose": {
        "expression": "System.out.println(\"Stop jvm\")"
      }
    }, 
Agent configuration:
- org.aspectj.weaver.loadtime.configuration=- config:file/httpchoose "config:file" or "config:http"
- org.aspectj.weaver.loadtime.configuration.debug=- true / false
- org.aspectj.weaver.loadtime.configuration.filter=- default - all aspects from configurationor any valid MVEL expression to filter aspects by "aspectByInstance/entry/key" value
- repo.remote.url=- default - maven centralor http://... valid path to other repository
- repo.local.path=- path- local directory to store maven artifacts
Thanks Steve Reed for maven classloader
 JarCasting
 JarCasting