Bug 113191 - Contribution: Command Line Weaver that Can be Packaged with aspectjweaver.jar
Summary: Contribution: Command Line Weaver that Can be Packaged with aspectjweaver.jar
Status: NEW
Alias: None
Product: AspectJ
Classification: Tools
Component: Compiler (show other bugs)
Version: DEVELOPMENT   Edit
Hardware: PC Windows XP
: P3 enhancement (vote)
Target Milestone: ---   Edit
Assignee: aspectj inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-10-20 00:54 EDT by Ron Bodkin CLA
Modified: 2013-06-24 11:06 EDT (History)
0 users

See Also:


Attachments
the command line weaver implementation (17.08 KB, text/plain)
2005-10-20 01:05 EDT, Ron Bodkin CLA
no flags Details
patch to org.aspectj.ajdt.core to allow an additional test of declare parents using the jar weaver (6.84 KB, patch)
2005-10-20 01:07 EDT, Ron Bodkin CLA
no flags Details | Diff
zip of 2 test cases: I compared the output of ajc and the command line weaver for various combinations of running these (19.97 KB, application/x-zip-compressed)
2005-10-20 01:12 EDT, Ron Bodkin CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
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