ulrich
2018-03-24 0a9af0cd78302f9439dfe9276fce4817d0743fce
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.
c00150 4
U 5 ### Bedienoberfläche
6
7 Die Bedienoberfläche setzt auf eine an die radiozentrale angepasste Version des [radio-ui](/gitblit/docs/web!radio-ui.git) auf.
8
819494 9 ## Voraussetzungen
U 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
1214dd 17 Eine komplette Ablaufumgebung für die radiozentrale steht zum Beispiel mit der [WebBox](/data/ulrich/prg/webbox/) bereit.
d51bca 18
1214dd 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](/data/ulrich/artikel/2013/05/tomcat-auf-linux.htmi) und [Derby Network Server](/data/ulrich/artikel/2018/02/derby-server-artikel.htmi) beschreiben. 
819494 20
95695a 21 ## Webanwendung herstellen
H 22
604331 23 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 24
604331 25 Desweiteren werden die folgenden Klassenbibliotheken benoetigt
95695a 26
H 27 ```
28 Bibliothek            Datei(en)                       Ablageort lokal
29 ----------            ---------                       ---------------
30 Tomcat .............. lib/servlet-api.jar ........... $CATALINA_HOME
604331 31 derbyclient ......... lib/derbyclient.jar ........... $CATALINA_BASE
95695a 32 XStream ............. xstream-1.4.7.jar ............. $JLIB
H 33 Jettison ............ jettison-1.3.3.jar ............ $JLIB
34 Transit ............. Transit.jar ................... $JLIB
35 BaseLink ............ BaseLink.jar .................. $JLIB
36 ```
604331 37 Diese sind an folgenden Orten frei erhaeltlich:
95695a 38
H 39 - [Apache Tomcat](http://tomcat.apache.org)
e0751d 40 - [Apache Derby](http://db.apache.org/derby)
95695a 41 - [XStream](https://github.com/codehaus/xstream)
H 42 - [Jettison](https://github.com/codehaus/jettison)
43 - [Transit](/gitblit/docs/Transit.git)
44 - [BaseLink](/gitblit/docs/BaseLink.git)
45
604331 46 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 47
c00150 48 Zur Herstellung der radiozentrale werden die folgenden Kommandos ausgefuehrt (Beispiel fuer Linux):
95695a 49
H 50 ```
51 cd $RZ
52 mkdir dist
53 mkdir build
54 cp -r web/* build
55 cd build/WEB-INF
56 mkdir classes
57 mkdir lib
58 cd ../..
59 cp $JLIB/* build/WEB-INF/lib
60
61 $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
62
63 cp src/java/logging.properties build/WEB-INF/classes
64 $JDK/bin/jar -cf dist/rz.war -C build .
65 rm -r build
66 ```
67
c00150 68 Das Webarchiv der rediozentrale liegt anschliessend als `$RZS/dist/rz.war` fertig zum Deployment bereit.
95695a 69
H 70 ### Distributionsalternative
71
c00150 72 Das Kommando `cp $JLIB/* build/WEB-INF/lib` kann auch weggelassen werden, dann sind die Klassenbibliotheken nicht Teil des Webarchivs der rediozentrale. In diesem Fall muss stattdessen der Inhalt von `$JLIB` nach `$CATALINA_BASE/lib` kopiert werden.
95695a 73
H 74 ### Datenbanktreiber
75
76 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. 
77
9af4b1 78 ### Abhaengigkeiten der Bedienoberflaeche
95695a 79
c00150 80 Die radiozentrale erfordert zudem Javascript-Bibliotheken und Zeichensaetze, die vom [radio-ui](/gitblit/docs/web!radio-ui.git) benoetigt werden  (siehe Beschreibung dort). Diese Bestandteile muessen auf dem Server hinterlegt werden, auf dem die radiozentrale ausgefuehrt werden soll.
95695a 81
H 82 ## Lizenz
83
84 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.