On Tue, Jan 11, 2011 at 5:29 PM, Pierre-Arnaud Marcelot <pa@marcelot.net> wrote:
On 5 janv. 2011, at 20:32, Alex Karasulu wrote:

On Wed, Jan 5, 2011 at 9:16 PM, Jesse McConnell <jesse.mcconnell@gmail.com> wrote:
>> Since you have eclipse plugins you ought to
>> build those with maven + tycho and have a similar and sane versioning
>> system.
> I talked with Pierre about it. As a side point because of the way the build
> in Studio is setup, we're unable at this point to take advantage of IDE
> refactoring since dependencies are on bundle jars rather than on projects
> themselves. Do you know if using Maven + Tycho will help with this specific
> problem?
> I'm asking this because it might spare some work for us when we refactor
> shared which Studio depends on.

when I am working on the jetty wtp plugin I am able to have all 3
plugins open and refactor between them, I just let m2eclipse import
and do the right thing

the combination of m2eclipse + maven3 + tycho is quite nice

Ahh cool. PAM, and Seelman is this something you might want to try or leave out for later? I just cringe at the thought of your having to manually update Studio again after we reorg shared.  

Hi Alex, Jesse,

The situation is a little more complicated actually as we have a three level story here.

Let me recap the situation...

Some functionalities of Studio plugins require that we use/extend classes of some Shared and ApacheDS project modules.

Unfortunately, those Shared and ApacheDS project modules are not OSGI (or Eclipse) bundles (yet?).

Perhaps we can just convert them into bundles for now without any further functionality. 
In order to solve that problem and to be able to use them in our plugins, we created a specific Eclipse plugin for each required Shared and ApacheDS dependency.
I named such a plugin as a "Library Plugin", opposed to our "Studio Code Plugins".

A "Library Plugin" simply embeds the jar file of the corresponding Shared or ApacheDS project module and sets a proper MANIFEST.MF file with the correct OSGI and Eclipse instructions (Bundle-SymbolicName, Export-Package, Require-Bundle, etc.).

In the end, in your Eclipse workspace, you find yourself having two projects for a single original module:
- that original module with the source code ('shared-ldap' for example)
- the associated library plugin, based on a constructed (snapshot) jar file of that original module ('org.apache.directory.shared.ldap' for example)

Now, when you refactor the source code of the original module, unfortunately, the link between that module and the final "Studio Code Plugin" is lost for Eclipse, because of the use of the jar file in the associated "Library Plugin" between the two.
Then the modifications applied on the original module are not applied to the "Studio Code Plugin".

I'm not sure Tycho can help us solve this issue, but it does, I'd be happy to update our Studio build to use it...



Alex Karasulu
My Blog :: http://www.jroller.com/akarasulu/
Apache Directory Server :: http://directory.apache.org
Apache MINA :: http://mina.apache.org
To set up a meeting with me: http://tungle.me/AlexKarasulu