Bug 113191

Summary: Contribution: Command Line Weaver that Can be Packaged with aspectjweaver.jar
Product: [Tools] AspectJ Reporter: Ron Bodkin <rbodkin+LISTS>
Component: CompilerAssignee: aspectj inbox <aspectj-inbox>
Status: NEW --- QA Contact:
Severity: enhancement    
Priority: P3    
Version: DEVELOPMENT   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:
Attachments:
Description Flags
the command line weaver implementation
none
patch to org.aspectj.ajdt.core to allow an additional test of declare parents using the jar weaver
none
zip of 2 test cases: I compared the output of ajc and the command line weaver for various combinations of running these none

Description Ron Bodkin CLA 2005-10-20 00:54:59 EDT
The following file builds inside the weaver module without adding additional 
dependencies. This allows it to be included in aspectjweaver.jar, to support 
command line weaving without requiring all of ajdt.core (i.e., you can get a 
1.5 megabyte jar to do the work instead of a 4.5 megabyte jar).

Much of the code in this file is copied in from other packages, to avoid 
dragging in duplicate code. It would be better refactored into a common module, 
like util, so that ajdt core and weaver could both use the same code.

I also created some standalone tests and modified the binary weaving tests for 
declare parents to allow using this command line weaver as well as ajc (all of 
which pass). I will attach a zip of the two test cases. If there's interest in 
integrating this contribution, I'd be glad to learn more about the AspectJ test 
harness and integrate these into it.
Comment 1 Ron Bodkin CLA 2005-10-20 01:05:48 EDT
Created attachment 28494 [details]
the command line weaver implementation
Comment 2 Ron Bodkin CLA 2005-10-20 01:07:46 EDT
Created attachment 28495 [details]
patch to org.aspectj.ajdt.core to allow an additional test of declare parents using the jar weaver
Comment 3 Ron Bodkin CLA 2005-10-20 01:12:59 EDT
Created attachment 28496 [details]
zip of 2 test cases: I compared the output of ajc and the command line weaver for various combinations of running these

please contact me if you are interested in integrating this contribution and
want a better explanation of these tests
Comment 4 Andrew Clement CLA 2005-10-20 03:25:10 EDT
I'd like to get this in for 1.5.0...
Comment 5 Adrian Colyer CLA 2005-10-28 07:21:02 EDT
will also need packaging in bin, testing cross-platform, adding to docs etc....
Comment 6 Andrew Clement CLA 2005-11-03 12:02:40 EST
Adrian moved it to 1.5.1 - I should probably add some comments as to why.  After
going through the patch - we need to sort out the duplication of option parsing
before it goes in and rework the test stuff quite a bit (possibly enhancing the
harness to support it) (Ron eluded to some of this in his original comments when
it was raised).  Given that, and the doc/packaging required, I'd rather we look
at it for 1.5.1 and do it properly - hope thats OK Ron.
Comment 7 Ron Bodkin CLA 2006-06-27 12:40:52 EDT
I have an updated version of the patch that works with 1.5.1a and more recent dev builds and adds a few more of the ajc features. If you let me know when you are ready to work on this, I can upload the latest at the time. Naturally, the best way to integrate command line weaving would be to refactor out common parsing functionality so there's shared code in a shared module instead of duplicated code.
Comment 8 Andrew Clement CLA 2006-10-04 05:27:29 EDT
depends on the table driven option parsing feature.  We dont want to duplicate option parsing here.
Comment 9 Andrew Clement CLA 2013-06-24 11:06:13 EDT
unsetting the target field which is currently set for something already released