Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 339389

Summary: integrate Libra milestone repo with webtools
Product: z_Archived Reporter: David Williams <david_williams>
Component: LibraAssignee: Kaloyan Raev <kaloyan>
Status: CLOSED FIXED QA Contact: Kaloyan Raev <kaloyan>
Severity: enhancement    
Priority: P3    
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description David Williams CLA 2011-03-09 11:39:01 EST
Since Libra has its own build, we need to coordinate how to "merge" the repositories, especially for milestones, and releases. 

I suggest we simply use a composite repo, which "points to" each of the separate repos. 

To start, you might want to look at our webtools "indigo" repo (which has webtools M5 in it). From a shell, you can see it at 

/home/data/httpd/download.eclipse.org/webtools/repository/indigo

If you were to expand its 
compositeContent.jar 
to 
compositeContent.xml
it would look like the following. 


<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='The Eclipse Web Tools Platform (WTP) software repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1'>
  <properties size='2'>
    <property name='p2.timestamp' value='1299078933666'/>
    <property name='p2.compressed' value='true'/>
  </properties>
  <children size='1'>
    <child location='http://download.eclipse.org/webtools/downloads/drops/R3.3.0/S-3.3.0M5-20110127064115/repository/'/>
  </children>
</repository>


So, the idea is to just add another child that would point specifically to the libra repository. So add repos to these composites, it is best to use p2 API, via an ant task. I use one similar to the following: 

$ cat makeComposite.xml
<project
    default="createcomposite"
    basedir=".">
    <target
        name="createcomposite">
        <p2.composite.repository>
            <repository
                location="file:/home/data/httpd/download.eclipse.org/webtools/repository/indigo/"
                name="The Eclipse Web Tools Platform (WTP) software repository"/>
            <add>
                <repository location='http://download.eclipse.org/webtools/downloads/drops/R3.3.0/S-3.3.0M5-20110127064115/repository/'/>
            </add>
        </p2.composite.repository>
    </target>
</project>
Comment 1 David Williams CLA 2011-03-09 11:45:17 EST
One thing to figure out, is how to coordinate "categories". Should at least be similar names, if not identical. For webtools, we currently use something like the following in category.xml, so for each build, it is a slight different name: 

    <feature id="org.eclipse.jst.web_ui.feature">
        <category name="Web Tools Platform (WTP) @buildversionid@"/>
    </feature>
    <feature id="org.eclipse.jst.web_sdk.feature">
        <category name="Web Tools Platform SDK (WTP SDK) @buildversionid@"/>
    </feature>

That is, @buildversionid@ is replaced with the build label, such as 
I-3.3.0-20110303220333
(I think ... I'd have to confirm, but don't think this gets changed to "S", or anything). 

Note we have "SDK" category, and the lessor "executable only" category. (We also have a test category, bug keep that in a separate repo, and is not currently aggregated for milestones or anything ... just each build). 

Suggestions?
Comment 2 Kaloyan Raev CLA 2011-03-11 17:06:13 EST
David,

I've created a repository for the Libra 0.1 M6 build at the following location:

http://download.eclipse.org/libra/milestones/S-0.1.0M6-201103111139/repository/

I am not sure about the business with the categories. Currently, we build only non-SDK plugins for Libra. Perhaps, we can build SDK plugins for M7. 

The features in the above repository are put in a single category labeled "Enterprise Tools for the OSGi Service Platform". 

What should I change so these features are shown under the "Web Tools Platform ..." category once I add the repository to the composite webtools indigo repo?

I've noticed that the WTP features are shown in the indigo discovery repo under a category with completely different name: "Web, XML and Java EE Development". How is this achieved?

I would like to have the Libra features in the indigo discovery repo under a category that contains "OSGi" or even better "OSGi Enterprise" in its name - like "Web, XML, Java EE and OSGi Enterprise Development". Will this be possible?
Comment 3 David Williams CLA 2011-03-15 00:02:04 EDT
> I've created a repository for the Libra 0.1 M6 build at the following location:
> 
> http://download.eclipse.org/libra/milestones/S-0.1.0M6-201103111139/repository/

> 
> I am not sure about the business with the categories. Currently, we build only
> non-SDK plugins for Libra. Perhaps, we can build SDK plugins for M7. 
> 
> The features in the above repository are put in a single category labeled
> "Enterprise Tools for the OSGi Service Platform". 
> 
> What should I change so these features are shown under the "Web Tools Platform
> ..." category once I add the repository to the composite webtools indigo repo?
>

It is "fixed" (now) based on your repository (the way we do categories, in our wtp site). Not sure what to do for future. 

 
> I've noticed that the WTP features are shown in the indigo discovery repo under
> a category with completely different name: "Web, XML and Java EE Development".
> How is this achieved?
> 

We have a special indigo contribution file for the common repository, where categories are named/created independently of their original repositories. 


> I would like to have the Libra features in the indigo discovery repo under a
> category that contains "OSGi" or even better "OSGi Enterprise" in its name -
> like "Web, XML, Java EE and OSGi Enterprise Development". Will this be
> possible?

Yes, I can change whole category label, and put your libra features in there (which will have a "pointer" to your repository ... so, don't change that :) unless you let me know ... or, update the contribution file. For now, I'd prefer to update the contribution file, so let me know if you need changes.

But, for future reference, the contribution files are contained in a module named 
org.eclipse.indigo.build 
in 
/cvsroot/callisto 

The general process and tools is described in 
http://wiki.eclipse.org/Indigo/Contributing_to_Indigo_Build 

I'll try one run (now running) just adding the libra repo and features. 
Once that goes ok, will look into update category name/label (since that'll end up touching several files, from others ... RAP Tools and PHP).
Comment 4 David Williams CLA 2011-03-15 10:25:07 EDT
Please test to confirm all works as expected. I checked that they "show up" in categories, and the aggregator apparently does "pull" the Libra features just fine, but I have not tested actually installing into an IDE.  

Our WTP M6 repo is ready
http://download.eclipse.org/webtools/repository/indigo

And staging for the common repository has our M6 content in it
http://download.eclipse.org/releases/staging

I suspect we need to work on the later to make it more understandable, or smaller ... but, for M6 that's what we've got.
Comment 5 Kaloyan Raev CLA 2011-03-16 01:04:54 EDT
Daivd, everything looks good to me. Thanks for integrating the libra repository in the indigo common repository. I will make my best to learn this integration mechanism for M7. 

BTW, I found a minor issue in the WTP Indigo M6 repo: bug 340107.