osgi Tutorial
Empezando con osgi
Buscar..
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