Bug 26851

Summary: clean up rmic mess
Product: classpath Reporter: Tom Tromey <tromey>
Component: classpathAssignee: Not yet assigned to anyone <unassigned>
Status: RESOLVED FIXED    
Severity: normal CC: archit.shah, bug-classpath
Priority: P3    
Version: 0.90   
Target Milestone: 0.93   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed: 2006-03-24 16:43:47
Bug Depends on: 25414    
Bug Blocks:    

Description Tom Tromey 2006-03-24 16:40:32 UTC
Currently we have 3 versions of rmic kicking around:

1. the old version, still in libgcj
2. the tools version, which uses ASM.  This was rewritten
   specifically to improve performance -- a feature which must
   be preserved
3. the new version, in classpath/tools

We need to delete 1, and merge 2 and 3.  In particular we
should probably import ASM into classpath/tools/external or
the like.
Comment 1 Andrew Pinski 2006-03-24 16:43:46 UTC
Confirmed, I thought I saw another bug just like this before.
Comment 2 Andrew Pinski 2006-03-24 16:44:36 UTC
Yes PR 25414, which is for deleting 1. :).
Comment 3 Audrius Meškauskas 2006-03-24 17:54:44 UTC
The used ASM version is very old and not compatible with the recent version. While merging itself is relatively easy, it would be good to upgrade the code for using the recent version of that package. Then we maybe could use the ASM in some other parts of Classpath, if it is already accepted. Sticking to the obsolete version is somehow less attractive.

I would also like to point that the fastest alternative is not to use the RMIC at all. Since JDK 1.5 both stubs and skeletons are no longer needed, despite this may require some minor code modifications.
Comment 4 Tom Tromey 2006-03-25 01:30:19 UTC
Yeah, I agree, updating ASM would be good.
And the 1.5 plan of not having an rmic also sounds good.

As to using ASM in other parts of classpath: I think due to
class loader issues we can only use it in the tools.
Well, or we could make a copy and refactor it into a different package.
Comment 5 Archit Shah 2006-03-28 20:39:43 UTC
On 2005-12-14, ASM 2.2.1 and 3.0-beta were released. Moving to 2.2.1 requires changing about 30 lines of code in RMIC.java. The changes are mostly mechnical. From there, moving to 3.0 will require changing another two lines of code. I will post the patch for 2.2.1 tomorrow after doing a little bit of testing. Once 3.0 is final, we can move to that.
Comment 6 Audrius Meškauskas 2006-03-30 07:00:53 UTC
Great! The ASM maybe could also generate the RMI-IIOP classes in the future.
Comment 7 Tom Tromey 2006-12-07 18:31:42 UTC
This was fixed.