Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 360238 - Materialize to workspace does not fetch dependend features
Summary: Materialize to workspace does not fetch dependend features
Status: RESOLVED INVALID
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Buckminster (show other bugs)
Version: unspecified   Edit
Hardware: PC Windows 7
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: buckminster.core-inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-07 10:16 EDT by Christian Pontesegger CLA
Modified: 2019-02-25 14:40 EST (History)
1 user (show)

See Also:


Attachments
Buckminster log file (52.03 KB, text/plain)
2011-10-12 05:28 EDT, Christian Pontesegger CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Pontesegger CLA 2011-10-07 10:16:21 EDT
Build Identifier:  20110916-0149

I am materializing features from a local SVN repository. The main feature (A) targeted in my cquery depends on another feature (B) which is recorded in the feature.xml.

While all plugins from feature B are correctly materialized, feature B itself is not materialized.

Reproducible: Always
Comment 1 Thomas Hallgren CLA 2011-10-08 10:07:17 EDT
Can you please provide some more info. What does your cquery look like? Your rmap?
Comment 2 Christian Pontesegger CLA 2011-10-11 02:37:03 EDT
(In reply to comment #1)
> Can you please provide some more info. What does your cquery look like? Your
> rmap?

cquery:

<?xml version="1.0" encoding="UTF-8"?>
<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0" resourceMap="file:/C:/myresourcemap.rmap">
    <cq:rootRequest name="com.example.a.feature" componentType="eclipse.feature"/>
</cq:componentQuery>


rmap:

<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0" xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">
  <rm:locator searchPathRef="SVN_features" failOnError="false"/>
  <rm:locator searchPathRef="SVN_plugins" failOnError="false"/>
  <rm:searchPath name="SVN_plugins">
    <rm:provider componentTypes="osgi.bundle" readerType="svn">
      <rm:uri format="https://svnserver/svn/Eclipse_RCP/trunk/bundles/{0}">
        <bc:propertyRef key="buckminster.component"/>
      </rm:uri>
    </rm:provider>
  </rm:searchPath>
  <rm:searchPath name="SVN_features">
    <rm:provider componentTypes="eclipse.feature" readerType="svn">
      <rm:uri format="https://svnserver/svn/Eclipse_RCP/trunk/features/{0}">
        <bc:propertyRef key="buckminster.component"/>
      </rm:uri>
    </rm:provider>
  </rm:searchPath>
</rm:rmap>


feature B is correctly found on the server, otherwise its plugins would not be materialized.
Comment 3 Thomas Hallgren CLA 2011-10-11 03:44:52 EDT
Try adding source="true" to your providers.
Comment 4 Christian Pontesegger CLA 2011-10-11 09:40:35 EDT
(In reply to comment #3)
> Try adding source="true" to your providers.

Didn't help.
Comment 5 Thomas Hallgren CLA 2011-10-11 09:43:09 EDT
Can you please set the nubmer of resolution threads and materialization threads to 1 (in the preferences) and Buckminster logging to DEBUG and then attach the trace for a resolution?
Comment 6 Christian Pontesegger CLA 2011-10-12 05:28:20 EDT
Created attachment 205009 [details]
Buckminster log file
Comment 7 Christian Pontesegger CLA 2011-10-12 05:34:43 EDT
I added the log file as requested. I just replaced the name of our svn server there.

When creating the log i was trying to materialize the feature "com.infineon.feature.device.raw". Here is the content of the feature.xml:

<?xml version="1.0" encoding="UTF-8"?>
<feature
      id="com.infineon.feature.device.raw"
      label="Raw Device Drivers"
      version="1.0.0.qualifier"
      provider-name="Infineon Technologies Austria AG">
   <requires>
      <import feature="com.infineon.feature.device" version="1.0.0.qualifier"/>
   </requires>

   <plugin
         id="com.infineon.device.raw"
         download-size="0"
         install-size="0"
         version="0.0.0"
         unpack="false"/>
</feature>

Several plugins are materialized, but I guess those plugins are fetched because they are bundle dependencies.

To my understanding "com.infineon.feature.device.raw" should fetch the feature "com.infineon.feature.device" which itself depends on "com.infineon.feature.tools".

When checking the list of materialized plugins I see that not all bundles from "com.infineon.feature.device" and "com.infineon.feature.tools" are materialized. So I guess those features never get checked. They are not mentioned in the logs anyway.
Comment 8 Thomas Hallgren CLA 2011-10-12 05:45:03 EDT
(In reply to comment #7)
> To my understanding "com.infineon.feature.device.raw" should fetch the feature
> "com.infineon.feature.device" which itself depends on
> "com.infineon.feature.tools".
> 
No, that's not correct. The root feature just has an install requirement for this feature so it will not be included.

In general, stuff listed in the <requires></requires> does not generate Buckminster dependencies.

> When checking the list of materialized plugins I see that not all bundles from
> "com.infineon.feature.device" and "com.infineon.feature.tools" are
> materialized. So I guess those features never get checked. They are not
> mentioned in the logs anyway.

So, what is missing in the end result? Is the com.infineon.feature.device.raw feature materialized? The log seems to indicate that this is the case.
Comment 9 Christian Pontesegger CLA 2011-10-12 07:41:17 EDT
(In reply to comment #8)
> So, what is missing in the end result? Is the com.infineon.feature.device.raw
> feature materialized? The log seems to indicate that this is the case.

"com.infineon.feature.device" is missing. But as it is just an install requirement - as you said - it is clear that it is missing.

All plugins needed to run the feature "com.infineon.feature.device.raw" are materialized correctly.


So it was a wrong assumption by me, that dependent features should be materialized too.

Is there an option to trigger the behavior I was expecting? If not I'd love to see this feature in one of the next buckminster releases!
Comment 10 Thomas Hallgren CLA 2011-10-21 01:28:52 EDT
(In reply to comment #9)
> Is there an option to trigger the behavior I was expecting? If not I'd love to
> see this feature in one of the next buckminster releases!

No, sorry. THere's no such option. Please file an enhancement request.