Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » P2 » Multipe URLs in p2.repo property of runDirector task
Multipe URLs in p2.repo property of runDirector task [message #561673] Fri, 09 July 2010 17:15 Go to next message
Spencer Uresk is currently offline Spencer Uresk
Messages: 12
Registered: July 2009
Junior Member
Apologies in advance for reposting this, but I think this is actually more relevant to P2 and I wasn't getting any response in the PDE forum.

I have a product build that worked fine in Galileo. In the pre.archive target, I would install our plugins like this:

<ant antfile="${genericTargets}" target="runDirector" inheritAll="true">
<property name="p2.repo" value="file://${base}/../updatesite/target/site, http://dev/nexus/content/groups/helios"/>
<property name="p2.director.iu" value="org.stack.ide.common.feature.feature.group"/>
<property name="p2.director.installPath" value="${eclipse.base}"/>
</ant>

However, in Helios, it looks like it is trying to replace all double slashes with a single slash, including the double slash after http:. The error I get when running my build is:

[java] [p2.director] Unable to read repository at http:/dev/nexus/content/groups/helios/artifacts.xml.

[java] [p2.director] Unable to read repository at http:/dev/nexus/content/groups/helios/content.xml.

You'll note the single slash after http:. This is causing our builds to not work.

After digging around a little, I think I've made a little bit of progress in finding the root cause here:

In org.eclipse.equinox.p2.director.app.ant.DirectorTask, the artifact and metadata repository strings are turned into a URI, then back into a string. Then when it calls DirectorApp.run, those strings are split (on ,) and turned back into URIs again.

It seems as though DirectorApplication supports multiple repos just fine, but DirectorTask does not - creating the URI the first time is what is causing http:// to become http:/.

The question is, how was this working in the first place? That behavior doesn't seem to have changed since 3.5.2. Further, should it be acceptable to pass in a comma-separated list of p2 repos?

Thanks for any feedback.

- Spencer
Re: Multipe URLs in p2.repo property of runDirector task [message #561694 is a reply to message #561673] Mon, 12 July 2010 11:48 Go to previous message
Andrew Niefer is currently offline Andrew Niefer
Messages: 990
Registered: July 2009
Senior Member
Can you please raise a bug on p2 for this. You are correct that the ant
task does not work well with lists of repositories.

In 3.5.2 there was no <p2.director> ant task, the genericTargets/runDirector
was execing a new java instance and running the application.

One possible workaround would be to first create a local composite
repository that pointed to the two repos you wanted to use, and then pass
the composite to the director task.

<p2.composite.repository location="file:/${buildDirectory}/localComposite" >
<add>
<repository location="file://${base}/../updatesite/target/site"/>
<repository location="http://dev/nexus/content/groups/helios" />
</add>
</p2.composite.repository>


-Andrew
Spencer Uresk wrote:

> Apologies in advance for reposting this, but I think this is actually more
> relevant to P2 and I wasn't getting any response in the PDE forum.
>
> I have a product build that worked fine in Galileo. In the pre.archive
> target, I would install our plugins like this:
>
> <ant antfile="${genericTargets}" target="runDirector" inheritAll="true">
> <property name="p2.repo" value="file://${base}/../updatesite/target/site,
> http://dev/nexus/content/groups/helios"/> <property name="p2.director.iu"
> value="org.stack.ide.common.feature.feature.group"/> <property
> name="p2.director.installPath" value="${eclipse.base}"/> </ant>
>
> However, in Helios, it looks like it is trying to replace all double
> slashes with a single slash, including the double slash after http:. The
> error I get when running my build is:
>
> Unable to read repository at
> [http:/dev/nexus/content/groups/helios/artifacts.xml.
>
> [p2.director] Unable to read repository at
> [http:/dev/nexus/content/groups/helios/content.xml.
>
> You'll note the single slash after http:. This is causing our builds to
> not work.
>
> After digging around a little, I think I've made a little bit of progress
> in finding the root cause here:
>
> In org.eclipse.equinox.p2.director.app.ant.DirectorTask, the artifact and
> metadata repository strings are turned into a URI, then back into a
> string. Then when it calls DirectorApp.run, those strings are split (on ,)
> and turned back into URIs again.
>
> It seems as though DirectorApplication supports multiple repos just fine,
> but DirectorTask does not - creating the URI the first time is what is
> causing http:// to become http:/.
>
> The question is, how was this working in the first place? That behavior
> doesn't seem to have changed since 3.5.2. Further, should it be acceptable
> to pass in a comma-separated list of p2 repos?
>
> Thanks for any feedback.
>
> - Spencer
Previous Topic:Huge export size of RCP p2 enabled product
Next Topic:Multipe URLs in p2.repo property of runDirector task
Goto Forum:
  


Current Time: Sat Aug 23 15:17:39 EDT 2014

Powered by FUDForum. Page generated in 0.01727 seconds