Osgish er en OSGi shell baseret på en Perl shell på klientsiden, der kommunikerer via HTTP / JSON til en særlig agent bundtet indsat på målet platform. & Nbsp; Udover standard funktioner, som de forskellige eksisterende OSGi skaller uden det giver nogle unikke funktioner, der gør livet easiers når der beskæftiger sig med en masse af OSGi bundter:
* GNU Readline støtte med
- Historie gemt accross sessioner
- Kontekstafhængig kommandolinje færdiggørelse
- Emacs tastebindinger
* Konsekvent syntaksfremhævning (omskiftelig) med farve tema support
* Fjernbetjening via HTTP (S), herunder et upload facilitet for bundter til at installere / opdatere
* Kan konfigureres via en konfigurationsfil som genveje til kendte server webadresser.
* Wildcard støtte til forespørgslen og livscyklus operationer
* Støtte til bulk-operationer (f.eks starter flere bundter på én gang)
* Command grupper, som kan krydses ligesom mapper
* Extensible ved kommando plugins
Sådan virker
Osgish bestå af primært to dele: En Perl kommandolinje script (sammen med nogle Perl moduler), som forbindes til en OSGi beholder via en særlig OSGi agent bundt (osgish-agent.jar). Denne pakke indeholder det jmx4perl for eksport JMX information gennem en OSGi HTTPService som JSON data. De JMX MBeans anvendte dem, som den Aries (http://incubator.apache.org/aries/), som bliver til en implementering af (endnu ikke afsluttet) specifikation af OSGi Alliance Enterprise Expert Group (EEG), især den . "JMX Management Model Specification" & nbsp;
Selv om dette setup lyder lidt involveret, installation er ikke meget mere end at installere en CPAN pakke og en forudsat OSGi bundt (den samme som for jmx4perl).
INSTALLATION
Den Perl del installeres som alle andre moduler via modul :: Byg, som du skal have installeret. Brug
& Nbsp; perl Build.PL
& Nbsp; ./Build
& Nbsp; ./Build Test
& Nbsp; ./Build Installere
installerer modulerne. Hvis du har Java og Maven (en Java-build tool) installeret, vil agenten bundt udarbejdes og pakket så godt, når du bruger './Build dist «. Dette er dog ikke påkrævet, da et færdigpakket bundt er indeholdt i midlet bibliotek.
Osgish afhænger af Perl modul "Term :: ReadLine« (indirekte via Term :: ShellUI), som kan bruges med forskellige backend readline implementeringer. Den mest kraftfulde (og dermed anbefales) implementering er GNU Readline / historiske bibliotek, som vil blive anvendt, hvis installeret. Det er virkelig værd at gå den ekstra måde at installere GNU readline, selv på OS X eller Windows (som ikke er trivielt). F.eks til OS X, du kan bruge pakken "p5 sigt-readline-gnu" fra Mac Ports at installere readline sammen med den nødvendige modul. For Debian, den nemmeste måde er at installere pakken "libterm-readline-gnu-perl 'via apt. Men udtrykket standard implementering :: ReadLine :: Perl passer fint, også.
For at modulet kan fungere, skal du bestemmelse "OSGi-agent-.jar" til hver OSGi beholder du vil oprette forbindelse til. Se din OSGi ramme, hvordan du installerer et bundt (fx ved at kalde 'install' i en OSGi skal eller levere pakken navn under opstart). Denne pakke har en afhængighed af en OSGi HTTPService, som skal være til rådighed. Nogle OSGi beholder (ligesom Glassfish v3) allerede kommer med en HTTPService som en installation option, for andre skal du installere en manuelt. Et godt valg er Pax Web (http://wiki.ops4j.org/display/paxweb/Pax+Web) HTTPService. Vælg den pax-web-mole-bundle, når du henter, det indeholder en alt hvad du behøver.
Betragtes du installerede HTTPService på dens standard port 8080, & nbsp; du kan oprette forbindelse til den via
& Nbsp; osgish --server http: // localhost: 8080 / J4P
(Dette forudsætter, at HTTPService har en rod kontekst '/', som er sandt for Pax Web GlassFish v3 s HTTPService bruge en rod kontekst af '/ OSGi ", som resulterer i en connect URL http:. // Localhost: 8080 / OSGi / J4P)
SUPPORTED OSGi plaforms
& Nbsp;
Følgende OSGi platform er blevet bekræftet hidtil med at arbejde:
& Nbsp; * Felix 2.0.1
& Nbsp; * Equinox 3.5.1
& Nbsp; * Glassfish v3
& Nbsp; * Spring dm Server 2.0
Da OSGi bundter er yderst bærbar, forventes det, at hver SGI-server med en installeret HTTPService bør arbejde ud af kassen. & Nbsp; Vær åbne en fejl på http://rt.cpan.org/Public/Bug/Report.html?Queue=osgish hvis du støder på problemer.
& ldquo;? Hvorfor i alverden bruger du Perl til at bygge bro til en ren Java-baserede teknologi som OSGi & rdquo;
Nå, da opsætningen kan synes temmelig kompleks (en i virkeligheden, er det confessly mere arbejde end at installere en flok OSGi bundter) det har nogle unikke fordele. Perl er kendt for sine premium niveau tekst manipulation kapaciteter og sin stramme systemintegration. Den rigdom af CPAN moduler er stadig uovertruffen i Java verden hidtil. Goodies ligesom Term :: ProgressBar eller Term :: ShellUI sandsynligvis mangler på Java side i temmelig lang tid fremover. Takket være sin rene HTTP kommunikation fungerer det fint på tværs af firewall grænser. Og don & rsquo; t glemmer Perl & rsquo; s fremragende ydeevne characterisics for denne slags programmer. Sidst men ikke mindst, er det en perfekt anvendelse tilfældet for jmx4perl, der har en historie i sig selv;-). IMO er det den perfekte blanding, hvor hvert sprog spiller sin styrke.
Ok, nok ros, er der selvfølgelig nogle ulemper, også: Installation Perl moduler kan være en smerte, især hvis man er ubehageligt med CPAN eller Perl på en helhed. Især installere Term :: ReadLine :: Gnu på Windows eller OS X kan give store hovedpine (selvom muligt, og der er en fallback, også). Det er nemt at skyde sig selv i foden, når manipulere livscyklus agenten bundt eller IT & rsquo; s afhængigheder med osgish. Netværk latency og trafik kan blive et problem, da al kommunikation er fjernt per se.
I slutningen er det op til dig at bedømme wheter osgish passer til dig. Jeg ville være mere end glad, hvis du ville give det en chance. For mig hjælper mig på mine OSGi udviklings- og administrationsopgaver hver dag.
Selv hvis du ikke planlægger at bruge osgish, I & rsquo; m nysgerrig din mening om denne opsætning. Kommentarer er meget værdsat
Hvad er nyt i denne udgivelse:!
- Opdateret til Aries 0.3
- opsplittes OSGi bundter i en ren (kerne) bundt og en alt-i-ét bundt (bundt)
Hvad er nyt i version 0.1.0:
- Upload bundter til server og styre det
- Tuned kontekstafhængige færdigbyggede, tilføjede options to 'ls «af tjenester / bundter (' -s 'Vis symbolske navne,' -u & lt; bud & gt;" kun tjenesteydelser, der anvendes af bundt & lt; bud & gt ;, '-b & lt; bud & gt; »tjenesteydelser, der ejes af bundt & lt; bud & gt;
- Start med at tilføje online hjælp
Krav :
- Java 2 Standard Edition Runtime Environment
- Perl
- JMX :: Jmx4Perl :: Config
- Config :: Generelt
- OSGi :: Osgish
Kommentarer ikke fundet