Osgish ist ein OSGi-Shell auf der Grundlage eines Perl-Shell auf der Clientseite, die über HTTP / JSON zu einer speziellen Agent kommuniziert gebündelte auf der Zielplattform implementiert. & Nbsp; Neben Standard-Funktionen durch die verschiedenen bestehenden OSGi Schalen vorgesehen außerhalb bietet einige Alleinstellungsmerkmale zum Leben easiers im Umgang mit einer Menge von OSGi-Bundles zu machen:
* GNU Readline-Unterstützung mit
- History gespeichert accross Sitzungen
- Kontextsensitive Kommandozeile Fertigstellung
- Emacs-Tastenzuordnungen
* Im Einklang Syntax-Highlighting (umschaltbar) mit Farbschema Unterstützung
* Fernbedienung über HTTP (S) mit einer Upload-Anlage für Bündel zu installieren / aktualisieren
* Konfigurierbare über eine Konfigurationsdatei wie Verknüpfungen für bekannte Server-URLs.
* Wildcard-Unterstützung für Abfrage und Lebenszyklusoperationen
* Unterstützung für Massenvorgänge (zB Start mehrere Bündel auf einmal)
* Befehlsgruppen, die wie Verzeichnisse durchlaufen werden kann
* Extensible durch Befehl Plugins
Wie es funktioniert
Ein Perl-Kommandozeilen-Skript (zusammen mit einigen Perl-Module), die über eine spezielle OSGi Mittel Bündel (osgish-agent.jar) zu einem OSGi-Container verbindet: Osgish hauptsächlich zwei Teilen bestehen. Das Bundle besteht aus der jmx4perl Export JMX Informationen über eine OSGi Httpservice als JSON-Daten. Die verwendeten entsprechen denen des Aries (http://incubator.apache.org/aries/), die eine Umsetzung der (noch fertig gestellt werden) Spezifikation der OSGi Alliance-Unternehmen Expert Group (EEG) wird zur Verfügung gestellt JMX MBeans, vor allem die . "JMX Management Model Specification" & nbsp;
Obwohl diese Einstellung klingt ein bisschen beteiligt sind, ist die Installation nicht viel mehr als die Installation einer CPAN-Paket und ein OSGi-Bundle zur Verfügung gestellt (die gleiche wie für jmx4perl).
INSTALLATION
Die Perl Teil installiert als jedes andere Modul über Module :: Körperbau, die Sie brauchen, um installiert haben. Mit
& Nbsp; perl Build.PL
& Nbsp; ./Build
& Nbsp; ./Build Test
& Nbsp; ./Build Installieren
werden die Module zu installieren. Wenn Sie Java und Maven (eine Java-Build-Tool) installiert ist, wird der Agent Bundle zusammengestellt und verpackt als auch, wenn Sie './Build dist' verwenden werden. Jedoch ist dies nicht erforderlich, da eine Vorverpackung Bündel wird in dem Agent-Verzeichnis enthalten ist.
Osgish hängt von der Perl-Module 'Term :: Readline "(indirekt über Term :: ShellUI), die mit verschiedenen Backend-Readline-Implementierungen verwendet werden können. Die mächtigsten (und damit empfohlen) Umsetzung ist GNU Readline / History Library, die verwendet wird, wenn installiert. Es lohnt sich wirklich, um die zusätzliche Möglichkeit, GNU Readline-Installation gehen, auch auf OS X oder Windows (was nicht trivial). Z.B. für OS X können Sie das Paket "p5 Zeit-readline-gnu 'von Mac Ports verwenden, um Readline zusammen mit der benötigten Module installiert. Für Debian, ist der einfachste Weg, um das Paket 'libterm-readline-gnu-perl' via apt installieren. Allerdings ist die Standardimplementierung Term :: Readline :: Perl passt gut, auch.
Für das Modul zu arbeiten, müssen Sie die Bereitstellung "osgi-Agent-.jar" zu jedem OSGi-Container Sie eine Verbindung herstellen möchten. Finden Sie in OSGi-Framework, wie Bundles (zB durch Aufruf 'install' in einer OSGi-Shell oder die Bereitstellung der Paketnamen während des Startvorgangs) zu installieren. Dieses Bundle ist eine Abhängigkeit von einer OSGi Httpservice, die zur Verfügung stehen muss. Einige OSGi-Container (wie Glassfish v3) kommt bereits mit einem Httpservice als Installationsoption, für die anderen Sie eine manuell installieren müssen. Eine gute Wahl ist die Pax Web (http://wiki.ops4j.org/display/paxweb/Pax+Web) Httpservice. Wählen Sie die Personen-web-Steg-Bundle beim Herunterladen enthält es eine alles was Sie brauchen.
Betrachtet man die der Httpservice bei seinen Standard-Port 8080, & nbsp installiert; können Sie es über eine Verbindung
& Nbsp; osgish --server http: // localhost: 8080 / J4P
(Dies setzt voraus, dass der Httpservice hat einen Stammkontext '/', die für die Pax Web wahr ist Glassfish v3 der Httpservice mit einem Root-Kontext "/ osgi", die in einer Verbindungs URL http ergibt:. // Localhost: 8080 / osgi / J4P)
UNTERSTÜTZT OSGI-Plattformen vorrangig
& Nbsp;
Die folgende OSGi-Plattform hat sich bestätigt, so weit zu arbeiten:
& Nbsp; * Felix 2.0.1
& Nbsp; * Equinox 3.5.1
& Nbsp; * Glassfish v3
& Nbsp; * Feder dm Server 2.0
Seit OSGi-Bundles sind sehr portabel, wird erwartet, dass jeder SGi Server mit einer installierten Httpservice aus der Box arbeiten. & Nbsp; Bitte öffnen Sie einen Fehler bei http://rt.cpan.org/Public/Bug/Report.html?Queue=osgish, wenn Sie auf Probleme stoßen.
& ldquo;? Warum in aller Welt sind Sie mit Perl zur Überbrückung zu einem reinen Java-basierte Technologien wie OSGi & rdquo;
Nun, wie das Setup sehr komplex erscheinen mag (ein in der Tat ist es confessly mehr Arbeit als die Installation einer Reihe von OSGi-Bundles) es hat einige einzigartige Vorteile. Perl ist für seine Premium-Niveau Textbearbeitungsfunktionen und ihre enge Systemintegration bekannt. Der Reichtum der CPAN-Module ist immer noch unerreicht in der Java-Welt so weit. Extras wie Term :: ProgressBar oder Term :: ShellUI werden wahrscheinlich auf der Java-Seite fehlen für einige Zeit zu kommen. Dank seiner reinen HTTP-Kommunikation es funktioniert gut über Firewall-Grenzen hinweg. Und don & rsquo; t vergessen, Perl & rsquo; s hervorragende Leistung Charakterisik für diese Art von Anwendungen. Nicht zuletzt ist es eine perfekte Anwendungsfall für jmx4perl, die eine Geschichte für sich hat;-). IMO ist es die perfekte Mischung, wobei jede Sprache spielt seine Stärke.
Ok, genug Lob, gibt es natürlich auch einige Nachteile, auch: Installation von Perl-Modulen kann ein Schmerz vor allem wenn man sich unwohl mit cpan oder Perl zu einem Ganzen zu sein. Besonders Installation Term :: Readline :: Gnu unter Windows oder OS X können große Kopfschmerzen zu geben (obwohl es möglich ist, und es gibt einen Fallback, auch). Es ist leicht, sich in den Fuß zu schießen, wenn die Manipulation des gesamten Lebenszyklus des Mittel Bündel oder es & rsquo; s Abhängigkeiten mit osgish. Netzwerklatenz und Verkehr kann zu einem Problem werden, da die gesamte Kommunikation aus der Ferne per se.
Am Ende ist es an Ihnen zu beurteilen, wheter osgish passt für Sie. Ich würde mehr als glücklich sein, wenn Sie es mal ausprobieren. Für mich ist es hilft mir bei meiner Entwicklung OSGi und Verwaltungsaufgaben jeden Tag.
Auch wenn Sie nicht vorhaben, zu verwenden osgish, I & rsquo; m neugierig auf Ihre Meinung zu diesem Setup. Kommentare sind sehr willkommen
Was ist neu in dieser Pressemitteilung:
- Aktualisiert den Widder 0,3
- Sie OSGi-Bundles Splitted in einer reinen (Kern) Bündel und ein All-in-One-Paket (Bundle)
Was ist neu in Version 0.1.0:
- Upload-Bundles, um Server und zu verwalten
- Tuned kontextsensitive Fertigstellungen, aufgenommen Optionen 'ls' von Dienstleistungen / Bündel ('-s' show symbolischen Namen "-u & lt; Gebot & gt; 'nur Leistungen Bündels & lt verwendet, bieten & gt ;,' -b & lt; Gebot & gt; 'Leistungen Bündels & lt Besitz; Gebot & gt;
- Starten Sie die Online-Hilfe hinzufügen
Anforderungen :
- Java 2 Standard Edition Runtime Environment
- Perl
- JMX :: Jmx4Perl :: Config
- Config :: Allgemeines
- OSGi :: Osgish
Kommentare nicht gefunden