products forums blog support careers about
  History | Log In     View a printable version of the current page.  
PRO USERS, to ensure 'PRIORITY SUPPORT' make sure that your ASAP account is "tagged" when you file the request. Click here for instructions on how to tag your account.
Issue Details (XML | Word | Printable)

Key: ROR-909
Type: Bug Bug
Status: Closed Closed
Resolution: Fixed
Priority: Average Average
Assignee: Chris Williams
Reporter: James Le Cuirot
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Aptana RadRails

Packaging as nested JARs prevents building RadRails with headless Eclipse PDE

Created: 30/Jun/08 07:08 AM   Updated: 17/Jul/08 10:57 AM
Component/s: None
Affects Version/s: 1.0.2
Fix Version/s: 1.0.3, 1.1.0

Importance: Average
Studio Install Type: Eclipse Plugin
Participants: Chris Williams and James Le Cuirot


 Description  « Hide
I'm packaging RDT and RadRails for Gentoo Linux, where we build everything from source. It works but I have to make an awkward adjustment to RDT before RadRails will find its classes. When Eclipse plugins started being packed into singular JARs, most stored their classes directly within that JAR but for some reason, RDT stores its classes within a nested JAR. This should be a problem for the headless PDE because it works fine at runtime but since RDT is the only plugin I know of that does this, I figured I'd report this here. It just involves making a couple of changes to build.properties and MANIFEST.MF. Taking org.epic.regexp as an example...

build.properties BEFORE:
source.regexp.jar = src/
bin.includes = plugin.xml,\
*.jar,\
regexp.jar,\
shortcuts,\
icons/,\
META-INF/

build.properties AFTER:
source.. = src/
output.. = bin/
bin.includes = plugin.xml,\
*.jar,\
.,\
shortcuts,\
icons/,\
META-INF/

MANIFEST.MF BEFORE:
...
Bundle-ClassPath: regexp.jar,
gnu-regexp-1.1.4.jar
...

MANIFEST.MF AFTER:
...
Bundle-ClassPath: .,
gnu-regexp-1.1.4.jar
...

Where there are no dependency JARs, you can remove the Bundle-ClassPath entry altogether. Having the dependency JARs nested isn't a problem for me because we source these externally anyway. I suspect you won't edit the files by hand but I've never written a plugin, I just build the things!

I might be able to return the favour. If it's of any use to you, I have patches for RDT to make it build with Eclipse 3.3 and JRuby 1.1.2, though I suspect you've got 3.3 covered already. Let me know and I'll make another ticket.



 All   Comments   Change History      Sort Order: Ascending order - Click to sort in descending order
Chris Williams - 30/Jun/08 08:49 PM
This should be fixed in both trunk and the radrails_1.0 branch. Let me know if I missed any...

James Le Cuirot - 01/Jul/08 05:33 AM
Actually you went a bit too far! I should have said that you shouldn't do this to any plugins that aren't packed. Currently, these plugins are org.rubypeople.rdt.core, org.rubypeople.rdt.launching, org.rubypeople.rdt.testunit and org.rubypeople.rdt.ui. You should reverse the change on these or alternatively you could add an unpack="false" attribute to the feature.xml file. I don't know of any reason why they need to be unpacked but maybe you do.

Chris Williams - 07/Jul/08 10:21 AM
OIK, I rolled back the changes fro core, ui, testunit and launching. They are all marked to get unpacked because they contain files we reference directly (for example, ruby scripts). To allow the plugins to remain packed I'd need to add logic to copy the files out of the plugin JARs into the bundle state locations before referring to them - which is relatively easy but not something I want to fiddle with on a bugfix branch. I'll take a look at doing that on trunk.

James Le Cuirot - 08/Jul/08 05:00 AM
It works fine now, thank you. (-: