From e0751d6565d01c31ea47f6e84a845f2ff3d48e79 Mon Sep 17 00:00:00 2001 From: Ulrich <undisclosed> Date: Tue, 27 Feb 2018 15:35:26 +0000 Subject: [PATCH] Doku ergaenzt --- README.md | 107 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 105 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 082e26a..9926698 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,110 @@ # radiozentrale -Eine Webanwendung zum Abspielen von Webradiosendern auf unterschiedlichen Geräten. +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 zugänglich. +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. + +## Webanwendung herstellen + +Zum Herstellen der Webanwendung wird ein Java Development Kit (JDK) benoetigt, wie es z.B. von [Azul](http://azul.com) oder dem [OpenJDK-Projekt](http://openjdk.java.net/) frei erhaeltlich ist. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits `$JDK` genannt. + +Desweiteren werden die folgenden Klassenbibliotheken benoetigt + +``` +Bibliothek Datei(en) Ablageort lokal +---------- --------- --------------- +Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME +derbyclient ......... lib/derbyclient.jar ........... $CATALINA_BASE +XStream ............. xstream-1.4.7.jar ............. $JLIB +Jettison ............ jettison-1.3.3.jar ............ $JLIB +Transit ............. Transit.jar ................... $JLIB +BaseLink ............ BaseLink.jar .................. $JLIB +``` +Diese sind an folgenden Orten frei erhaeltlich: + +- [Apache Tomcat](http://tomcat.apache.org) +- [Apache Derby](http://db.apache.org/derby) +- [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 waehlbaren 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` einschliesslich des absoluten Pfades dorthin `$RZ` genannt. Ferner wird angenommen, dass die oben aufgefuehrten 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 ausgefuehrt (Beispiel fuer 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 anschliessend 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. + +## Abhaengigkeiten + +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. \ No newline at end of file -- Gitblit v1.9.3