hilgeru
2018-02-27 6043314d5e9787504321829bb8138d55a74ce07c
commit | author | age
325783 1 # radiozentrale
U 2
d51bca 3 Eine Webanwendung zum Verwalten von Webradiosendern, Abspielgeräten und zum Spielen von Radio-Livestreams über die betreffenden Abspielgeräte.
325783 4
U 5 ## Im Bau
6
819494 7 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.
U 8
9 ## Voraussetzungen
10
11 Die radiozentrale erfordert zur Ausführung
12
13 + eine Java-Ablaufumgebung ([JRE](https://de.wikipedia.org/wiki/Java-Laufzeitumgebung))
14 + einen Server wie beispielsweise  [Tomcat](https://de.wikipedia.org/wiki/Apache_Tomcat)
15 + eine [Derby-Datenbank](https://de.wikipedia.org/wiki/Apache_Derby)
16
d51bca 17 Eine komplette Ablaufumgebung für die radiozentrale steht zum Beispiel mit der [WebBox](/dev/Software/WebBox/WebBox) bereit.
U 18
19 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. 
819494 20
U 21 ### Bedienoberfläche
22
23 Die Bedienoberfläche setzt auf eine für die Schnittstelle der radiozentrale angepasste Version des [radio-ui](/gitblit/docs/web!radio-ui.git) auf.
24
95695a 25 ## Webanwendung herstellen
H 26
604331 27 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.
95695a 28
604331 29 Desweiteren werden die folgenden Klassenbibliotheken benoetigt
95695a 30
H 31 ```
32 Bibliothek            Datei(en)                       Ablageort lokal
33 ----------            ---------                       ---------------
34 Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
604331 35 derbyclient ......... lib/derbyclient.jar ........... $CATALINA_BASE
95695a 36 XStream ............. xstream-1.4.7.jar ............. $JLIB
H 37 Jettison ............ jettison-1.3.3.jar ............ $JLIB
38 Transit ............. Transit.jar ................... $JLIB
39 BaseLink ............ BaseLink.jar .................. $JLIB
40 ```
604331 41 Diese sind an folgenden Orten frei erhaeltlich:
95695a 42
H 43 - [Apache Tomcat](http://tomcat.apache.org)
44 - [XStream](https://github.com/codehaus/xstream)
45 - [Jettison](https://github.com/codehaus/jettison)
46 - [Transit](/gitblit/docs/Transit.git)
47 - [BaseLink](/gitblit/docs/BaseLink.git)
48
604331 49 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.
95695a 50
604331 51 Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgefuehrt (Beispiel fuer Linux):
95695a 52
H 53 ```
54 cd $RZ
55 mkdir dist
56 mkdir build
57 cp -r web/* build
58 cd build/WEB-INF
59 mkdir classes
60 mkdir lib
61 cd ../..
62 cp $JLIB/* build/WEB-INF/lib
63
64 $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
65
66 cp src/java/logging.properties build/WEB-INF/classes
67 $JDK/bin/jar -cf dist/rz.war -C build .
68 rm -r build
69 ```
70
604331 71 Das Webarchiv der Dateiverwaltung liegt anschliessend als `$RZS/dist/rz.war` fertig zum Deployment bereit.
95695a 72
H 73 ### Distributionsalternative
74
75 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.
76
77 ### Datenbanktreiber
78
79 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. 
80
81 ## Abhängigkeiten
82
83 Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll:
84 (die nachfolgende Liste noch aktualisieren für das radio.ui)
85
86 ```
87 $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6
88 $CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1
89 $CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0
90 $CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0
91 $CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2
92 $CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4
93 $CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3
94 ```
95
96 `$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:
97 (die nachfolgende Liste noch aktualisieren für das radio.ui)
98
99 - [Bootstrap](http://getbootstrap.com)
100 - [jQuery](http://jquery.com)
101 - [Mustache](https://github.com/janl/mustache.js)
102 - [Font Awesome](http://fontawesome.io/)
103 - [Codemirror](https://codemirror.net)
104 - [TinyMCE](https://tinymce.com)
105 - [Fancybox](http://fancyapps.com/fancybox/3/)
106
107 ## Lizenz
108
109 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.