hilgeru
2018-02-27 95695a003402149799c33a29fa571251d59573b0
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
25 ## Installation
26
27 Hier noch die Installation beschreiben
28
29 ## Herstellung aus dem Quellcode
30
95695a 31 ## Webanwendung herstellen
H 32
33 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.
34
35 Desweiteren werden die folgenden Klassenbibliotheken benötigt
36
37 ```
38 Bibliothek            Datei(en)                       Ablageort lokal
39 ----------            ---------                       ---------------
40 Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
41 XStream ............. xstream-1.4.7.jar ............. $JLIB
42 Jettison ............ jettison-1.3.3.jar ............ $JLIB
43 Transit ............. Transit.jar ................... $JLIB
44 BaseLink ............ BaseLink.jar .................. $JLIB
45 derbyclient ......... derbyclient.jar ............... $JLIB
46 ```
47 Diese sind an folgenden Orten frei erhältlich:
48
49 - [Apache Tomcat](http://tomcat.apache.org)
50 - [XStream](https://github.com/codehaus/xstream)
51 - [Jettison](https://github.com/codehaus/jettison)
52 - [Transit](/gitblit/docs/Transit.git)
53 - [BaseLink](/gitblit/docs/BaseLink.git)
54
55 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.
56
57 Zur Herstellung der Dateiverwaltung werden die folgenden Kommandos ausgeführt (Beispiel für Linux):
58
59 ```
60 cd $RZ
61 mkdir dist
62 mkdir build
63 cp -r web/* build
64 cd build/WEB-INF
65 mkdir classes
66 mkdir lib
67 cd ../..
68 cp $JLIB/* build/WEB-INF/lib
69
70 $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
71
72 cp src/java/logging.properties build/WEB-INF/classes
73 $JDK/bin/jar -cf dist/rz.war -C build .
74 rm -r build
75 ```
76
77 Das Webarchiv der Dateiverwaltung liegt anschließend als `$RZS/dist/rz.war` fertig zum Deployment bereit.
78
79 ### Distributionsalternative
80
81 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.
82
83 ### Datenbanktreiber
84
85 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. 
86
87 ## Abhängigkeiten
88
89 Die Dateiverwaltung erfordert die folgenden Bestandteile auf der Instanz von Tomcat, auf der sie ausgeführt werden soll:
90 (die nachfolgende Liste noch aktualisieren für das radio.ui)
91
92 ```
93 $CATALINA_BASE/webapps/jslib/bootstrap ............ mindestens in Version 4.0 alpha 6
94 $CATALINA_BASE/webapps/jslib/jquery ............... mindestens in Version 3.2.1
95 $CATALINA_BASE/webapps/jslib/mustache ............. mindestens in Version 2.3.0
96 $CATALINA_BASE/webapps/jslib/font-awesome ......... mindestens in Version 4.4.0
97 $CATALINA_BASE/webapps/jslib/codemirror ........... mindestens in Version 5.24.2
98 $CATALINA_BASE/webapps/jslib/tinymce .............. mindestens in Version 4.3.4
99 $CATALINA_BASE/webapps/jslib/fancybox ............. mindestens in Version 3
100 ```
101
102 `$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:
103 (die nachfolgende Liste noch aktualisieren für das radio.ui)
104
105 - [Bootstrap](http://getbootstrap.com)
106 - [jQuery](http://jquery.com)
107 - [Mustache](https://github.com/janl/mustache.js)
108 - [Font Awesome](http://fontawesome.io/)
109 - [Codemirror](https://codemirror.net)
110 - [TinyMCE](https://tinymce.com)
111 - [Fancybox](http://fancyapps.com/fancybox/3/)
112
113 ## Lizenz
114
115 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.