Looking for osgi Keywords? Try Ask4Keywords

osgiEmpezando con osgi


Observaciones

OSGi es una especificación de sistema de módulo dinámico para la JVM. Tiene especificaciones con diferentes versiones y audiencias. También hay múltiples implementaciones:

Eclipse desde su versión 3 se basa en OSGi. NetBeans también es capaz de manejar módulos OSGi desde 6.9 . El portal Liferay también comenzó a usar OSGi como su base de modularización desde su versión 7.

Versiones

Versión Fecha de lanzamiento
SGR1 2000-05-01
SPR2 2001-10-01
SR3 2003-03-01
SR4 2005-11-01
SR4.1 2007-05-01
SR4.2 Core 2009-09-01
SR4.2 Compedium 2009-09-01
SR4.2 Enterprise 2010-03-01
SR4.3 Core 2011-04-01
SR4.3 Compedio 2012-05-01
SR4.3 Residental 2012-05-01
SR5 Core 2012-06-01
SR5 Enterprise 2012-06-01
SR6 Core 2014-06-01
Compendio SR6 2014-06-01
SR6 Enterprise 2015-08-01
SR6 Residental 2015-08-01

Nota: https://www.osgi.org/developer/specifications/ no menciona las fechas exactas, por lo que se usa el primer día del mes en la tabla.

Descarga y uso de Equinox

Descargue y extraiga el kit de inicio OSGi para su plataforma desde la página de descarga de Equinox para el lanzamiento de Neon .

Inicie el marco desde la rt/plugins folder con el siguiente comando (o el ejecutable rt su plataforma desde la carpeta rt ):

rt/plugins$ java -jar org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar -console
osgi>
 

En el indicador de la consola OSGi, puede administrar los paquetes, por ejemplo:

osgi>ss
"Framework is launched."

id      State       Bundle
0       ACTIVE      org.eclipse.osgi_3.11.0.v20160603-1336
                    Fragments=1
1       RESOLVED    org.eclipse.osgi.compatibility.state_1.0.200.v20160504-1419
                    Master=0
2       RESOLVED    org.apache.commons.codec_1.6.0.v201305230611
3       RESOLVED    org.apache.commons.logging_1.1.1.v201101211721
4       ACTIVE      org.apache.felix.gogo.command_0.10.0.v201209301215
5       ACTIVE      org.apache.felix.gogo.runtime_0.10.0.v201209301036
6       ACTIVE      org.apache.felix.gogo.shell_0.10.0.v201212101605
7       RESOLVED    org.apache.httpcomponents.httpclient_4.3.6.v201511171540
8       RESOLVED    org.apache.httpcomponents.httpcore_4.3.3.v201411290715
9       STARTING    org.eclipse.core.jobs_3.8.0.v20160509-0411
10      STARTING    org.eclipse.ecf_3.8.0.v20160405-1820
                    Fragments=17
11      STARTING    org.eclipse.ecf.filetransfer_5.0.0.v20160405-1820
12      STARTING    org.eclipse.ecf.identity_3.7.0.v20160405-1820
13      STARTING    org.eclipse.ecf.provider.filetransfer_3.2.200.v20160405-1820
                    Fragments=16
14      STARTING    org.eclipse.ecf.provider.filetransfer.httpclient4_1.1.100.v20160405-1820
                    Fragments=15
15      RESOLVED    org.eclipse.ecf.provider.filetransfer.httpclient4.ssl_1.1.0.v20160405-1820
                    Master=14
16      RESOLVED    org.eclipse.ecf.provider.filetransfer.ssl_1.0.0.v20160405-1820
                    Master=13
17      RESOLVED    org.eclipse.ecf.ssl_1.2.0.v20160405-1820
                    Master=10
18      STARTING    org.eclipse.equinox.app_1.3.400.v20150715-1528
19      ACTIVE      org.eclipse.equinox.common_3.8.0.v20160509-1230
20      STARTING    org.eclipse.equinox.concurrent_1.1.0.v20130327-1442
21      ACTIVE      org.eclipse.equinox.console_1.1.200.v20150929-1405
22      RESOLVED    org.eclipse.equinox.ds_1.4.400.v20160226-2036
23      STARTING    org.eclipse.equinox.frameworkadmin_2.0.300.v20160504-1450
24      ACTIVE      org.eclipse.equinox.frameworkadmin.equinox_1.0.700.v20160102-2223
25      RESOLVED    org.eclipse.equinox.launcher_1.3.200.v20160318-1642
                    Fragments=26
26      RESOLVED    org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.400.v20160518-1444
                    Master=25
27      STARTING    org.eclipse.equinox.p2.artifact.repository_1.1.500.v20160419-0834
28      ACTIVE      org.eclipse.equinox.p2.console_1.0.500.v20160504-1450
29      ACTIVE      org.eclipse.equinox.p2.core_2.4.100.v20160419-0834
30      STARTING    org.eclipse.equinox.p2.director_2.3.300.v20160504-1450
31      STARTING    org.eclipse.equinox.p2.engine_2.4.100.v20160419-0834
32      STARTING    org.eclipse.equinox.p2.garbagecollector_1.0.300.v20160504-1450
33      RESOLVED    org.eclipse.equinox.p2.jarprocessor_1.0.500.v20160504-1450
34      ACTIVE      org.eclipse.equinox.p2.metadata_2.3.100.v20160427-2220
35      STARTING    org.eclipse.equinox.p2.metadata.repository_1.2.300.v20160419-0834
36      STARTING    org.eclipse.equinox.p2.operations_2.4.200.v20160504-1450
37      ACTIVE      org.eclipse.equinox.p2.repository_2.3.200.v20160421-0324
38      STARTING    org.eclipse.equinox.p2.touchpoint.eclipse_2.1.400.v20160419-0834
39      STARTING    org.eclipse.equinox.p2.touchpoint.natives_1.2.100.v20160419-0834
40      STARTING    org.eclipse.equinox.p2.transport.ecf_1.1.200.v20160606-1311
41      STARTING    org.eclipse.equinox.preferences_3.6.0.v20160120-1756
42      ACTIVE      org.eclipse.equinox.registry_3.6.100.v20160223-2218
43      STARTING    org.eclipse.equinox.security_1.2.200.v20150715-1528
                    Fragments=44
44      RESOLVED    org.eclipse.equinox.security.win32.x86_64_1.0.100.v20130327-1442
                    Master=43
45      STARTING    org.eclipse.equinox.simpleconfigurator_1.1.200.v20160504-1450
46      ACTIVE      org.eclipse.equinox.simpleconfigurator.manipulator_2.0.200.v20160504-1450
47      STARTING    org.eclipse.equinox.util_1.0.500.v20130404-1337
48      RESOLVED    org.eclipse.osgi.services_3.5.100.v20160504-1419
49      RESOLVED    org.sat4j.core_2.3.5.v201308161310
50      RESOLVED    org.sat4j.pb_2.3.5.v201404071733
51      RESOLVED    org.tukaani.xz_1.3.0.v201308270617
 

Utilizando apache felix

Descargue Apache Felix Framework Distribution y extráigalo en un directorio:

$ tar xf org.apache.felix.main.distribution-5.4.0.tar.gz
$ cd felix-framework-5.4.0

Y luego inicie el framework con el siguiente comando:

$ java -jar bin/felix.jar
____________________________
Welcome to Apache Felix Gogo
    
g!

De forma predeterminada, Félix usa Apache Felix Gogo como su shell interactivo. El símbolo del sistema predeterminado, g! , se muestra arriba.

El shell Gogo proporciona algunos comandos integrados simples para interactuar con el entorno de tiempo de ejecución de Gogo, así como con el propio marco OSGi. Escriba el comando de help en la g! preguntar para ver una lista de comandos incorporados.

Un ejemplo es el comando lb (abreviatura de paquetes de lista ) que genera una lista de los paquetes OSGi que están instalados actualmente en el marco:

g! lb
START LEVEL 1
   ID|State      |Level|Name
    0|Active     |    0|System Bundle (5.4.0)|5.4.0
    1|Active     |    1|Apache Felix Bundle Repository (2.0.6)|2.0.6
    2|Active     |    1|Apache Felix Gogo Command (0.16.0)|0.16.0
    3|Active     |    1|Apache Felix Gogo Runtime (0.16.2)|0.16.2
    4|Active     |    1|Apache Felix Gogo Shell (0.10.0)|0.10.0