Only feature JARs getting packaged for the update site [message #382734] |
Tue, 03 February 2009 03:22 |
Jimmy Royer Messages: 16 Registered: July 2009 |
Junior Member |
|
|
Hi!
I just started using Buckminster. My current goal is to build an update
site for our Eclipse plugins. All of our projects are Eclipse plug-ins
(OSGi bundles) . We have approximatively 13 plugins and two features. One
of the features comprises all of our custom plug-ins, and the other
comprises all of our RCP dependencies. We use the second feature so that
we can provide an update site for the RCP Product version of our
application. From our current plug-ins, we can successfully build an
update site and an RCP product using the PDE tooling. We wanted to try
Buckminster as an alternative to using PDE/Build for doing a command-line
headless build of our projects.
I went through the "Building an Update Site" example. I am able to invoke
the action without having any errors. The resulted update site isn't what
I expect though. In the zip file of the update site, I end up with an
incorrect update site. I have a features/ directory that is as expected,
with feature JARs for my two custom features and for all included
features. But my plugins/ directory has *exactly the same contents* as
the features/ directory. There are no plugins (bundles) at all.
Clearly, something is wrong and I can't put my finger on it. I am
attaching the CSpec file I created during the example process at the end
of the message. Has anyone seen this behavior before? Does anyone know
what's wrong with my Buckminster setup?
I have another question about the example, specific this time, and
possibly related. It is related to the Groups and Dependencies. From what
I understand, we have to list the features and plugins upon which our
update site depends on in the Dependencies. For our update site
configuration, we only have two features, one for the Eclipse RCP
dependencies plugins/features named "modex.designer.rcp_deps" and
another one for our project - specific (custom) plugins named
"modex.designer.feature" .
My question is, do we also need to include all the plugins and features
that are listed as dependencies of both of these features (in their
respective feature.xml files) ? I assume not , because I think Buckminster
does analyze the two features and derive dependencies. If my assumption
is correct though, why would we end up with only the features for both
plugins/features update site directories and not any plugins at all?
Would appreciate any help at all. Thanks!
This is the CSpec:
<?xml version="1.0" encoding="UTF-8"?>
<cs:cspec xmlns:cs="http://www.eclipse.org/buckminster/CSpec-1.0"
name="modex.designer.update" componentType="buckminster" version="1.4.4"
versionType="OSGi">
<cs:dependencies>
<cs:dependency name="modex.designer.feature"
componentType="eclipse.feature"/>
<cs:dependency name="modex.designer.rcp_deps"
componentType="eclipse.feature"/>
</cs:dependencies>
<cs:artifacts>
<cs:private name="site.rootFiles" path="index.html"/>
<cs:private name="site.template" path="site.xml"/>
</cs:artifacts>
<cs:actions>
<cs:public name="build.site" actor="ant">
<cs:actorProperties>
<cs:property key="buildFileId"
value="buckminster.pdetasks"/>
<cs:property key="targets" value="create.site"/>
</cs:actorProperties>
<cs:properties>
<cs:property key="site.name"
value="modex.designer.updatesite"/>
</cs:properties>
<cs:prerequisites>
<cs:attribute name="bundle.jars" alias="plugins"/>
<cs:attribute name="feature.jars" alias="features"/>
<cs:attribute name="site.rootFiles" alias="rootFiles"/>
<cs:attribute name="site.template" alias="template"/>
</cs:prerequisites>
<cs:products alias="action.output" base="site/"/>
</cs:public>
</cs:actions>
<cs:groups>
<cs:private name="bundle.jars"/>
<cs:private name="feature.jars">
<cs:attribute name="feature.jars"
component="modex.designer.feature"/>
<cs:attribute name="feature.jars"
component="modex.designer.rcp_deps"/>
</cs:private>
</cs:groups>
</cs:cspec>
Regards,
Jimmy
|
|
|
Re: Only feature JARs getting packaged for the update site [message #382735 is a reply to message #382734] |
Tue, 03 February 2009 06:05 |
|
Hi Jimmy,
Jimmy Royer wrote:
> ... with an incorrect update site. I have a features/ directory that is as
> expected, with feature JARs for my two custom features and for all
> included features. But my plugins/ directory has *exactly the same
> contents* as the features/ directory. There are no plugins (bundles)
> at all.
> Clearly, something is wrong and I can't put my finger on it. I am
> attaching the CSpec file I created during the example process at the end
> of the message. Has anyone seen this behavior before? Does anyone know
> what's wrong with my Buckminster setup?
With the attached cspec I would expect the plugins folder to be
completely empty. Yet you say it is exactly the same as the features
folder. Do you really get feature jars in the plugins folder?
In any case, try declaring the bundles.jar group like this:
<cs:private name="bundle.jars">
<cs:attribute name="bundle.jars" component="modex.designer.feature"/>
<cs:attribute name="bundle.jars" component="modex.designer.rcp_deps"/>
</cs:private>
The reason being that the bundles.jar group is supposed to collect the
bundles.jar from each of the included features (this is done transitively).
> I have another question about the example, specific this time, and
> possibly related. It is related to the Groups and Dependencies. From
> what I understand, we have to list the features and plugins upon which
> our update site depends on in the Dependencies.
No, that's not correct. In the dependencies you only list features, not
the plugins.
> For our update site
> configuration, we only have two features, one for the Eclipse RCP
> dependencies plugins/features named "modex.designer.rcp_deps" and
> another one for our project - specific (custom) plugins named
> "modex.designer.feature" .
> My question is, do we also need to include all the plugins and
> features that are listed as dependencies of both of these features (in
> their respective feature.xml files) ? I assume not , because I think
> Buckminster does analyze the two features and derive dependencies. If
> my assumption is correct though, why would we end up with only the
> features for both plugins/features update site directories and not any
> plugins at all?
>
The plugins will all be there once you fix the plugins.jar group. As for
the included features; Yes, it's true that Buckminster analyzes all
dependencies. You write yourself that "I have a features/ directory that
is as expected, with feature JARs for my two custom features and for all
included features" which should be good proof of that function.
Or is the question why the features doesn't end up in the site.xml?
That's because Buckminster assumes that you want to hide nested
features. If you want the nested features exposed, then you must promote
them to top-level features and include them separately.
Regards,
Thomas Hallgren
|
|
|
|
Powered by
FUDForum. Page generated in 0.03582 seconds