# radiozentrale Eine Webanwendung zum Verwalten von Webradiosendern, Abspielgeräten und zum Spielen von Radio-Livestreams über die betreffenden Abspielgeräte. ## Im Bau Diese Anwendung ist noch im Bau. Der neueste lauffähige Stand erscheint demnächst als Prototyp und wird dann von hier aus per Verknüpfung zugänglich. ## Voraussetzungen Die radiozentrale erfordert zur Ausführung + eine Java-Ablaufumgebung ([JRE](https://de.wikipedia.org/wiki/Java-Laufzeitumgebung)) + einen Server wie beispielsweise [Tomcat](https://de.wikipedia.org/wiki/Apache_Tomcat) + eine [Derby-Datenbank](https://de.wikipedia.org/wiki/Apache_Derby) Eine komplette Ablaufumgebung für die radiozentrale steht zum Beispiel mit der [WebBox](/dev/Software/WebBox/WebBox) bereit. Anstelle der WebBox können Java, Tomcat und Derby auch getrennt voneinander installiert und ausgeführt werden, wie es z.B. die Beiträge [Tomcat auf Linux](/dev/Tipps/Tomcat%20auf%20Ubuntu) und [Datenbankserver im Handumdrehen](/dev/Tipps/tipp-derby-network-server) beschreiben. ### Bedienoberfläche Die Bedienoberfläche setzt auf eine für die Schnittstelle der radiozentrale angepasste Version des [radio-ui](/gitblit/docs/web!radio-ui.git) auf. ## Installation Hier noch die Installation beschreiben ## Herstellung aus dem Quellcode ## Webanwendung herstellen Zum Herstellen der Webanwendung wird ein Java Development Kit (JDK) benötigt, wie es z.B. von [Azul](http://azul.com) oder dem [OpenJDK-Projekt](http://openjdk.java.net/) frei erhältlich ist. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits `$JDK` genannt. Desweiteren werden die folgenden Klassenbibliotheken benötigt ``` Bibliothek Datei(en) Ablageort lokal ---------- --------- --------------- Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME XStream ............. xstream-1.4.7.jar ............. $JLIB Jettison ............ jettison-1.3.3.jar ............ $JLIB Transit ............. Transit.jar ................... $JLIB BaseLink ............ BaseLink.jar .................. $JLIB derbyclient ......... derbyclient.jar ............... $JLIB ``` Diese sind an folgenden Orten frei erhältlich: - [Apache Tomcat](http://tomcat.apache.org) - [XStream](https://github.com/codehaus/xstream) - [Jettison](https://github.com/codehaus/jettison) - [Transit](/gitblit/docs/Transit.git) - [BaseLink](/gitblit/docs/BaseLink.git) Nach Beschaffung des JDK und der oben angegebenen Klassenbibliotheken wird der Quellcode aus diesem Git-Repository an einen frei wählbaren lokalen Ablageort [heruntergeladen](http://uhilger.de/gitblit/zip/?r=radiozentrale.git&h=master&format=zip) und entpackt. In der hier folgenden weiteren Beschreibung wird das so entstandene Verzeichnis `radiozentrale-master` einschließlich des absoluten Pfades dorthin `$RZ` genannt. Ferner wird angenommen, dass die oben aufgeführten Klassenbibliotheken lokal an Orten abgelegt sind, deren Pfade mit den Platzhaltern `$JLIB` und `$CATALINA_HOME` gemeint sind. Anstelle der Platzhalter in den folgenden Kommandos muss also der absolute Pfad des lokalen Ablageortes eingesetzt werden. Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux): ``` cd $RZ mkdir dist mkdir build cp -r web/* build cd build/WEB-INF mkdir classes mkdir lib cd ../.. cp $JLIB/* build/WEB-INF/lib $JDK/bin/javac -classpath $JLIB/jettison-1.3.3.jar:$JLIB/Transit.jar:$JLIB/BaseLink.jar:$JLIB/xstream-1.4.7.jar:$CATALINA_HOME/lib/servlet-api.jar -d ./build/WEB-INF/classes src/java/de/uhilger/radiozentrale/api/*.java src/java/de/uhilger/radiozentrale/web/*.java src/java/de/uhilger/radiozentrale/daten/*.java cp src/java/logging.properties build/WEB-INF/classes $JDK/bin/jar -cf dist/rz.war -C build . rm -r build ``` Das Webarchiv der Dateiverwaltung liegt anschließend als `$RZS/dist/rz.war` fertig zum Deployment bereit. ### Distributionsalternative Das Kommando `cp $JLIB/* build/WEB-INF/lib` kann auch weggelassen werden, dann sind die Klassenbibliotheken nicht Teil des Webarchivs der Dateiverwaltung. In diesem Fall muss stattdessen der Inhalt von `$JLIB` nach `$CATALINA_BASE/lib` kopiert werden. ### Datenbanktreiber Die radiozentrale erfordert den Derby Client Datenbanktreiber (derbyclient.jar). Der Treiber ist nicht im Verteilpaket enthalten und sollte stattdessen im Ordner `$CATALINA_BASE/lib` von Tomcat hinterlegt sein. ## Abhängigkeiten Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll: (die nachfolgende Liste noch aktualisieren für das radio.ui) ``` $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6 $CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1 $CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0 $CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0 $CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2 $CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4 $CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3 ``` `$CATALINA_BASE` meint das in der der Datei [RUNNING.txt](http://tomcat.apache.org/tomcat-8.5-doc/RUNNING.txt) der Tomcat-Dokumentation so bezeichnete Verzeichnis. Nachfolgend die Quellen, von denen die obigen Abhängigkeiten bezogen werden können: (die nachfolgende Liste noch aktualisieren für das radio.ui) - [Bootstrap](http://getbootstrap.com) - [jQuery](http://jquery.com) - [Mustache](https://github.com/janl/mustache.js) - [Font Awesome](http://fontawesome.io/) - [Codemirror](https://codemirror.net) - [TinyMCE](https://tinymce.com) - [Fancybox](http://fancyapps.com/fancybox/3/) ## Lizenz Die Radiozentrale wird zu den Bedingungen der [GNU Affero General Public License](/gitblit/doc/radiozentrale.git/master/web!agpl.txt) bereitgestellt. Die von der Radiozentrale verwendeten Komponenten unterliegen zum Teil anderen Lizenzen. Deren Nutzungsbedingungen sind an den Quellen der Komponenten angegeben.