Please open a bug for this.
The issue seems to come from:
The _expression_ in the repository is *not* a generic requirement. It is the internal representation of a *standard* "namespace; name; version-range". Both standard and generic requirements have similar internal representations with a complex match expressions like this. The p2 read/write code always had this hack to guess if the requirement it is about to write is standard or general. The guess is inherently unreliable. To that hack I added one more guess for a properties match requirement.
I am not sure how but the guessing code for standard requirements failed in this instance.
P2 would have been much better off if it just wrote it's requirements in their normal _expression_ language form. Instead it first introduces a very general _expression_ language that is opaque to external readers (because it is so general) and then tries to hack itself by guessing what kind of _expression_ this is.
My impression was that the latest design idea was to not serialize themore general "match" requirements in a form that older runtimes wouldeven read them, so they would not be represented as anRequiredCapability at all and not be serialized in a form that olderruntimes would even loaded, so would be invisible in order runtimes.But perhaps this repo was produced with an M4 version of p2 and notthe current version that's in the 4.8IBuilds.On 29.01.2018 08:37, David Williams wrote:On 01/28/2018 12:48 PM, Stephan Herrmann wrote:Result :Unable to load repositoryp2:file:///home/data/httpd/download.eclipse.org/objectteams/updates/ot2.7/stagingWhile I don't see the actual root error, this appears to be the casewere the aggregator cannot handle current format of p2 meta data.(Any chance to access any details of this failure?)Did you try the aggregator editor?I can see some detail in the console log, when using the aggregator editor.This is with Oxygen.2 and aggregator 4.7 installed.The log says "can not load repository" (as does pop up dialog), butthen the log continues with!MESSAGE Unable to load repositoryhttp://download.eclipse.org/objectteams/updates/ot2.7/staging!STACK 0java.lang.IllegalArgumentException
And, from looking at the code, there is something about (p2's)
"getVersion" that p2 considers invalid -- that is, while processing
your version in your required capability data. Only in the Oxygen
stream, that I see.
In my dev. environment where Photon M5 is installed, and the
aggregator built from master branch, (i.e. installed from
then there is no exception, and no problem. But, I do not know if it
produces what you intend.
In the Oxygen branch, I put in some debug statements, ran locally, and
it is chocking on the capabilities involved with
org.eclipse.objectteams.otequinox.branding, perhaps this part:
<requiredProperties namespace='osgi.ee' match='(&(osgi.ee=JavaSE)(version=1.7))'/>
<required namespace='osgi.bundle' name='org.eclipse.ui' range='[3.7.0,4.0.0)'/>
<required namespace='osgi.bundle' name='org.eclipse.ui.workbench' range='[3.7.0,4.0.0)'/>
<required namespace='osgi.bundle' name='org.eclipse.objectteams.otequinox' range='[2.3.0,3.0.0)'/>
<required match='providedCapabilities.exists(cap | cap.name == $0 && cap.namespace == $1 && cap.version ~= $2)' matchParameters='['org.eclipse.objectteams.otequinox.branding', 'org.eclipse.equinox.p2.iu', range('[2.5.0,3.0.0)')]' min='0' max='0'/>
<required namespace='osgi.bundle' name='org.eclipse.core.runtime' range='[3.7.0,4.0.0)'/>
So, how many others are going to have *that* sort of match statement
and that sort of problem? :)
IMHO, at least for M5 and Oxygen.3, the Oxygen update branch of Sim
Release should still be aggregated with a base of Oxygen.2 and
whereas the Photon branch of Sim Release should be aggregated with
Photon M5 and ...cbi/updates/aggregator/ide/4.8/
Can always revert back to Oxygen version if something goes terrible wrong.
But, I would be the last to have any true insight into current issues.
I have not been following all the detail requirements of why
"capabilities" is being changed in the way it has been so do not know
the use cases or motivations for the change.
I assume no one needs a change for Oxygen updates.