Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [buckminster-dev] Different builds using Buckminster

Hi.

Worked a little more on this issue. Found another approach, which uses such a wonderful thing as MSPEC :)
So, back to our situation with "plA", "plB" and "plC". "plA" depends on "plB" and "plC". I want to materialize "plA" and "plB" to my workspace, and put "plC" to target platform.

I've read a small tutorial here: http://dev.eclipse.org/newslists/news.eclipse.technology.buckminster/msg00516.html
Based on it, I've created MSPEC:
<mspec ... materializer="workspace">
   <mspecNode namePattern="^\QplA\E$" materializer="filesystem" installLocation="c:/temp"/>
   <mspecNode namePattern="^\QplB\E$" materializer="filesystem" installLocation="c:/temp"/>
</mspec>

When I resolve it, I get "plA" and "plB" in my workspace, and "plC" in desired location ("c:/temp" in this case).
Just what I needed. Almost.

Q1: My target platform location ("installLocation" in MSPEC) has to be set to "{target.location}" Buckminster property (which points to current target platform I guess) instead of hardcoded to "c:/temp". How can this be done?

Q2: Can I automatically package plugins into jars when materializing to filesystem? I've found "unpack" node, but unfortunately not a "pack" one :'(

Q3: How can I automatically "Reload" target platform, after I have materialized all the plugins to let Eclipse know that they have changed? This I think have to be roughly equivalent to pressing "Reload" button on "Preferences -> Plug-in Development -> Target Platform" page. Is there an Ant task for this or I have to create my own?

Q4: What exactly is "targetPlatform" materializer and how it can be used? I've tried to specify it and always got an error:
[0000] : Unable to obtain URI for plC:osgi.bundle$1.0.0#OSGi

Thanks.


ps Found a strange issue also. Maybe a bug. Let's compare two MSPECs in the described earlier context of "plA", "plB" and "plC":

1:
<mspec ... materializer="workspace">
<mspecNode namePattern="^\QplC\E$" materializer="filesystem" installLocation="c:/temp"/>
</mspec>

2:
<mspec ... materializer="filesystem" installLocation="c:/temp">
<mspecNode namePattern="^\QplA\E$" materializer="workspace"/>
<mspecNode namePattern="^\QplB\E$" materializer="workspace"/>
</mspec>

At first glance they are to made to perform similar actions:
1) "plA" and "plB" are materialized to workspace and then imported;
2) "plC" is materialized to filesystem;

MSPEC #1 does exatly this. While MSPEC #2 behaviour is different: it meterialized ALL the plugins to filesystem, and then imports required to workspace without copying source code. So, after execution of MSPEC #1 I have two places where plugins are located: my "{workspace}/plugins" folder and "{installLocation}" folder. After MSPEC #2 all my plugins are located in "{installLocation}" folder and then some of them are imported to my workspace without copying source.
Is this the right behaviour?


Back to the top