# b3 aggregator - Erfahrungen beim spiegeln von p2 Update Sites



## xhi2018 (27. Jan 2011)

Hallo,

ich versuche auf einem Intranet Server - sozusagen auf einer *Intranet Update Site* - unterschiedliche Plugins für eine Gruppe von Entwicklern bereitzustellen.

Ich will damit zum einen erreichen, dass für die Entwicklung einheitliche Plugins verwendet werden und zum anderen nicht jeder Entwickler die Plugins aus dem Internet zusammensuchen muß. Auch sollen auf dieser *Intranet Update Site* selbs entwickelte Plugins zur Verfügung gestellt werden.

Hierfür versuche ich mich gerade an dem  b3 - aggregator und hab' so meine Probleme/Fragen damit. 

Ich hab mittlerweile die notwendigen externen Update Site zusammengestellt und versuche über "_Verify Repository_" / "_Build Repository_" / "_Clean then Build Repository_" mir diese *Intranet Update Site* zu erstellen. Doch leider kommt es hierbei ständig zu irgendwelchen Problemen wie aktuell diesem hier:

```
Cannot complete the install because one or more required items could not be found.
Software being installed: all.contributed.content.feature.group 1.0.0
Missing requirement: SVNKit 1.3.5 Implementation (Optional) 2.2.2.I20110124-1700 
  (org.polarion.eclipse.team.svn.connector.svnkit16.feature.group 2.2.2.I20110124-1700) 
  requires 'org.eclipse.team.svn.feature.group [0.7.9.I20110101-1700,1.0.0)' 
  but it could not be found
Cannot satisfy dependency:
From: all.contributed.content.feature.group 1.0.0
To: org.polarion.eclipse.team.svn.connector.svnkit16.feature.group 2.2.2.I20100512-1900
```
Wenn ich den Fehler richtig verstehe, dann können Abhängigkeiten von 
	
	
	
	





```
org.eclipse.team.svn.feature.group
```
 zu 
	
	
	
	





```
org.polarion.eclipse.team.svn.connector.svnkit16.feature.group
```
 (oder andersherum) nicht aufgelöst werden... ???:L

Vor ein paar Tagen hatte ich beim selben Versuch einen ähnlichen Fehler allerdings andere Abhängigkeiten.

Wer von Euch nutzt auch noch den  b3 - aggregator und mit welchem Ziel bzw. Erfahrungen. Hat es jemand schon mal geschafft Update Sites mit dem  b3 - aggregator erfolgreich zu spiegeln bzw. zusammenzustellen :question:

Gruß & vielen Dank für Eure Erfahrungen!


----------



## Gonzo17 (27. Jan 2011)

Servus,

ich bin auch grad dabei ihn zu nutzen und stoße, wie du auch, immer wieder auf unerklärliche Probleme.

Also zuerst einmal meinem Vorhaben. Ich versuche aus internen & externen Plug-Ins ein p2 repository zu bauen, aus dem sich dann später Buckminster bedienen kann, um unsere Komponenten und Produkte zu bauen. Ziel soll es sein, Komponenten einer bestimmten Version nicht immer neu bauen zu müssen und externe Komponenten nicht immer aus dem Internet ziehen zu müssen. 

Mein Problem ist nun eigentlich recht trivial. Ich versuche Die Galileo Update Site und die Eclipse Project Update Site für 3.5 auf meinen Rechner zu spiegeln. Das funktioniert nicht, aber ich verstehe nicht warum. Als Grund liefert mir b3 immer, dass mehrere Versionen eines Plug-Ins vorhanden sind und nur eine verwendet werden kann. Eigentlich brauch ich auch nur 3.5.2, trotzdem finde ich keine Möglichkeit ohne größeren Aufwand (zB indem ich alle Features/Bundles angebe, die ich will) die Update Sites zu spiegeln.

Weiterhin stellt sich mir eine Frage, die vielleicht jemand beantworten kann, der sich mit b3 auskennt. Der eigentliche Sinn und Zweck, weshalb ich b3 überhaupt verwende, ist ja um die Zeit des Builds zu minimieren. b3 soll da eigentlich als eine Art Cache fungieren und Plug-Ins ziehen, wenn ich sie brauch, aber wenn das Plug-In schonmal gezogen wurde, solls lokal im Cache liegen. Kann das b3 überhaupt? Wenn b3 das nicht kann, dann versteh ich ehrlich gesagt auch nicht, wofür es b3 jetzt effektiv gibt, denn Update Sites zusammenbauen geht meines Wissens auch anders (gibts da nich was bei ANT?)

Gruß


----------



## Wildcard (27. Jan 2011)

> Mein Problem ist nun eigentlich recht trivial. Ich versuche Die Galileo Update Site und die Eclipse Project Update Site für 3.5 auf meinen Rechner zu spiegeln. Das funktioniert nicht, aber ich verstehe nicht warum. Als Grund liefert mir b3 immer, dass mehrere Versionen eines Plug-Ins vorhanden sind und nur eine verwendet werden kann. Eigentlich brauch ich auch nur 3.5.2, trotzdem finde ich keine Möglichkeit ohne größeren Aufwand (zB indem ich alle Features/Bundles angebe, die ich will) die Update Sites zu spiegeln.


Eclipse Update Sites sind nicht immer self contained und widerspruchsfrei, der b3 aggregator baut meines Wissens aber immer 'korrekte' Seiten die vollständig self contained sind.
Anstatt die komplette Update Site (inklusive aller Versionen) zu spiegeln solltest du vielleicht einfach die geünschten Kategorien auswählen und b3 selektiert per default die latest version jeder IU.


> Weiterhin stellt sich mir eine Frage, die vielleicht jemand beantworten kann, der sich mit b3 auskennt. Der eigentliche Sinn und Zweck, weshalb ich b3 überhaupt verwende, ist ja um die Zeit des Builds zu minimieren. b3 soll da eigentlich als eine Art Cache fungieren und Plug-Ins ziehen, wenn ich sie brauch, aber wenn das Plug-In schonmal gezogen wurde, solls lokal im Cache liegen. Kann das b3 überhaupt? Wenn b3 das nicht kann, dann versteh ich ehrlich gesagt auch nicht, wofür es b3 jetzt effektiv gibt, denn Update Sites zusammenbauen geht meines Wissens auch anders (gibts da nich was bei ANT?)


b3 ist eigentlich der Nachfolger von Buckminster. Zur Zeit ist die b3 Build Engine und DSL allerdings noch nicht released. Das einzige deliverable das schon benutzbar ist, ist der b3 aggregator, der aus dem Buckminster Projekt herausgetrennt wurde und nun als Teil von b3 entwickelt wird.

Der b3 Aggregator ist kein Artifact Repository wie man sie von Maven kennt und kann daher auch nicht als ein Cache fungieren. Die Idee ist ein EMF Modell von p2 Repositories zu haben um auf deklarative Art und Weise IUs von verschiedenen Repositories in ein anderes Repository zu spiegeln.
Dafür gibt es primär 2 Anwendungsfälle:
1. Ein eigenes Firmen Repository aufzubauen über das Entwickler Plugins installieren können
2. Ein Repository zu bauen in dem Dependencies für automatisierte Builds liegen


----------



## Wildcard (27. Jan 2011)

> Wer von Euch nutzt auch noch den b3 - aggregator und mit welchem Ziel bzw. Erfahrungen. Hat es jemand schon mal geschafft Update Sites mit dem b3 - aggregator erfolgreich zu spiegeln bzw. zusammenzustellen


Ja, ich baue regelmäßig Repositories mit dem b3 Aggregator.

Zu deinem konkreten Problem:
Die Polarion Update Site ist AFAIK nicht self-contained, sondern ergänzt nur das main Eclipse Repository um Bundles die aus Lizenzgründen nicht bei Eclipse gehostet sein dürfen.
Versuch mal Helios als weiteres Mapped Repository einzubinden, damit die fehlenden Abhängigkeiten von dort gezogen werden können.


----------



## xhi2018 (28. Jan 2011)

Hallo,


Wildcard hat gesagt.:


> Ja, ich baue regelmäßig Repositories mit dem b3 Aggregator.
> Zu deinem konkreten Problem:
> Die Polarion Update Site ist AFAIK nicht self-contained, sondern ergänzt nur das main Eclipse Repository um Bundles die aus Lizenzgründen nicht bei Eclipse gehostet sein dürfen.
> Versuch mal Helios als weiteres Mapped Repository einzubinden, damit die fehlenden Abhängigkeiten von dort gezogen werden können.


Danke für Deine Antwort 

Die Update Site von Helios hab ich in meiner b3aggr Konfiguration eingebunden - meine ich es zumindest. Allerdings will ich nur Teile der Helios Update Site in _"meiner"_ *Intranet Update Site* -  dazu hab ich die Tage auch schon mal in diesem Forum gepostet.

Heute bekomme ich bei Versuch _"meine"_ *Intranet Update Site* mit dem b3 Aggregator zu erstellen diesen Fehler...
	
	
	
	





```
Build failed! Exception was org.eclipse.core.runtime.CoreException: 
Unable to load repository p2:http://download.eclipse.org/releases/helios/
org.eclipse.core.runtime.CoreException: 
Unable to load repository p2:http://download.eclipse.org/releases/helios/
	at org.eclipse.b3.util.ExceptionUtils.fromMessage(ExceptionUtils.java:53)
	at org.eclipse.b3.util.ExceptionUtils.fromMessage(ExceptionUtils.java:49)
	at org.eclipse.b3.aggregator.engine.Builder.loadAllMappedRepositories(Builder.java:878)
	at org.eclipse.b3.aggregator.engine.Builder.run(Builder.java:603)
	at org.eclipse.b3.aggregator.presentation.AggregatorActionBarContributor$BuildRepoAction$1.run
(AggregatorActionBarContributor.java:267)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
```
Keine Ahnung was heute wieder kaputt ist - jeden Tag andere Fehler/Probleme ;(
Kann das jemand bestätigen oder hat jemand eine Idee/Ahnung oder einen Tipp was der Grund dafür sein könnte ???:L

Gruß und Danke!


----------



## Wildcard (28. Jan 2011)

> Keine Ahnung was heute wieder kaputt ist - jeden Tag andere Fehler/Probleme


Meistens sind es ganz einfach Server Probleme. Die Eclipse Update Sites stehen arg unter Stress.
Meistens hilft eine halbe Stunde was anderes machen und dann neu versuchen


----------



## xhi2018 (31. Jan 2011)

Wildcard hat gesagt.:


> Meistens sind es ganz einfach Server Probleme. Die Eclipse Update Sites stehen arg unter Stress.
> Meistens hilft eine halbe Stunde was anderes machen und dann neu versuchen


 Hallo,

vielen Dank für Deine Hilfe!
Es scheint also mehr oder weniger "normal" zu sein, dass es immer wieder zur Problemen & Fehlermeldungen kommt...?!
Vielleicht kannst Du mir noch einen Tipp. Ich versuche über die *Intranet Update Site* auch Aktualisierungen von Eclipse zu ermöglichen - aber *keine Release Updates* sondern nur Updates innerhalb eines Release. Also Updates von *Eclipse 3.6* auf *Eclipse 3.6.1*, *Eclipse 3.6.2* usw. - usw.
Mit dem b3 aggregator hole ich mir schon einige IU zusammen, aber aufgrund dieses Fehlers nehme ich an, das ich noch das eine oder andere IU benötige.


```
Your original request has been modified.
....
Cannot complete the install because of a conflicting dependency.
  Software being installed: Eclipse Platform 3.6.1.r361_v20100909-9gF78GrkFqw7GrsZnvz0JWNTeb6fue6896L (org.eclipse.platform.feature.group 3.6.1.r361_v20100909-9gF78GrkFqw7GrsZnvz0JWNTeb6fue6896L)
  Software currently installed: Eclipse SDK 3.6.0.I20100608-0911 (org.eclipse.sdk.ide 3.6.0.I20100608-0911)
  Only one of the following can be installed at once: 
    Workbench 3.6.1.M20100826-1330 (org.eclipse.ui.workbench 3.6.1.M20100826-1330)
    Workbench 3.6.0.I20100603-1100 (org.eclipse.ui.workbench 3.6.0.I20100603-1100)
  Cannot satisfy dependency:
    From: Eclipse Platform 3.6.0.v20100602-9gF78GpqFt6trOGhL60z0oEx3fz-JKNwxPY (org.eclipse.platform.feature.group 3.6.0.v20100602-9gF78GpqFt6trOGhL60z0oEx3fz-JKNwxPY)
    To: org.eclipse.rcp.feature.group [3.6.0.v20100519-9OArFKvFtsd7WLUKh-DcYTS]
  Cannot satisfy dependency:
    From: Eclipse Platform 3.6.1.r361_v20100909-9gF78GrkFqw7GrsZnvz0JWNTeb6fue6896L (org.eclipse.platform.feature.group 3.6.1.r361_v20100909-9gF78GrkFqw7GrsZnvz0JWNTeb6fue6896L)
    To: org.eclipse.rcp.feature.group [3.6.1.r361_v20100827-9OArFLdFjY-ThSQXmKvKz0_T]
  Cannot satisfy dependency:
    From: Eclipse RCP 3.6.0.v20100519-9OArFKvFtsd7WLUKh-DcYTS (org.eclipse.rcp.feature.group 3.6.0.v20100519-9OArFKvFtsd7WLUKh-DcYTS)
    To: org.eclipse.ui.workbench [3.6.0.I20100603-1100]
  Cannot satisfy dependency:
    From: Eclipse RCP 3.6.1.r361_v20100827-9OArFLdFjY-ThSQXmKvKz0_T (org.eclipse.rcp.feature.group 3.6.1.r361_v20100827-9OArFLdFjY-ThSQXmKvKz0_T)
    To: org.eclipse.ui.workbench [3.6.1.M20100826-1330]
  Cannot satisfy dependency:
    From: Eclipse Project SDK 3.6.0.v20100427-7Q7m-DPY2dP0s7TnP1vxqsprbrvrHJwHMVz0mb8mhRXmu (org.eclipse.sdk.feature.group 3.6.0.v20100427-7Q7m-DPY2dP0s7TnP1vxqsprbrvrHJwHMVz0mb8mhRXmu)
    To: org.eclipse.platform.feature.group [3.6.0.v20100602-9gF78GpqFt6trOGhL60z0oEx3fz-JKNwxPY]
  Cannot satisfy dependency:
    From: Eclipse SDK 3.6.0.I20100608-0911 (org.eclipse.sdk.ide 3.6.0.I20100608-0911)
    To: org.eclipse.sdk.feature.group [3.6.0.v20100427-7Q7m-DPY2dP0s7TnP1vxqsprbrvrHJwHMVz0mb8mhRXmu]
```

Wenn ich das Update gegen die offizielle Helios Update Site durchführe und das IU 

```
Eclipse SDK	3.6.1.M20100909-0800	org.eclipse.sdk.ide
```
aktualisiere ist die Aktualisierung von Eclipse 3.6 auf Eclipse 3.6.1 ohne Fehler/Probleme möglich.

Nun meine Frage/Problem:
Ich hab es bisher noch nicht geschafft, welche IU ich in die b3 aggregator Konfiguration eintragen muß, damit ich über meine *Intranet Update Site* eine Aktualisierung von Eclipse durchführen kann.

Gruß & herzlichen Dank für jeden Tipp!!


----------



## Gonzo17 (31. Jan 2011)

So wie ich das verstehe kannst du innerhalb einer Update Site, die der b3 aggregator erstellt, nur eine Version einer IU hinterlegen. Das liegt wohl daran, dass der b3 aggregator Update Sites bauen will, die auf jeden Fall verwendet werden können, es müssen also alle Abhängigkeiten eindeutig aufgelöst werden. (wenn ich das alles richtig kapiert habe)


----------



## Wildcard (31. Jan 2011)

Was spricht denn dagegen die Update Site einfach neu zu bauen wenn ein neues Service Release kommt? Durchaus möglich das man den Aggregator auch verwenden kann um mehr als eine Version zu spiegeln, allerdings habe ich ihn nie in dieser Form verwendet. Für diesen Fall würde ich mich an die b3 Newsgroup wenden.


----------



## xhi2018 (1. Feb 2011)

Hallo,


Gonzo17 hat gesagt.:


> So wie ich das verstehe kannst du innerhalb einer Update Site, die der b3 aggregator erstellt, nur eine Version einer IU hinterlegen. ...


mir würde es ja reichen, wenn auf meiner Intranet Update Site nur eine - die aktuellste - Version einer IU liegen würde.


Wildcard hat gesagt.:


> Was spricht denn dagegen die Update Site einfach neu zu bauen wenn ein neues Service Release kommt?


Dagegen spricht überhaupt nichts - wenn es funktionieren würde, dann hätte ich damit kein Problem.


Wildcard hat gesagt.:


> Durchaus möglich das man den Aggregator auch verwenden kann um mehr als eine Version zu spiegeln, ....


Ich möchte gar nicht mehrere Versionen einer IU auf meiner *Intranet Update Site* zur Verfügung stellen. Vielleicht hab ich mich etwas falsch oder unklar ausgedrückt. Was ich möchte ist folgendes:

Ich installiere auf die Rechner der Entwickler eine neue Eclipse Version. Sagen wir mal das wäre Eclipse 3.6 (Helios). Irgendwann einmal wird ein Update - Service Release - von Eclipse veröffentlicht. Dieses Service Release ist dann die Version 3.6.1 und irgendwann später dann ein weiteres Service Release mit der Version 3.6.2 usw. usw. Die Aktualisierung auf diese Service Release möchte ich über meine *Intranet Update Site* zur Verfügung stellen!
Neue Eclipse Versionen 3.7 oder 4.0 installiere ich dann wieder als Vollversion auf die Rechner der Entwickler (also nicht über die Update Site) wobei ich dabei die alte Vorversion von den Rechner lösche.

Bei genau diesem Fall - ich habe die Eclipse Version 3.6(.0) installiert - und möchte nun die Aktualisierung auf das Service Release 3.6.1 - über meine per b3 aggregator zusammengestellte *Intranet Update Site* - durchzuführen bekomme ich den Fehler von oben. Anscheinend kann wegen einer/mehreren fehlenden IU auf meiner *Intranet Update Site* eine Abhängigkeit nicht aufgelöst werden. So verstehe ich die Fehlermeldung. Leider kann ich nicht erkennen, welche IU ich dazu noch mit dem b3 aggregator in meine *Intranet Update Site* aufnehmen müsste. Vielleicht hat ja jemand eine Idee oder könnte mir einen Tipp geben... :bahnhof:
Diese IU 
	
	
	
	





```
Eclipse SDK	3.6.1.M20100909-0800	org.eclipse.sdk.ide
```
kann ich leider nicht finden...???:L

Ich hatte gehofft, dass ich solche Service Release Updates - wie beschrieben - über den b3 aggregator auf meine *Intranet Update Site* hinterlegen könnte, oder geht sowas generell nicht und ich versteh den b3 aggregator nur falsch:question:

Gruß & vielen Dank für Eure Hilfe:exclaim:


----------



## Wildcard (1. Feb 2011)

Ja, das geht mit dem Aggregator.
Wenn du zB nur das Eclipse SDK + allen Abhängikeiten spiegeln möchtest, dann leg ein neues Product Mapping (ich habe die genau Benamsung gerade nicht im Kopf) an und wähle die IU aus.
Es gibt verschiedene Arten von Mappings, IUs, Bundles, Features, Products, Categories,...


----------

