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.