# Buckminster



## Generic1 (29. Jun 2010)

Hallo,

ich suche ein Beispiel- Bild, wie die Abhängigkeiten zwischen OSGi Bundles mit dem Buckminster dargestellt werden, weiß jemand wo ich eins finden kann -> ich hätte gerne gesehen, ob das in einer Baumstruktur dargestellt wird oder ob das pro Bundle vielleicht ein Rechteck ist mit Verbindungslinien zu anderen Bundles und in den Rechtecken stehen dann die Abhängigkeiten drinnen -> so wärs für mich am idealsten -> Gibts sowas?
Besten Dank.
lg


----------



## Wildcard (29. Jun 2010)

Sowohl als auch. Der Baum dient der Übersicht und ermöglicht Drill-Down, die Grafik zeigt die Abhängigkeiten als Graph.
Seite 117 im Handbuch.
Eclipse downloads - mirror selection

Die Dependency Visualisierung ist von mir, wenn dir also etwas fehlt, sag bescheid vielleicht kann ich es einbauen.


----------



## Generic1 (29. Jun 2010)

Hallo Wildcard,

besten Dank für die Info, hab noch ein grundlegendes Problem mit dem Buckminster und zwar hab ich 
1. Buckminster - Core und
2. ACTF Visualisation SDK Feature (Incubator) 
mit der URL Galileo Software Repository installiert. 
Wie ich jetzt auf das Dropdown menü von Seite 117 komme ist mir nicht klar, ich muss auch zugeben, der Visualiser wäre zwar genau das was ich brauche, ich hab das pdf jetzt aber nicht durchgelesen.
Wäre es vielleicht möglich, dass du mir einen einfachen Weg beschreibst, wie ich dazu komme?
Besten Dank nochmal,
lg


----------



## Wildcard (29. Jun 2010)

> 2. ACTF Visualisation SDK  Feature (Incubator)


Was immer das ist, du brauchst es nicht. Der Buckminster Visualizer ist Teil von Buckminster Core.
Es gibt 2 Möglichkeiten:
1. Rechtsklick auf ein Projekt in Eclipse -> Buckminster -> visualize Dependencies
Mit dieser Methode siehst du direkt etwas, allerdings ist je nach Art des Projekts (Maven, OSGi, Plain Java, Eclipse Feature,...) die Liste möglicherweise nicht vollständig da nicht sichergestellt ist das alle transitiven Abhängigkeiten aufgelöst werden können.

Die genauere Methode (dazu musst du zumindest das Prinzip von Buckminster verstanden haben):
2. 
-Du öffnest/erstellst ein CQuery. 
-Im CQuery Editor gibst du die ID (Name) und den Typ der Komponente an deren Abhängigkeiten dich interessieren.
-Nun trägst du die RMAP ein die für den Lookup verwendet werden soll.
-Dann aktivierst du den Haken 'Continue on error'.
-Resolve to Wizard
-Wenn der Wizard alle Abhängigkeiten aufgelöst hat klickst du auf 'save BOM'.

Die BOM enthält nun genaue Informationen welche Component welche Abhängigkeiten hat, und wo und in welcher Version sie gefunden wurde (CVS, SVN, Git, Dateisystem, Target Platform, Maven Repository, Eclipse Update Site,...). Dieses .bom File Kannst du dann einfach per Doppelklick öffnen um die Abhängigkeiten zu Visualisieren.

Um nochmal den Unterschied zu verdeutlichen:
Rechtsklick gibt dir eine Art lokalen Snapshot der Abhängigkeiten. In deiner IDE werden die verschiedenen Artefakte in gezeigter Weise miteinander verbunden.

Die BOM Variante beschreibt wesentlich detailierter wie sich die Abhängigkeiten zB für den Build Prozess darstellen.
A wird aus Branch 1.0.0 aus einem CVS ausgecheckt.
B kommt als Version 4.0 aus Maven Repository foo
C wurde direkt aus der Target Platform geladen
D wurde aus einem Git Repository ausgecheckt
E ist ein einfaches Jar das von http://example.org/foo/bar.jar runtergeladen wurde

usw.


----------



## Generic1 (29. Jun 2010)

OK, was ich jetzt noch für ein Problem habe, ich arbeite unter Windows7, habe SVN installiert gehabt und jetzt den Buckminster (nur Core) installiert -> der Buckminster ist nicht zu sehen und SVN ist auch verschwunden obwohl die Plugins noch installiert sind.
Keine Ahnung was da schiefgeht.
Weißt du da noch was?
Besten Dank,
lg


----------



## Wildcard (29. Jun 2010)

Kann ich dir nichts zu sagen, schau ins Log. Du kannst die Installation auch über die p2 UI Rückgängig machen und erneut versuchen. Core ist vermutlich nicht genug für dich, es hängt davon ab mit welchen Arten von Components du zu tun hast und wo diese Components herkommen.


----------



## Generic1 (29. Jun 2010)

Gibts ein Eclipse zum Downloaden, wo der Buckminster schon dabei ist, ich bräuchte nur eine Eclipse- Instanz wo das dabei ist, damit wäre mir sehr geholfen.
Besten Dank,
lg


----------



## Generic1 (29. Jun 2010)

So, bin jetzt so weit gekommen, weiß aber nicht was ich da als rmap eingeben muss, könntest du mir in diese Richtung noch hilfestellung geben?
Besten Dank,
lg


----------



## Wildcard (29. Jun 2010)

> Gibts ein Eclipse zum Downloaden, wo der Buckminster schon dabei ist, ich bräuchte nur eine Eclipse- Instanz wo das dabei ist, damit wäre mir sehr geholfen


Nein, es wird per Update Site installiert.


> So, bin jetzt so weit gekommen, weiß aber nicht was ich da als rmap eingeben muss, könntest du mir in diese Richtung noch hilfestellung geben?


Dort steht drin welche Components wo zu finden sind (Dateisystem, SCMs, Maven Repositories, Eclipse Update Sites,...).
Buildsysteme müssen komplexe Aufgaben lösen, daher sind sie auch nicht trivial zu bedienen, du wirst also schon mal ins Handbuch schauen müssen wenn du eine RMAP erstellen willst.


----------



## Generic1 (30. Jun 2010)

Ich möchte eigentlich nur die Projekte (Plug-in-Projekte) im Eclipse- Workspace miteinbeziehen in die Resourcemap und die Abhängigkeiten der Bundles bzw. Plug- in- Projekte visualisieren.
Gibt es da einen einfache Möglichkeit, was ich da in die rmap schreiben kann.
Besten Dank,
lg


----------



## Wildcard (30. Jun 2010)

Wenn alles Bundles sind, dann genügt Variante 1 und dafür brauchst du keine RMAP. Die Action ist allerdings erst ab Eclipse 3.6 vorhanden, also gegebenenfalls neue Eclipse Version runterladen.


----------



## Generic1 (1. Jul 2010)

So, jetzt hab ich mir Eclipse 3.6 heruntergeladen und bekomme folgenden Fehler wenn ich den Buckmister installieren will:


```
Cannot complete the install because of a conflicting dependency.
  Software being installed: Buckminster - Core 1.1.350.r11162 (org.eclipse.buckminster.core.feature.feature.group 1.1.350.r11162)
  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: 
    Equinox Provisioning Artifact Repository Support 1.1.0.v20100513 (org.eclipse.equinox.p2.artifact.repository 1.1.0.v20100513)
    Equinox Provisioning Artifact Repository Support 1.0.101.R35x_v20090721 (org.eclipse.equinox.p2.artifact.repository 1.0.101.R35x_v20090721)
  Cannot satisfy dependency:
    From: Buckminster Core 1.1.350.r10920 (org.eclipse.buckminster.core 1.1.350.r10920)
    To: package org.eclipse.equinox.internal.provisional.p2.artifact.repository 0.0.0
  Cannot satisfy dependency:
    From: Buckminster - Core 1.1.350.r11162 (org.eclipse.buckminster.core.feature.feature.group 1.1.350.r11162)
    To: org.eclipse.buckminster.core [1.1.350.r10920]
  Cannot satisfy dependency:
    From: Equinox p2 Provisioning 2.0.0.v20100503-897HFZ-FdHjO2NQo0sD_Nt (org.eclipse.equinox.p2.user.ui.feature.group 2.0.0.v20100503-897HFZ-FdHjO2NQo0sD_Nt)
    To: org.eclipse.equinox.p2.artifact.repository [1.1.0.v20100513]
  Cannot satisfy dependency:
    From: Eclipse SDK 3.6.0.I20100608-0911 (org.eclipse.sdk.ide 3.6.0.I20100608-0911)
    To: org.eclipse.equinox.p2.user.ui.feature.group [2.0.0.v20100503-897HFZ-FdHjO2NQo0sD_Nt]
```
was mache ich da falsch?
lg


----------



## Wildcard (1. Jul 2010)

Du scheinst versucht zu haben Buckminster von der Eclipse 3.5 Seite zu installieren


----------



## Generic1 (1. Jul 2010)

Is leider eine schwere Geburt:
Ich hab jetzt folgenden Link versucht und bekomme folgenden Fehler:

Buckminster - 404 File not found


```
Cannot complete the install because one or more required items could not be found.
  Software being installed: Buckminster - Core 1.3.0.r11467 (org.eclipse.buckminster.core.feature.feature.group 1.3.0.r11467)
  Missing requirement: Buckminster - Core 1.3.0.r11467 (org.eclipse.buckminster.core.feature.feature.group 1.3.0.r11467) requires 'org.eclipse.zest.core 0.0.0' but it could not be found
```

Was mach ich da falsch?
lg


----------



## Generic1 (2. Jul 2010)

Also ich habs jetzt mal so weit geschafft wie unten dargestellt, 2 Sachen hätte ich noch, 1. mir ist es nicht gelungen, dass ich die Abhängigkeiten zwischen den Bundles darstellen kann sondern wie unten nur ein einziges Bundle -> es ist nicht möglich, alle Bundles auf der linken seite zu makieren und dann Buckminster -> Open Dependency Graph - wie könnte ich das machen, dass ich alle 6 Bundles mit den Abhängigkeiten im Dependency Visualizer darstelle?

Und eine 2 Sache noch: wenn ich den Dependency Visualizer Reiter zumache, verabschiedet sich Eclipse als ganzes. (ich arbeite unter UBUNTU)

Besten Dank,
lg


----------



## Generic1 (2. Jul 2010)

Also ich habs jetzt nochmal versucht, habs aber nicht geschafft, ich hab keine Ahnung wie man dem Buckminster sagen kann, dass er alle Plug-in-Projekte im workspace nehmen soll und je nach Abhängigkeit grafisch darstellt.
Wäre nochmal sehr dankbar für Unterstüzung.
lg


----------



## Wildcard (2. Jul 2010)

Wie sind die Abhängigkeiten denn definiert? Derzeit wird nur require-bundle unterstützt, nicht import package. Wenn du import package verwendest musst du die Information 'nachrüsten' welches Bundle verwendet werden soll um den Package Import aufzulösen. Dazu müsstest du eine CSPEX in deine Bundles legen (ähnlich einer Maven POM).




> Und eine 2 Sache noch: wenn ich den Dependency Visualizer Reiter zumache, verabschiedet sich Eclipse als ganzes. (ich arbeite unter UBUNTU)


Verwendest du OpenJDK? Das hat noch so seine Tücken, mit einer SUN VM bist du besser bedient.


----------



## Generic1 (2. Jul 2010)

Besten Dank für die Info, schade dass das mit dem Import-Package nicht funktioniert, ich hab nämlich um die 50 Bundles und hätte gerne die Abhängigkeiten visualisiert.

könntest Du vielleicht noch ein Beispiel geben wie ich so ein CSPEC-File anlegen kann.
Besten Dank,
lg


----------



## Wildcard (3. Jul 2010)

> Und eine 2 Sache noch: wenn ich den Dependency Visualizer Reiter zumache, verabschiedet sich Eclipse als ganzes. (ich arbeite unter UBUNTU)


Kann ich reproduzieren mit Ubuntu 64 Bit. Ist allerdings ein VM Crash in libswt, da kann ich nicht viel machen:

```
# Problematic frame:
# C  [libswt-pi-gtk-3650.so+0x3c72f]  Java_org_eclipse_swt_internal_gtk_OS__1G_1OBJECT_1TYPE+0x0
```



> Besten Dank für die Info, schade dass das mit dem Import-Package nicht funktioniert, ich hab nämlich um die 50 Bundles und hätte gerne die Abhängigkeiten visualisiert.


Der Buckminster Nachfolger b3 wird import package unterstützen, allerdings dauert das erste produktiv verwendbare Release noch eine Weile.

Wenn du eine homogene OSGi Umgebung hast und es dir nicht ums builden, sondern nur um eine Sicht auf die Dependencies geht, dann brauchst du Buckminster gar nicht. In dem Fall kannst du einfach den PDE Visualizer verwenden.
PDE Incubator Dependency Visualization




> könntest Du vielleicht noch ein Beispiel geben wie ich so ein CSPEC-File anlegen kann.


Brauchst du wie gesagt nicht, aber der Vollständigkeit halber:
Rechtsklick aufs Projekt -> New -> Component Specification Extension File
Dann deine Dependencies eintragen:

[XML]<?xml version="1.0" encoding="UTF-8"?>
<cspecExtension
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0"
	xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
	<dependencies>
		<dependency name="org.eclipse.osgi" componentType="osgi.bundle"/>
		<dependency name="org.eclipse.core.runtime" componentType="osgi.bundle"/>
	</dependencies>
	<generators>
		<!-- Place your Generators here -->
	</generators>
	<artifacts>
		<!-- Place your Artifacts here -->
	</artifacts>
	<actions>
		<!-- Place your Actions here -->
	</actions>
	<groups>
		<!-- Place your Groups here -->
	</groups>
	<alterDependencies>
		<!-- Place your Dependency alterations here -->
	</alterDependencies>
	<alterArtifacts>
		<!-- Place your Artifact alterations here -->
	</alterArtifacts>
	<alterActions>
		<!-- Place your Action alterations here -->
	</alterActions>
	<alterGroups>
		<!-- Place your Group alterations here -->
	</alterGroups>
</cspecExtension>[/XML]


----------



## Generic1 (4. Jul 2010)

Also irgendwie bekomm ichs nicht hin, ich hab den PDE zwar installiert aber ich weiß nicht wie ich da einen Graph bzgl. der Bundles erzeugen kann. 
Kann mir vielleicht jemand schreiben, wie man das macht.
Besten Dank,
lg


----------



## Generic1 (4. Jul 2010)

Habs schon -> Besten Dank!!


----------

