Osgish is een OSGi shell gebaseerd op een Perl-shell op de client, die communiceert via HTTP / JSON naar een speciale agent gebundeld ingezet op het doel platform & nbsp;. Naast standaard functies die door de diverse bestaande OSGi schelpen buiten het biedt een aantal unieke kenmerken om het leven easiers te maken bij de behandeling van veel OSGi bundels:
* GNU Readline ondersteuning bij
- Geschiedenis opgeslagen overkant sessies
- Contextgevoelig opdrachtregel voltooiing
- Emacs sneltoetsen
* Consistente syntax highlighting (schakelbaar) met kleur thema te ondersteunen
* Bediening op afstand via HTTP (S), waaronder een uploadfunctie voor bundels te installeren / updaten
* Configureerbaar via een configuratiebestand als snelkoppelingen voor bekende server URL's.
* Wildcard ondersteuning voor query en lifecycle operaties
* Ondersteuning voor bulk operaties (bijvoorbeeld beginnend meerdere bundels tegelijk)
* Command groepen die kunnen worden doorkruist als directories
* Extensible door commando plugins
Hoe werkt het
Osgish bestaan uit hoofdzakelijk twee delen: Een Perl command line script (samen met enkele Perl modules) die wordt aangesloten op een OSGi container via een speciale OSGi middel bundel (osgish-agent.jar). Deze bundel bevat de jmx4perl voor de uitvoer JMX informatie via een OSGi HTTPService als JSON data. De JMX MBeans gebruikt zijn die welke door de Ram (http://incubator.apache.org/aries/), die een implementatie van de (nog te worden afgewerkt) specificatie van de OSGi Alliance Enterprise Expert Group (EEG) wordt, in het bijzonder de . "JMX management Model Specification" & nbsp;
Hoewel deze opstelling klinkt betrokken installatie niet meer dan het installeren van een CPAN pakket en ontvangen OSGi bundel (hetzelfde als voor jmx4perl).
INSTALLATIE
De Perl deel installeert als elke andere module via Module :: Build, die je nodig te hebben geïnstalleerd. Gebruik
& Nbsp; perl Build.PL
& Nbsp; ./Build
& Nbsp; ./Build-Test
& Nbsp; ./Build Installeren
de modules te installeren. Als u Java en Maven (een Java build tool) is geïnstalleerd, zal de agent bundel worden samengesteld en zo goed verpakt als je './Build dist' gebruiken. Echter, dit is niet vereist als voorverpakte bundel bevat in het middel directory.
Osgish afhankelijk Perl Module Term :: ReadLine (indirect via Term :: ShellUI), die kan worden gebruikt met verschillende backend Readline implementaties. De meest krachtige (en dus aanbevolen) implementatie is GNU Readline / History Library die zal worden gebruikt indien geïnstalleerd. Het is echt de moeite waard om de extra manier om GNU readline installeren gaan, zelfs op OS X of Windows (wat niet onbelangrijk). Bijv. voor OS X kunt u het pakket gebruiken 'p5-termijn-readline-gnu' van Mac Ports naar readline installeren, samen met de benodigde module. Voor Debian, de makkelijkste manier is om het pakket 'libterm-readline-gnu-perl' installeren via apt. Echter, de standaard implementatie Term :: ReadLine :: Perl past mooi, ook.
Voor de module te laten werken, moet u de bepaling "OSGi-middel-.jar" om elke OSGi container die u wilt verbinden. Raadpleeg uw OSGi raamwerk hoe je een bundel (bijvoorbeeld door te roepen 'installeren' in een OSGi shell of het verstrekken van de naam bundel tijdens het opstarten) te installeren. Deze bundel heeft een afhankelijkheid van een OSGi HTTPService die beschikbaar moet zijn. Sommige OSGi container (zoals Glassfish v3) al geleverd met een HTTPService als een installatie optie, voor andere moet u een handmatig te installeren. Een goede keuze is de Pax Web (http://wiki.ops4j.org/display/paxweb/Pax+Web) HTTPService. Selecteer de pax-web-steiger-bundel bij het downloaden, het bevat een alles wat je nodig hebt.
Beschouwd als je de HTTPService op zijn standaard poort 8080, & nbsp geïnstalleerd; U kunt verbinding maken met het via
& Nbsp; osgish --server http: // localhost: 8080 / J4P
(Dit veronderstelt, dat de HTTPService een rootcontext '/' dat geldt voor Pax Web Glassfish v3 HTTPService gebruiken rootcontext van '/ OSGi' hetgeen een connect URL http:. // Localhost: 8080 / OSGi / J4P)
Ondersteunde OSGI PLAFORMS
& Nbsp;
De volgende OSGi platform is bevestigd om zo ver met werken:
& Nbsp; * Felix 2.0.1
& Nbsp; * Equinox 3.5.1
& Nbsp; * Glassfish v3
& Nbsp; * Spring dm Server 2.0
Sinds OSGi bundels zijn zeer draagbaar, wordt verwacht dat elke SGi server met een geïnstalleerde HTTPService zou moeten werken uit de doos. & Nbsp; Open een bug bij http://rt.cpan.org/Public/Bug/Report.html?Queue=osgish als u problemen ondervindt.
& ldquo;? Waarom op aarde gebruikt u Perl voor het overbruggen van een pure Java gebaseerde technologie zoals OSGi & rdquo;
Nou, als de setup lijkt misschien vrij complex (een in feite is het confessly meer werk dan het installeren van een bos van OSGi bundels), het heeft een aantal unieke voordelen. Perl is bekend om zijn premium-niveau tekst manipulatie mogelijkheden en zijn strakke systeemintegratie. De rijkdom van CPAN modules is nog steeds ongeëvenaard in de Java-wereld tot nu toe. Goodies zoals Term :: ProgressBar of Term :: ShellUI waarschijnlijk ontbreken op het Java-kant voor geruime tijd te komen. Dankzij de pure HTTP-communicatie werkt netjes tegenover firewall grenzen. En don & rsquo; t vergeet Perl & rsquo; s uitstekende prestaties characterisics voor dit soort toepassingen. Last but not least, het is een perfecte use case voor jmx4perl, die een verhaal op zich heeft;-). IMO is het de perfecte mix, waar elke taal speelt uit haar kracht.
Ok, genoeg lof, zijn er natuurlijk een aantal nadelen, ook: Het installeren van Perl-modules kan een pijn vooral als men is ongemakkelijk met cpan of Perl op een geheel. Vooral het installeren Term :: ReadLine :: Gnu op Windows of OS X kan grote hoofdpijn geven (hoewel mogelijk is, en er is een fallback, ook). Het is gemakkelijk om jezelf in de voet schieten als het manipuleren van de levenscyclus van de agent bundel of het & rsquo; s afhankelijkheden met osgish. Netwerk latency en het verkeer kan een probleem worden omdat alle communicatie op afstand per se.
Aan het eind is het aan u om te oordelen wheter osgish bij je past. Ik zou meer dan blij zijn als je zou het eens te proberen. Voor mij is het helpt me bij mijn OSGi ontwikkeling en administratieve taken elke dag.
Zelfs als je niet van plan bent om osgish gebruiken, I & rsquo; ben benieuwd naar jullie mening over deze setup. Reacties worden vaak zeer gewaardeerd
Wat is nieuw in deze release:!
- Bijgewerkt naar Aries 0.3
- opgesplitst OSGi bundels in een zuivere (kern) bundel en een alles-in-één bundel (bundel)
Wat is nieuw in versie 0.1.0:
- Uploaden bundels naar de server en het beheer daarvan
- Tuned contextgevoelig opleveringen, toegevoegd opties om 'ls' van diensten / bundels ('-s' tonen symbolische namen, '-u & lt; bod & gt;' alleen diensten die worden gebruikt door bundel & lt; bod & gt ;, '-b & lt; bod & gt; 'diensten die eigendom zijn van bundel & lt; bod & gt;
- Start om online hulp toe te voegen
Eisen
- Java 2 Standard Edition Runtime Environment
- Perl
- JMX :: Jmx4Perl :: Config
- Config :: Algemeen
- OSGi :: Osgish
Reacties niet gevonden