# Eclipse Update Site teilweise für lokales Intranet spiegeln



## xhi2018 (25. Mai 2009)

Hallo,

ich hoffe dass ich mit meiner Frage nicht im total falschen Forum gelandet bin - falls ja, dann bitte ich schon mal um Entschuldigung :autsch:

Ich will die zwei offiziellen Eclipse 3.5 Galileo Update Seites
http://download.eclipse.org/eclipse/updates/3.5
Galileo downloads
für ein Intranet spiegeln. Der "alte" Mechanismus über eine *site.xml* scheint nicht mehr zu funktionieren, da mit der neuen Eclipse Version der Eclipse Update Manager auf p2 umgestellt wurde. Ich bin beim Suchen auf das Tool Equinox p2 Repository Mirroring gestoßen. Ich möchte aber nicht die kompletten Update Sites für mein Intranet spiegeln, sondern nur bestimmte Plugins (z.B. WebStandardTools und Subversive und ggf. noch ein paar andere).

Leider finde ich keinen Hinweis :rtfm: dazu wie ich sowas machen kann ;(
Hat jemand mit dem Equinox p2 Repository Mirroring schon irgendwelche Erfahrungen gemacht und könnte mir dazu ein paar Tips geben?

vielen Dank im Voraus


----------



## Wildcard (25. Mai 2009)

Müsste mit der 3.5er Version von Buckminster funktionieren. Du machst ein Update Site Projekt in das du alle Features einträgst die du haben möchtest, trägst die offizielle Update Site in die Buckminster Resource Map ein und lässt es dir zusammen bauen.


----------



## xhi2018 (26. Mai 2009)

Hallo Wildcard,

vielen Dank für Deine Antwort 

Wenn ich das richtig vertehe, dann ist Buckminster wohl ein Plugin das ich in Eclipse installieren muß. In mein Eclipse 3.5 RC1 Galileo konnte ich es mit diesem Fehler nicht installieren:
	
	
	
	





```
!ENTRY org.eclipse.equinox.p2.ui 4 0 2009-05-26 11:10:15.957
!MESSAGE Operation details
!SUBENTRY 1 org.eclipse.equinox.p2.director 4 1 2009-05-26 11:10:15.957
!MESSAGE Cannot complete the install because one or more required items could not 
be found.
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2009-05-26 11:10:15.957
!MESSAGE Software being installed: Buckminster - Core 1.1.340.r10097 
(org.eclipse.buckminster.core.feature.feature.group 1.1.340.r10097)
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 0 2009-05-26 11:10:15.957
!MESSAGE Missing requirement: Buckminster UI Plug-in 1.0.340.r10097 
(org.eclipse.buckminster.ui 1.0.340.r10097) requires 'bundle org.eclipse.core.runtime 
[3.4.0,3.5.0)' but it could not be found
!SUBENTRY 2 org.eclipse.equinox.p2.director 4 1 2009-05-26 11:10:15.957
!MESSAGE Cannot satisfy dependency:
!SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2009-05-26 11:10:15.957
!MESSAGE From: Buckminster - Core 1.1.340.r10097 
(org.eclipse.buckminster.core.feature.feature.group 1.1.340.r10097)
!SUBENTRY 3 org.eclipse.equinox.p2.director 4 0 2009-05-26 11:10:15.957
!MESSAGE To: org.eclipse.buckminster.ui [1.0.340.r10097]
...
```

An anderer Stelle hab' ich auf meine Frage einen Hinweis auf die Equinox/p2/Ant_Tasks bekommen. Ich versuch' mich mal mit diesen p2 ANT-Tasks aber leider läuft es aktuell damit auch noch nicht... ???:L 
.... noch ist nicht aller Tage abend! 

Nochmals vielen Dank für Deine Antwort! :toll:


----------



## Wildcard (26. Mai 2009)

Wie hast du das denn installiert?


----------



## xhi2018 (9. Jun 2009)

Hallo Wildcard,

danke für Deine Antwort & sorry für meine späte Antwort/Reaktion. 



Wildcard hat gesagt.:


> Wie hast du das denn installiert?


Leider verstehe ich Deine Frage nicht ...???:L Was meinst Du damit wie ich _*das denn installiert *_habe? 
Bei Eclipse hab ich das Zip Archiv des ReleaseCandidate 2 von www.eclipse.org (genauen Link hab ich nicht mehr) kopiert, dann das Archiv entpackt - Eclipse gestartet und versucht über die UpdateSite das - so wie ich mir denke - Buckminster-Plugin zu installieren. 

Bei der Installation ist dann der obige Fehler aufgetreten. Seit dem 26.05. hab ich das aber nicht mehr versucht, da ich mich an diesen p2-Ant-Task mehr oder weniger erfolgreich versucht hab ... 

Zwar kann ich mit den p2-Ant Tasks jetzt InstallUnits (IU) / Plugins /Features lokal kopieren und auf einer Intranet Seite bereit stellen, doch aktuell hab ich noch zwei Probleme:

- woher weis ich welche IU ich brauche um z.B. alle IU des Eclipse Classic Pakets in meinem Intranet zu spiegeln?
- ich hab die "Default" Update Sites von Eclipse aus der Eclipse Konfiguration entfernt. Ziel soll sein, das jeder der dieses Paket installiert hat die Eclipse Installation nur noch gegen die Intranet Update Site aktualisieren kann.
Doch wenn ich ein Update von Eclipse gegen meine teilweise lokal gespiegelte Intranet Seite durchführe, dann werden mir die Default Update Sites von Eclipse wieder aktiv eingetragen... 

Hast Du damit mehr Erfahrung - leider finde ich nichts was mir weiterhilf oder ich suche einfach nur falsch... ;(

Bin für jeden Tipp dankbar!


----------



## Wildcard (9. Jun 2009)

Möglich das es mit p2 einen tollen Trick mit Pools gibt, oder so, aber ich würde es so machen:
Stell dir ein Eclipse genau so zusammen wie du es haben möchtest (+ Buckminster).
Mach ein neues Feature Project. Im Feature Project gibst du dann bei included PlugIns *alle* an. 
Dann ein Rechtsklick auf das Feature Project -> Buckminster -> invoke action -> p2.site
Ferig ist deine Update Site.
Mit der p2 director Application kannst du dann daraus ein Eclipse Product erstellen und es sollte dann tatsächlich nur deine Update Site kennen.


----------



## xhi2018 (10. Jun 2009)

Hallo,



Wildcard hat gesagt.:


> Möglich das es mit p2 einen tollen Trick mit Pools gibt, oder so,


 ja - irgendwie scheint es da was zu geben, doch leider finde ich keine funktionierende Doku darüber und das was es als Beispiele gibt läuft nicht anständig ... very painfull ... 


Wildcard hat gesagt.:


> aber ich würde es so machen:
> Stell dir ein Eclipse genau so zusammen wie du es haben möchtest (+ Buckminster).
> Mach ein neues Feature Project. Im Feature Project gibst du dann bei included PlugIns *alle* an.
> Dann ein Rechtsklick auf das Feature Project -> Buckminster -> invoke action -> p2.site
> ...



Ich hab mir nochmal das Buckminster Plugin installiert - nun ging es problemlos über die Galileo Update Site ???:L na ja - vielleicht lag es ja an der Vorversion RC2 ???:L Das mit Deiner vorgeschlagenen Vorgehensweise schaut nun auch gut aus  Ich werd mir das mal genauer ansehen.

Dabei hab ich mir heute mal das Buckminster Plugin etwas genauer angeschaut. Kann es sein, dass dieses Hello XML World Example Buckminster nicht funktioniert? 
Hört sich sehr interessant an, doch leider bekomme ich das für mich nicht zum laufen mit den vielen XML (CQUERY / RMAP / CXPEC usw.) Dateien ... Weist Du ob es dazu irgendwas funktionierendes gibt?

Gruß und Danke nochmals für Deine Hilfe und Tipps!


----------



## Wildcard (10. Jun 2009)

Die Wiki Seite bezieht sich noch auf das aktuelle Release, also prä 3.5. Dir fehlt vermutlich der Subversion Connector. 
Teile das Hello XML World Examples werden aus SVN Repositories angezogen und dafür braucht man natürlich SVN support. Für deinen aktuellen Anwendungsfall bräuchtest du die nicht.
Wie auch immer, um das Example zum Laufen zu bekommen installiere dir erstmal das Subversive Feature von der Galileo Update Site und anschließend die SVN Conntectoren von
Subversive SVN connectors update-site
Danach einfach open a component query -> resolve and materialize (oder resolve to wizard) und das Example schnurrt wie ein Kätzchen, habe es gerade mit einem frischen RC4 versucht.

Edit:
Im übrigen, für meinen Vorschlag kommst du mit keiner dieser Dateien in Kontakt, das ist ganz einfach. Wirklich nur ein Feature anlegen, gewünschte Plugins und Features hinzufügen, Rechtklick -> Buckminster -> invoke Action -> p2.site
Die Resolver Map und die Queries brauchst du erst dann wenn dir der Single Source Ansatz von Buckminster so gut gefällt wie mir und du es ins Build System einbinden willst, oder zum einrichten des Workspaces für Entwicklungsteam (wie in Hello XML World).


----------



## xhi2018 (11. Jun 2009)

Hallo,


Wildcard hat gesagt.:


> Die Wiki Seite bezieht sich noch auf das aktuelle Release, also prä 3.5. Dir fehlt vermutlich der Subversion Connector.
> ....
> Danach einfach open a component query -> resolve and materialize (oder resolve to wizard) und das Example schnurrt wie ein Kätzchen, habe es gerade mit einem frischen RC4 versucht.


Das Subversive Plugin sowie die Connectoren hab ich schon installiert - auch die  Buckminster SVN Unterstützung...
Dann ist das Beispiel also schon funktionsfähig - hm ... liegt der Fehler wohl bei mir ...


Wildcard hat gesagt.:


> Edit:
> Im übrigen, für meinen Vorschlag kommst du mit keiner dieser Dateien in Kontakt, das ist ganz einfach. Wirklich nur ein Feature anlegen, gewünschte Plugins und Features hinzufügen, Rechtklick -> Buckminster -> invoke Action -> p2.site
> Die Resolver Map und die Queries brauchst du erst dann wenn dir der Single Source Ansatz von Buckminster so gut gefällt wie mir und du es ins Build System einbinden willst, oder zum einrichten des Workspaces für Entwicklungsteam (wie in Hello XML World).


Ja - so hatte ich das auch verstanden - aber danke nochmal für's klarstellen! :applaus:

Der Single Source Ansatz hört sich sehr interessant an - gerade weil ich was suche wie möglichst einfach Workspace einzurichten sind. 
Ich hab hier zwei Sachen zusammengemischt die nicht zusammengehören - sorry


----------



## Wildcard (11. Jun 2009)

> Das Subversive Plugin sowie die Connectoren hab ich schon installiert - auch die Buckminster SVN Unterstützung...
> Dann ist das Beispiel also schon funktionsfähig - hm ... liegt der Fehler wohl bei mir ...


Du wirst doch irgendeine Form der Rückmeldung bekommen? Dann kann ich vielleicht mehr sagen.


> Der Single Source Ansatz hört sich sehr interessant an - gerade weil ich was suche wie möglichst einfach Workspace einzurichten sind.
> Ich hab hier zwei Sachen zusammengemischt die nicht zusammengehören - sorry


Buckminster hat fünf Hauptaspekte:
Unterschiedliche Quellen auf einen Nenner zu bringen (Dateisystem, CVS, SVN, Update Sites, Maven Repositores,...)
Unterschiedliche Komponenten auf einen Nenner zu bringen (OSGi Bundles, Eclipse Features, Maven Artifacts, 'normale' Projekte,...)
Unterschiedliche Buildsysteme auf einen Nenner zu bringen (Maven, Eclipse Builder, PDE Builder, ANT,...)
Einen Workspace auf möglichst einfache Art (normal 2 Klicks) zu materialisieren so das er sofort funktionsfähig ist
Komponenten zu bauen (insbesondere auch Eclipse Artefakte wie Update Sites, oder Target Platforms)

In deinem Fall stehen die Chancen also gut das du mit einem Tool deine beiden Anforderungen erfüllen kannst, denn noch einfacher als mit Buckminster lässt sich nichtmal mit Maven + m2Eclipse ein Workspace materialisieren.


----------



## xhi2018 (12. Jun 2009)

Hallo,



Wildcard hat gesagt.:


> ...
> Stell dir ein Eclipse genau so zusammen wie du es haben möchtest (+ Buckminster).
> Mach ein neues Feature Project. Im Feature Project gibst du dann bei included PlugIns *alle* an.
> Dann ein Rechtsklick auf das Feature Project -> Buckminster -> invoke action -> p2.site
> Ferig ist deine Update Site.


Ich hab das heute noch ein wenig verfeinert - ich wollte unbedingt eine Gruppierung der "Features" und/oder "Install Units IU" nach Kategorien haben - und mit dieser Doku schaut das schon sehr danach aus wie ich es haben will 
Buckminster Beispiel für "Building an Update Site using the 3.5 release :toll:


Wildcard hat gesagt.:


> Mit der p2 director Application kannst du dann daraus ein Eclipse Product erstellen und es sollte dann tatsächlich nur deine Update Site kennen.


Verstehe ich das richtig :question:

Ich hab eine Eclipse Installation und kann dann mit dieser p2 director Application nochmals eine separate, von Grund auf neue Eclipse Installation von (m)einer Update Site installieren? Ich starte also Eclipse über die Kommandozeile mit ein "paar Parametern" so wie hier "Installing a complete product" beschrieben. Ich hab's versucht, doch leider funktioniert es bei mir nicht. :noe: Das einzige was passiert ist, dass im Verzeichnis was ich über die Parameter "destination" oder "bundlepool" angegeben hab ein Unterverzeichnis "p2" angelegt wird - mehr nicht ... ???:L

Mach ich hier was falsch :question: - oder versteh' ich eventl. was falsch :question:

schonmal herzlichen Dank für Deine Hilfe - ist echt super :toll:


----------



## xhi2018 (12. Jun 2009)

Wildcard hat gesagt.:


> Buckminster hat fünf Hauptaspekte:
> Unterschiedliche Quellen auf einen Nenner zu bringen (Dateisystem, CVS, SVN, Update Sites, Maven Repositores,...)
> Unterschiedliche Komponenten auf einen Nenner zu bringen (OSGi Bundles, Eclipse Features, Maven Artifacts, 'normale' Projekte,...)
> Unterschiedliche Buildsysteme auf einen Nenner zu bringen (Maven, Eclipse Builder, PDE Builder, ANT,...)
> ...



Hört sich tatsächlich sehr vielversprechend für mich an - passt aber nicht mehr zu dem Thema dieser Diskussion. 
Ich werd' mich noch ein wenig daran versuchen :rtfm: und mich sicher wieder melden - die Fehler / Probleme die ich aktuell hab, kann ich mir nicht erklären. :bahnhof:
Bin ich denn in diesem Unterforum damit richtig?


----------



## Wildcard (12. Jun 2009)

xhi2018 hat gesagt.:


> Ich hab das heute noch ein wenig verfeinert - ich wollte unbedingt eine Gruppierung der "Features" und/oder "Install Units IU" nach Kategorien haben - und mit dieser Doku schaut das schon sehr danach aus wie ich es haben will
> Buckminster Beispiel für "Building an Update Site using the 3.5 release :toll:


Ja, genau so sollte das funktionieren, ich sehe du findest dich zurecht 
Übrigens, falls du rein zufällig Hudson als CI Server verwendest, ich bin gerade dabei ein Hudson Plugin für Buckminster Integration zu releasen um solche Dinge komfortabler in die Build Umgebung eingliedern zu können.
Buckminster PlugIn - hudson - Hudson Wiki



xhi2018 hat gesagt.:


> Verstehe ich das richtig :question:
> 
> Ich hab eine Eclipse Installation und kann dann mit dieser p2 director Application nochmals eine separate, von Grund auf neue Eclipse Installation von (m)einer Update Site installieren? Ich starte also Eclipse über die Kommandozeile mit ein "paar Parametern" so wie hier "Installing a complete product" beschrieben. Ich hab's versucht, doch leider funktioniert es bei mir nicht. :noe: Das einzige was passiert ist, dass im Verzeichnis was ich über die Parameter "destination" oder "bundlepool" angegeben hab ein Unterverzeichnis "p2" angelegt wird - mehr nicht ... ???:L


Das siehst du AFAIK schon richtig und ich meine das hat bei mir auch schon funktioniert. Kannst du mal posten wie du das aufgerufen hast? Eventuell das falsche Profile, oder nicht alle PlugIns vorhanden nach denen das Profile verlangt? Ich habe selbst leider auch noch nicht viel mit dem p2 Director, den Profiles und den Bundle Pools gemacht und bin ebenfalls gerade dabei mich durchzuwursteln... Die Doku ist leider noch sehr mau

EDIT: im übrigen lässt sich der p2 Director wohl auch direkt mit Buckminster steuern, aber ich konnte die entsprechenden Commands bisher noch nicht finden (vielleicht sind sie auch noch gar nicht ausgeliefert), aber das final Release von 3.5 ist ja in 2 Wochen, dann passt hoffentlich alles.
Sollte ich in der Zwischenzeit herausfinden wie man mit Buckminster Galileo das fertige Produkt aus der Site baut, sag ich bescheid.


----------



## Gonzo17 (12. Jun 2009)

Hallo, 
ich hab mein Problem hier schon geschildert, wurde von Wildcard dann auf diesen Thread hier verwiesen und wollte mal schauen, ob das für mich relevant ist. Hab Buckminster installiert und wollte wie oben beschrieben nachbauen:



Wildcard hat gesagt.:


> Stell dir ein Eclipse genau so zusammen wie du es haben möchtest (+ Buckminster).
> Mach ein neues Feature Project. Im Feature Project gibst du dann bei included PlugIns *alle* an.
> Dann ein Rechtsklick auf das Feature Project -> Buckminster -> invoke action -> p2.site
> Ferig ist deine Update Site.



Jetzt hab ich in meinem Feature Project alle Plug-Ins hinzugefügt und wollte "Invoke action" machen, aber irgendwie versteh ich nicht genau, was ich da tun soll. Außer "Ok" und "Cancel" steht da nur der Button "Browse" und den kann ich nur verwenden, um .properties-Dateien zu suchen. Wo ist mein Fehler?


----------



## Wildcard (12. Jun 2009)

Du musst nur die Action auswählen (p2.site) und ok klicken, das Resultat erscheint dann in ${buckminster.ouput.root} (per Default ist das $TMP

EDIT: oder wird dir gar keine Action angeboten? In dem Fall würde ich sagen das Buckminster keine Metadaten aus dem Projekt ableiten kann. Ist das auch wirklich ein Feature Projekt?


----------



## Gonzo17 (12. Jun 2009)

Also irgendwie steh ich total aufm Schlauch. ???:L

Ein Feature Project ist das schon, aber woher soll denn p2.site kommen? Das hab ich da oben auch nich rauslesen können. Was vielleicht aber das Problem sein könnte ist mein Eclipse, ich habs nämlich grad mit 3.4.2 versucht. Komischerweise krieg ich Buckminster bei Eclipse 3.5 nicht installiert. 



> Cannot complete the install because of a conflicting dependency.
> Software being installed: Buckminster - Core 1.1.340.r10097 (org.eclipse.buckminster.core.feature.feature.group 1.1.340.r10097)
> Software currently installed: Eclipse SDK 3.5.0.I20090528-2000 (org.eclipse.sdk.ide 3.5.0.I20090528-2000)
> Only one of the following can be installed at once:
> ...



Danke für deine Mühe!


----------



## Wildcard (12. Jun 2009)

Du müsstest dir schon den neuen 3.5RC runterladen und von dort über die Galileo Update Site installieren.


----------



## Gonzo17 (15. Jun 2009)

Hi, 

ja also am Freitag hab ich irgendwann nur noch Quatsch fabriziert. Also hab jetzt Eclipse Galileo und auch Buckminster drauf. Hab ein Feature Project erstellt, ein paar Plug-Ins eingetragen und dann site.p2 ausgewählt. Soweit kein Problem. Hab dann in den Ordner geschaut und das, was da entstanden ist, hat mich so ein wenig irritiert.
Im Ordner "buckminster" ist erstmal ein Ordner "build" und zwei leere Ordner, die wohl zu den Plug-Ins gehören. Im Ordner "build" sind dann 4 Ordner. 3 Ordner gehören da wieder zu den Plug-Ins und enthalten eine .jar-Datei, der vierte Ordner ist der Ordner von meinem Test-Feature (heisst hier passenderweise "test_1.0.0-eclipse.feature"). Dadrin befinden sich jetzt die Ordner "temp", "site" und "site.p2". Ich kann damit jetzt aber nicht wirklich was anfangen. In "temp" ist die "feature.xml", in "site" ein Ordner "plugins", der alle selektierten Plug-Ins beinhaltet, und in "site.p2" ebenfalls ein Ordner "plugins" mit allen selektierten Plug-Ins sowie die beiden Dateien "artifacts.jar" und "content.jar". Am ehesten kann ich da jetzt noch was mit dem Inhalt von Ordner "site.p2" anfangen, weil das dem Aufbau einer Update Site ähnelt, wie ich sie kenne.
Tja nun bin ich etwas ratlos, weil ich nicht weiss, was ich damit anfangen soll. Gebe ich in Eclipse Galileo den Pfad zum Ordner "site.p2" im Update Manager an, wird das von diesem angenommen (auch "Test Connection" funktioniert), aber er bietet keine Items zum Download an. Genauso mit dem Ordner "site". Bei jedem anderen Versuch, irgendeinen der Pfade zu verwenden, scheiterte schon die "Test Connection". Fehlt mir noch irgendwas oder tue ich etwas Grundsätzliches falsch?

Um vielleicht auch grundsätzliche Verständnisfragen zu klären. Ich möchte ja eine Update Site erstellen, die Plug-Ins anderer Update Sites auflistet und praktischerweise auch die Informationen (zB Version) direkt von dort holt. Und nicht, wie es ja bei einer eigenen Update Site sonst der Fall ist, die Plug-Ins aus dem Ordner "plugins" zieht. Leistet das diese p2 site überhaupt? Der Ordner "plugins" ist nämlich immer noch da und ich frage mich, ob das nicht im Endeffekt genau das Gleiche ist wie eine Update Site von einem Update Site Project.


----------



## xhi2018 (15. Jun 2009)

Gonzo17 hat gesagt.:


> ...
> Um vielleicht auch grundsätzliche Verständnisfragen zu klären. Ich möchte ja eine Update Site erstellen, die Plug-Ins anderer Update Sites auflistet und praktischerweise auch die Informationen (zB Version) direkt von dort holt. Und nicht, wie es ja bei einer eigenen Update Site sonst der Fall ist, die Plug-Ins aus dem Ordner "plugins" zieht. Leistet das diese p2 site überhaupt? Der Ordner "plugins" ist nämlich immer noch da und ich frage mich, ob das nicht im Endeffekt genau das Gleiche ist wie eine Update Site von einem Update Site Project.


Hm... soweit ich das "Buckminster" Plugin verstanden habe ist dass was Du willst mit diesem Weg nicht möglich. Das "Buckminster" Plugin kopiert wohl nur die ausgewählten Plugins der Eclipse Installation in eine p2 UpdateSite gerechte Form. 
Ob Dein Wunsch jetzt generell und überhaupt von dem neuen p2 Mechanismus in Eclipse 3.5 Galileo unterstützt wird kann ich Dir leider nicht sagen. :bahnhof:

Ich mach das bei mir zukünftig wohl so, dass ich mir eine Eclipse Installation mit all den möglich Plugins installiere und zusätzlich dann noch das "Buckminster" Plugin. Anhand von dieser Installation gehe ich dann wie oben beschrieben vor und erstell mir meine Update Site für das Intranet (ohne "Buckminster" Plugin).

Natürlich hab ich jetzt das Problem, dass ich neue Versionen der Plugins bzw. Updates von Eclipse nicht automatisch mitbekomme, das ist glaub ich der Punkt der Dir wichtig ist. Deshalb werd ich wohl regelmäßig, manuell&händisch meine Eclipse Installation mit dem "Buckminster" Plugin aktualisieren und dann wie oben beschrieben meine lokale Update Site updaten. Was besseres ist mir aktuell noch nicht eingefallen.


----------



## Gonzo17 (15. Jun 2009)

Für Eclipse 3.5 Galileo soll ja p2 verwendet werden, wenn ich das richtig verstanden habe. Deswegen hab ich mal geschaut, was das so kann und was es besser macht. Dazu hab ich ne Seite gefunden, auf der ein paar Vorzüge von p2 aufgelistet sind. (klick mich)

Da steht bei Punkt 10: 


> Create uber-update sites that know how to get plug-ins from multiple sources



Das hört sich doch nach dem an, was ich suche, oder nicht? Vielleicht ist aber auch nur mein Englisch eingerostet. 

Auf jeden Fall weiss ich, dass das wohl irgendwie möglich sein muss mit p2, aber Buckminster kanns anscheinend nicht. Auf jeden Fall bedanke ich mich nochmal für eure Hilfe bis hierhin.


----------



## xhi2018 (15. Jun 2009)

Gonzo17 hat gesagt.:


> Für Eclipse 3.5 Galileo soll ja p2 verwendet werden, wenn ich das richtig verstanden habe. Deswegen hab ich mal geschaut, was das so kann und was es besser macht. Dazu hab ich ne Seite gefunden, auf der ein paar Vorzüge von p2 aufgelistet sind. ... Da steht bei Punkt 10:
> 
> 
> > Create uber-update sites that know how to get plug-ins from multiple sources
> ...


Ja - so würde ich es auch verstehen ... 


Gonzo17 hat gesagt.:


> Auf jeden Fall weiss ich, dass das wohl irgendwie möglich sein muss mit p2, aber Buckminster kanns anscheinend nicht. Auf jeden Fall bedanke ich mich nochmal für eure Hilfe bis hierhin.


Der letzte Eintrag aus dem Blogeintrag den Du verlinkt hast ist dann aber auch etwas hilflos ...


> I’m also seeking documentation/example of how to create an uper-update site. I’ve found nothing on the P2 wiki.


Dem armen Menschen gehts/gings ähnlich wie Dir - sorry kann Dir da leider nicht weiterhelfen ...


----------



## xhi2018 (15. Jun 2009)

Wildcard hat gesagt.:


> Du musst nur die Action auswählen (p2.site) und ok klicken, das Resultat erscheint dann in ${buckminster.ouput.root} (per Default ist das $TMP


 Ah...! :toll:
Wo und wie kann ich die Variable *${buckminster.ouput.root}* anpassen? Ist etwas unbequem sich die Update Site von *C:\Dokumente und Einstellungen\<userkennung>\....* zu kopieren  


Wildcard hat gesagt.:


> EDIT: oder wird dir gar keine Action angeboten? In dem Fall würde ich sagen das Buckminster keine Metadaten aus dem Projekt ableiten kann. Ist das auch wirklich ein Feature Projekt?


Bei mir wurde zuerst auch keine "Actions" angeboten, weil ich nur *"Buckminster - Core"* installiert hatte. 
Nachdem ich dann zusätzlich noch *"Buckminster - PDE support"* installiert hatte, war die gewünschte und noch viele andere Actions vorhanden.


----------



## Wildcard (15. Jun 2009)

> Im Ordner "buckminster" ist erstmal ein Ordner "build" und zwei leere Ordner, die wohl zu den Plug-Ins gehören. Im Ordner "build" sind dann 4 Ordner. 3 Ordner gehören da wieder zu den Plug-Ins und enthalten eine .jar-Datei, der vierte Ordner ist der Ordner von meinem Test-Feature (heisst hier passenderweise "test_1.0.0-eclipse.feature"). Dadrin befinden sich jetzt die Ordner "temp", "site" und "site.p2". Ich kann damit jetzt aber nicht wirklich was anfangen. In "temp" ist die "feature.xml", in "site" ein Ordner "plugins", der alle selektierten Plug-Ins beinhaltet, und in "site.p2" ebenfalls ein Ordner "plugins" mit allen selektierten Plug-Ins sowie die beiden Dateien "artifacts.jar" und "content.jar". Am ehesten kann ich da jetzt noch was mit dem Inhalt von Ordner "site.p2" anfangen, weil das dem Aufbau einer Update Site ähnelt, wie ich sie kenne.
> Tja nun bin ich etwas ratlos, weil ich nicht weiss, was ich damit anfangen soll. Gebe ich in Eclipse Galileo den Pfad zum Ordner "site.p2" im Update Manager an, wird das von diesem angenommen (auch "Test Connection" funktioniert), aber er bietet keine Items zum Download an. Genauso mit dem Ordner "site". Bei jedem anderen Versuch, irgendeinen der Pfade zu verwenden, scheiterte schon die "Test Connection". Fehlt mir noch irgendwas oder tue ich etwas Grundsätzliches falsch?


Das sind alles zwischenartefakte. Für dich ist site.p2 der relevante Teil, also das, was du haben wolltest.


> Um vielleicht auch grundsätzliche Verständnisfragen zu klären. Ich möchte ja eine Update Site erstellen, die Plug-Ins anderer Update Sites auflistet und praktischerweise auch die Informationen (zB Version) direkt von dort holt. Und nicht, wie es ja bei einer eigenen Update Site sonst der Fall ist, die Plug-Ins aus dem Ordner "plugins" zieht. Leistet das diese p2 site überhaupt? Der Ordner "plugins" ist nämlich immer noch da und ich frage mich, ob das nicht im Endeffekt genau das Gleiche ist wie eine Update Site von einem Update Site Project.


Der Unterschied zwischen einer p2 enabled Site und einer normalen sind:
-zusätzliche Metainformationen und damit eine bessere User Experience
-die Möglichkeit die Site mit dem p2 Director die Site als Bundle Repository zu verwenden um zB eine Eclipse Distribution daraus zu erstellen
Ansonsten sind die Beiden identisch. 


> Hm... soweit ich das "Buckminster" Plugin verstanden habe ist dass was Du willst mit diesem Weg nicht möglich. Das "Buckminster" Plugin kopiert wohl nur die ausgewählten Plugins der Eclipse Installation in eine p2 UpdateSite gerechte Form.
> Ob Dein Wunsch jetzt generell und überhaupt von dem neuen p2 Mechanismus in Eclipse 3.5 Galileo unterstützt wird kann ich Dir leider nicht sagen.


Nun, es aggregiert die Resolution, die Materialization, den Build und das Erzeugen der p2 Metadaten. 
Inwieweit mit p2 generell eine solche Meta Update Site machbar ist, kann ich nicht sagen, da es offensichtlich praktisch keine Doku dazu gibt.



> Natürlich hab ich jetzt das Problem, dass ich neue Versionen der Plugins bzw. Updates von Eclipse nicht automatisch mitbekomme, das ist glaub ich der Punkt der Dir wichtig ist. Deshalb werd ich wohl regelmäßig, manuell&händisch meine Eclipse Installation mit dem "Buckminster" Plugin aktualisieren und dann wie oben beschrieben meine lokale Update Site updaten. Was besseres ist mir aktuell noch nicht eingefallen.


Ja, genau so hatte ich mir das auch gedacht. Ausserdem hat es den Vorteil das du händisch und wissentlich neue Versionen für das Team freigibst und deren Funktionalität und Kompatibilität vorher sicherstellen konntest. Und nach dem Update ist ja nur noch ein Klick, also vertretbarer Aufwand.



> Wo und wie kann ich die Variable ${buckminster.ouput.root} anpassen? Ist etwas unbequem sich die Update Site von C:\Dokumente und Einstellungen\<userkennung>\.... zu kopieren


Im Buildprozess /Headless Build einfach per Property, in der UI in den Preferences.


----------



## Gonzo17 (16. Jun 2009)

Hm, schade. Ich danke euch trotzdem vielmals für eure Hilfe. Falls ich nen Weg finden sollter, das Problem zu lösen, werde ich mich nochmal melden. Ansonsten bleibt mir wohl nix anderes übrig, als auf ne Doku oder ein Tutorial zu warten oder das anders anzugehen.


----------



## xhi2018 (19. Jun 2009)

Hallo,

danke nochmal - ich hab das heute wieder mal versucht:


Wildcard hat gesagt.:


> > Wo und wie kann ich die Variable ${buckminster.ouput.root} anpassen? Ist etwas unbequem sich die Update Site von C:\Dokumente und Einstellungen\<userkennung>\.... zu kopieren
> 
> 
> Im Buildprozess /Headless Build einfach per Property, in der UI in den Preferences.


 meinst Du damit in den Eclipse Preferences? ("*Window*"-> "*Preferences*") und dann unter "*Buckminster*"?

In diesem Dialog gibts das Feld "*Buckminster project folder*". Wenn ich hier ein anderes Verzeichnis eintrage, wird die Update Site aber nach wie vor noch im *%TEMP%* Verzeichnis unter _C:\Dokumente und Einstellungen\<userkennung>\LOKALE~1\.... _erstellt.

Sorry ich finde die richtige Einstellung nicht - könntes Du es mir bitte etwas genauer erklären .. 

Gruß & vielen Dank!


----------



## Wildcard (19. Jun 2009)

War mein Fehler, in den Preferences kann man es doch nicht einstellen. Am einfachsten du machst eine Datei buckminster.properties mit dem Inhalt buckminster.output.root=/your/target/dir. Beim Ausführen einer Action gibst du dann das Property File an.


----------

