ulrich
2018-03-24 c00150150fa44b838fcde444e99a7e12379827d2
README.md
@@ -1,10 +1,10 @@
# 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
### Bedienoberfläche
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.
Die Bedienoberfläche setzt auf eine an die radiozentrale angepasste Version des [radio-ui](/gitblit/docs/web!radio-ui.git) auf.
## Voraussetzungen
@@ -14,16 +14,71 @@
+ einen Server wie beispielsweise  [Tomcat](https://de.wikipedia.org/wiki/Apache_Tomcat)
+ eine [Derby-Datenbank](https://de.wikipedia.org/wiki/Apache_Derby)
Eine fertig ausführbare Ablaufumgebung für die radiozentrale steht zum Beispiel mit der [WebBox](https://uhilger.de/dev/Software/WebBox/WebBox) bereit.
Eine komplette Ablaufumgebung für die radiozentrale steht zum Beispiel mit der [WebBox](/data/ulrich/prg/webbox/) bereit.
### Bedienoberfläche
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.
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
## Installation
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.
Hier noch die Installation beschreiben
Desweiteren werden die folgenden Klassenbibliotheken benoetigt
## Herstellung aus dem Quellcode
```
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:
Hier noch die Herstellung aus dem Quellcode beschreiben
- [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 radiozentrale 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 rediozentrale 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 rediozentrale. 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 der Bedienoberflaeche
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.
## 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.