Die Laufzeitumgebung des CommunityMashup basiert auf Eclipse Equinox OSGI-Implementierung. Siehe dazu http://www.eclipse.org/equinox/documents/
Aufsetzen einer einfachen Standalone Equinox-Umgebung
http://www.eclipse.org/equinox/
Doku zu den minimalen Bundles: https://help.eclipse.org/oxygen/index.jsp
The minimum setup of bundles for running Equinox including the console is:
org.eclipse.osgi
org.eclipse.equinox.console
org.eclipse.equinox.launcher
org.apache.felifx.gogo.command
org.apache.felifx.gogo.runtime
org.apache.felifx.gogo.shell
For running the SSH console one also needs:
org.eclipse.equinox.console.ssh
org.apache.mina.core
org.apache.sshd.core
Diese Bundles sind in einem Unterverzeichnis /plugins des Verzeichnis /osgi abzulegen.
Des Weiteren wird ein Unterverzeichnis /configuration benötigt in dem eine config.ini zu hinterlegen ist mit dem Inhalt [die versionsnummern der jeweiligen Dateien sind hierbei nur ein Beispiel] :
# directly start this bundles (start level 6 means after file install startet bundles)
osgi.bundles=./org.apache.felix.gogo.runtime-0.10.0.jar@start,\
./org.apache.felix.gogo.command-0.12.0.jar@start,\
./org.apache.felix.gogo.shell-0.10.0.jar@start,\
./org.eclipse.equinox.console_1.0.0.v20120522-1841.jar@start,\
# set console port
osgi.console=7793
# disable built in console
#osgi.console.enable.builtin=false
# no eclipse app
eclipse.ignoreApp=true
# do not shutdown osgi
osgi.noShutdown=true
# set http port
org.osgi.service.http.port=8093
Sollte jetty verwendet werden muss dieses ebenfalls in dem config.ini file initialisiert werden und hinzugefügt werden :
./org.eclipse.equinox.http.jetty_3.0.0.v20120522-1841.jar@5:\start,\
# set jetty log level
org.eclipse.jetty.LEVEL=INFO
Wenn der Felix fileinstall service genutzt werden soll ist dieser ebenfalls zu initialisieren mit :
./org.eclipse.equinox.console_1.0.0.v20120522-1841.jar@start,\
../org.apache.felix.fileinstall-3.2.4.jar@start,\
Sowie :
# no initial delay for file install to have bundles ready for manual start
felix.fileinstall.noInitialDelay=true
# felix file install watch directories
felix.fileinstall.dir=./plugins
# start bundles loaded with fileinstall at level 2
felix.fileinstall.start.level=2
Des Weiteren muss ebenfalls ein filter eingefügt werden mit :
# dont monitor bundles that are started via osgi.bundles property
felix.fileinstall.filter=^(?!org.apache.felix.fileinstall|org.eclipse.equinox.console|org.sociotech.communitymashup.log.SLF4JLoggerBridgeLogListener|org.apache.felix.gogo|org.sociotech.communitymashup.mashup.ConfigurableMashupService|org.eclipse.equinox.http.jetty|org.eclipse.osgi_3).*
Dies ist später für das community mashup wichtig.
Für den einfachen Start der Umgebung sind shell skripte ratsam. Diese sind
cleanup.sh mit dem Inhalt
rm -rf workspace
rm -rf configuration/org.eclipse.*
rm -rf log/*.log
rm -rf configuration/*.log
start.sh mit dem Inhalt
#!/bin/bash
java -jar plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar &
tel.sh mit dem Inhalt
#!/bin/sh
telnet localhost 7793
Ist dies geschehen kann das Framework mit
./cleanup.sh
./start.sh
./tel.sh
gestartet werden. Sollte ./tel.sh zuerst fehlschlagen ist es erneut auszuführen und sollte beim zweiten Versuch funktionieren.
Das prompt g! zeigt an, dass die OSGI Konsole geladen ist und genutzt werden kann. Mit help können alle Befehle angezeigt werden.
Die nützlichsten sind hierbei :
ss soc um den Status aller community mashup pakete anzuzeigen
install um ein Paket zu installieren, der zusatz -start kann genutzt werden um direkt nach Installation das Paket zu starten
start um ein Paket zu starten, hierbei ist die ID des Pakets notwendig, diese kann nach installation angegeben oder kann durch ss soc oder status eingesehen werden
stop um ein Paket zu stoppen
shutdown um die OSGi Umgebung zu schließen
Installieren des Community Mashups
Die Pakete des Community Mashups können mittels der OSGi Konsole installiert und gestartet werden. Um zu garantieren, dass diese Pakete zusammen mit dem Framework gestartet werden ist der config.ini noch hinzuzufügen :
./org.eclipse.equinox.console_1.0.0.v20120522-1841.jar@start,\
../org.apache.felix.fileinstall-3.2.4.jar@start,\
./org.sociotech.communitymashup.log.SLF4JLoggerBridgeLogListener_0.0.1.jar@4\:start,\
./org.sociotech.communitymashup.mashup.ConfigurableMashupService_0.0.1.jar@6\:start
# set communitymashup directories
org.sociotech.communitymashup.configuration.file=configuration.xml
org.sociotech.communitymashup.configuration.workingdirectory=/var/www/vhosts/researchdb.communitymashup.net/workingdirectory/
# set loginradius properties
org.sociotech.communitymashup.configuration.loginradius.apikey=069d7967-1f89-4544-a99c-462f97d8b659
org.sociotech.communitymashup.configuration.loginradius.apisecret=0142a067-4152-458c-adbc-da31600886de
# set logback configuration file
logback.configurationFile=configuration/logger_configuration.xml
Ist dies geschehen sollte damit auch bei Start des Frameworks alle Bundles des Mashups zusammen gestartet werden und funktionieren.