From e27ab178fa3a2f967823c1bfc81951086e15b642 Mon Sep 17 00:00:00 2001
From: undisclosed
Date: Sun, 08 Jan 2023 16:51:38 +0000
Subject: [PATCH] Package-Namen zurueckgesetzt, weitere Anpassungen nachgezogen, Readme erneuert.

---
 src/de/uhilger/calypso/actor/ShellActor.java      |    4 
 src/de/uhilger/calypso/App.java                   |    4 
 src/de/uhilger/calypso/AppProperties.java         |    2 
 src/de/uhilger/calypso/MeldeThread.java           |    4 
 src/de/uhilger/calypso/ProzessLauscher.java       |    2 
 src/de/uhilger/calypso/Rueckmelder.java           |    4 
 src/de/uhilger/calypso/actor/PlayActor.java       |    8 +-
 src/de/uhilger/calypso/http/HttpApi.java          |    4 
 src/de/uhilger/calypso/actor/StopServerActor.java |    2 
 src/de/uhilger/calypso/http/ApiHandler.java       |   19 +++-
 README.md                                         |  143 -----------------------------------
 src/de/uhilger/calypso/http/Server.java           |    6 
 12 files changed, 33 insertions(+), 169 deletions(-)

diff --git a/README.md b/README.md
index 8dc96e6..aaa4fc2 100644
--- a/README.md
+++ b/README.md
@@ -41,7 +41,7 @@
 mkdir classes
 mkdir dist
 
-$JDK/bin/javac -d classes src/de/uhilger/calypso/*.java src/de/uhilger/calypso/handler/*.java
+$JDK/bin/javac -d classes src/de/uhilger/calypso/*.java src/de/uhilger/calypso/actor/*.java  src/de/uhilger/calypso/http/*.java
 
 $JDK/bin/jar -cf dist/calypso.jar -C classes .
 rm -r classes
@@ -49,144 +49,3 @@
 
 Das fertig verwendbare Programm liegt anschließend unter `$CALYPSO/dist/calypso.jar`.
 
-## Media-Quellen einrichen
-
-Calypso kann in zwei Betriebsarten gestartet werden:
-
-1. NFS-Client
-1. HTTP-Client
-
-### NFS-Client
-
-Mit dem Parameter `nfs-prefix` spielt Calypso Media-Inhalte aus Quellen ab, die über das Network File System (NFS) eingebunden sind. 
-
-```
-java -jar calypso.jar nfs-prefix="/media/mc" port=9090
-```
-
-In dieser Betriebsart wird dem Inhalt, der beim Abspielen über den Parameter `title` angegeben wird, der Präfix aus dem Parameter `nfs-prefix` vorangestellt. Wird Calypso beispielsweise mit folgendem URL aufgerufen:
-
-```
-http://rpi4-wz:9090/calypso/play?title=/Filme/H/heat.m4v
-```
-
-wird die Datei `/media/mc/Filme/H/heat.m4v` abgespielt. 
-
-#### Betriebsart NFS-Client einrichten
-
-Zur Verwendung Calypsos in der Betriebsart NFS-Client muss der Raspberry Pi die Softwarepakete für den NFS-Client installiert haben. Zudem muss auf dem Raspberry Pi in der Datei `/etc/fstab` ein Eintrag gemacht werden, der die entsprechende Quelle angibt, z.B.
-
-```
-mein-media-server:/media/extssd/mc /media/mc nfs rw 0 0
-```
-
-Welche Quellen für einen solchen Eintrag verfügbar sind lässt sich auf dem Raspberry Pi mit folgendem Kommando sehen.
-
-```
-showmount -e mein-media-server
-```
-
-Die Maschine `mein-media-server` in den obigen Beispielen muss dafür als NFS-Server eingerichtet sein und Inhalte entsprechend via NFS freigeben.
-
-### HTTP-Client
-
-Das folgende Kommando startet Calypso als HTTP-Client.
-
-```
-java -jar calypso.jar port=9090
-```
-
-
-Wird der Parameter `nfs-prefix` beim Start Calypsos weggelassen, werden im Parameter `titel` Uniform Resource Locators (URLs) zu Media-Quellen erwartet wie z.B. in
-
-```
-http://mein-raspi:9090/calypso/play?title=http://mein-media-server:8080/tango/media/Filme/H/heat.m4v
-```
-
-Für das Abspielen über HTTP muss der Raspberry Pi nicht als NFS-Client eingerichtet werden. Der Media-Server muss dann das Streaming über HTTP implementieren.
-
-## Steuerbefehle
-
-Die folgenden Service-Endpunkte werden von Calypso bereitgestellt.
-
-/calypso/play +
-/calypso/seek +
-/calypso/pause +
-/calypso/stop +
-/calypso/ping +
-/calypso/server/stop
-
-### play
-
-Text
-
-### seek
-
-Text
-
-### pause
-
-Test
-
-### stop
-
-Text
-
-### ping
-
-Text
-
-### server/stop
-
-Text
-
-## Calypso als Dienst einrichten
-
-Das Verteilpaket Calypsos enthält eine Beispieldatei namens `calypso.service`. Diese verweist auf das ebenfalls im Verteilpaket enthaltene Beispiel-Startskript namens `start`. Nach Anpassung der Pfade in `calypso.service` kann die Datei wie in folgendem Beispiel in das passende Systemverzeichnis des Raspberry Pi kopiert werden.
-
-```
-cd /home/pi/prg/calypso
-sudo cp calypso.service /etc/systemd/system/calypso.service
-```
-
-### Dienst starten
-
-Mit folgendem Kommando kann der Dienst probehalber gestartet werden.
-
-```
-sudo systemctl start calypso.service
-```
-
-### Dienst stoppen
-
-Der laufende Dienst kann mit folgendem Signal via HTTP veranlasst werden, sich zu beenden.
-
-```
-http://mein-raspi:9090/calypso/server/stop
-```
-
-Ueber systemd kann stattdessen der Prozess wie folgt 'hart' beendet werden.
-
-```
-sudo systemctl stop calypso.service
-```
-
-### Dienst dauerhaft aktivieren
-
-Der folgende Befehl bewirkt, dass der Dienst nach einem Neustart des Raspberry Pi automatisch startet.
-
-```
-sudo systemctl enable calypso.service
-```
-
-### Dienst deaktivieren
-
-```
-sudo systemctl disable calypso.service
-```
-
-### Status des Dienstes pruefen
-
-```
-sudo systemctl status calypso
-```
diff --git a/src/de/uhilger/calypso/neu/App.java b/src/de/uhilger/calypso/App.java
similarity index 94%
rename from src/de/uhilger/calypso/neu/App.java
rename to src/de/uhilger/calypso/App.java
index 602707f..3c0b07d 100644
--- a/src/de/uhilger/calypso/neu/App.java
+++ b/src/de/uhilger/calypso/App.java
@@ -16,9 +16,9 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu;
+package de.uhilger.calypso;
 
-import de.uhilger.calypso.neu.http.Server;
+import de.uhilger.calypso.http.Server;
 import java.util.HashMap;
 
 /**
diff --git a/src/de/uhilger/calypso/neu/AppProperties.java b/src/de/uhilger/calypso/AppProperties.java
similarity index 98%
rename from src/de/uhilger/calypso/neu/AppProperties.java
rename to src/de/uhilger/calypso/AppProperties.java
index 4d32edf..064b7ae 100644
--- a/src/de/uhilger/calypso/neu/AppProperties.java
+++ b/src/de/uhilger/calypso/AppProperties.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu;
+package de.uhilger.calypso;
 
 import java.io.File;
 import java.io.FileInputStream;
diff --git a/src/de/uhilger/calypso/neu/MeldeThread.java b/src/de/uhilger/calypso/MeldeThread.java
similarity index 96%
rename from src/de/uhilger/calypso/neu/MeldeThread.java
rename to src/de/uhilger/calypso/MeldeThread.java
index 3f125e9..88376a1 100644
--- a/src/de/uhilger/calypso/neu/MeldeThread.java
+++ b/src/de/uhilger/calypso/MeldeThread.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu;
+package de.uhilger.calypso;
 
 import java.util.logging.Logger;
 import java.util.logging.Level;
@@ -53,8 +53,6 @@
     try {
       exitValue = omxplayer.waitFor();
       prozessBeendetMelden();
-      lauscher.clear();
-      lauscher = null;
     } catch(InterruptedException ex) {
       logger.log(Level.FINE, ex.getMessage(), ex);
     } finally {
diff --git a/src/de/uhilger/calypso/neu/ProzessLauscher.java b/src/de/uhilger/calypso/ProzessLauscher.java
similarity index 96%
rename from src/de/uhilger/calypso/neu/ProzessLauscher.java
rename to src/de/uhilger/calypso/ProzessLauscher.java
index 73c13b8..cb89a95 100644
--- a/src/de/uhilger/calypso/neu/ProzessLauscher.java
+++ b/src/de/uhilger/calypso/ProzessLauscher.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu;
+package de.uhilger.calypso;
 
 public interface ProzessLauscher {
   
diff --git a/src/de/uhilger/calypso/neu/Rueckmelder.java b/src/de/uhilger/calypso/Rueckmelder.java
similarity index 94%
rename from src/de/uhilger/calypso/neu/Rueckmelder.java
rename to src/de/uhilger/calypso/Rueckmelder.java
index 0f4cfe3..d059d3d 100644
--- a/src/de/uhilger/calypso/neu/Rueckmelder.java
+++ b/src/de/uhilger/calypso/Rueckmelder.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu;
+package de.uhilger.calypso;
 
 import java.io.IOException;
 import java.net.HttpURLConnection;
@@ -34,7 +34,7 @@
 
   @Override
   public void prozessBeendet(String meldeUrlStr) {
-    Logger logger = Logger.getLogger(de.uhilger.calypso.neu.http.ApiHandler.class.getName());
+    Logger logger = Logger.getLogger(de.uhilger.calypso.http.ApiHandler.class.getName());
     logger.log(Level.INFO,
             "Abspielen beendet, sende Meldung an {0}.",
             new Object[]{meldeUrlStr});
diff --git a/src/de/uhilger/calypso/neu/actor/PlayActor.java b/src/de/uhilger/calypso/actor/PlayActor.java
similarity index 94%
rename from src/de/uhilger/calypso/neu/actor/PlayActor.java
rename to src/de/uhilger/calypso/actor/PlayActor.java
index d060ffb..062b30f 100644
--- a/src/de/uhilger/calypso/neu/actor/PlayActor.java
+++ b/src/de/uhilger/calypso/actor/PlayActor.java
@@ -16,11 +16,11 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.actor;
+package de.uhilger.calypso.actor;
 
-import de.uhilger.calypso.neu.MeldeThread;
-import de.uhilger.calypso.neu.Rueckmelder;
-import de.uhilger.calypso.neu.http.Server;
+import de.uhilger.calypso.MeldeThread;
+import de.uhilger.calypso.Rueckmelder;
+import de.uhilger.calypso.http.Server;
 import java.io.IOException;
 import java.util.Map;
 import java.util.logging.Level;
diff --git a/src/de/uhilger/calypso/neu/actor/ShellActor.java b/src/de/uhilger/calypso/actor/ShellActor.java
similarity index 96%
rename from src/de/uhilger/calypso/neu/actor/ShellActor.java
rename to src/de/uhilger/calypso/actor/ShellActor.java
index c912c51..0fb0a5d 100644
--- a/src/de/uhilger/calypso/neu/actor/ShellActor.java
+++ b/src/de/uhilger/calypso/actor/ShellActor.java
@@ -16,9 +16,9 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.actor;
+package de.uhilger.calypso.actor;
 
-import de.uhilger.calypso.neu.http.Server;
+import de.uhilger.calypso.http.Server;
 import java.io.File;
 import java.io.IOException;
 
diff --git a/src/de/uhilger/calypso/neu/actor/StopServerActor.java b/src/de/uhilger/calypso/actor/StopServerActor.java
similarity index 97%
rename from src/de/uhilger/calypso/neu/actor/StopServerActor.java
rename to src/de/uhilger/calypso/actor/StopServerActor.java
index c73c6c0..f3c6140 100644
--- a/src/de/uhilger/calypso/neu/actor/StopServerActor.java
+++ b/src/de/uhilger/calypso/actor/StopServerActor.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.actor;
+package de.uhilger.calypso.actor;
 
 import com.sun.net.httpserver.HttpContext;
 import java.util.Timer;
diff --git a/src/de/uhilger/calypso/neu/http/ApiHandler.java b/src/de/uhilger/calypso/http/ApiHandler.java
similarity index 88%
rename from src/de/uhilger/calypso/neu/http/ApiHandler.java
rename to src/de/uhilger/calypso/http/ApiHandler.java
index e803df6..bcdf2a3 100644
--- a/src/de/uhilger/calypso/neu/http/ApiHandler.java
+++ b/src/de/uhilger/calypso/http/ApiHandler.java
@@ -16,14 +16,15 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.http;
+package de.uhilger.calypso.http;
 
 import com.sun.net.httpserver.HttpContext;
 import com.sun.net.httpserver.HttpExchange;
-import de.uhilger.calypso.neu.actor.PlayActor;
-import de.uhilger.calypso.neu.actor.ShellActor;
-import de.uhilger.calypso.neu.actor.StopServerActor;
+import de.uhilger.calypso.actor.PlayActor;
+import de.uhilger.calypso.actor.ShellActor;
+import de.uhilger.calypso.actor.StopServerActor;
 import java.io.IOException;
+import java.io.OutputStream;
 import java.util.Collection;
 import java.util.Map;
 import java.util.logging.Level;
@@ -109,8 +110,14 @@
         
       case SERVER:
         if(elems[SERVERCMD].equals(STOP)) {
-          new StopServerActor().run(exchange.getHttpContext());
-          antwort = "Calypso: Der Server wird angehalten und die App beendet.";
+          try {
+            antwort = "Calypso: Der Server wird angehalten und die App beendet.";
+            sendResponse(exchange, antwort);
+            new StopServerActor().run(exchange.getHttpContext());
+          } catch (IOException ex) {
+            Logger.getLogger(ApiHandler.class.getName()).log(Level.SEVERE, null, ex);
+            antwort = "Fehler: " + ex.getLocalizedMessage();
+          }
         } else {
           antwort = elems[SERVERCMD] + " ist ein unbekanntes Serverkommando";
         }
diff --git a/src/de/uhilger/calypso/neu/http/HttpApi.java b/src/de/uhilger/calypso/http/HttpApi.java
similarity index 96%
rename from src/de/uhilger/calypso/neu/http/HttpApi.java
rename to src/de/uhilger/calypso/http/HttpApi.java
index b6ce1ff..32292ed 100644
--- a/src/de/uhilger/calypso/neu/http/HttpApi.java
+++ b/src/de/uhilger/calypso/http/HttpApi.java
@@ -16,7 +16,7 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.http;
+package de.uhilger.calypso.http;
 
 import com.sun.net.httpserver.HttpExchange;
 import com.sun.net.httpserver.HttpHandler;
@@ -71,7 +71,7 @@
     if(query != null && query.length() > 0) {
       String qParts[] = query.split("&");
       for(String qPart : qParts) {
-        Logger logger = Logger.getLogger(de.uhilger.calypso.neu.http.HttpApi.class.getName());
+        Logger logger = Logger.getLogger(de.uhilger.calypso.http.HttpApi.class.getName());
         logger.log(Level.FINER, "qPart: {0}", qPart);
         String pParts[] = qPart.split("=");
         map.put(pParts[0], pParts[1]);
diff --git a/src/de/uhilger/calypso/neu/http/Server.java b/src/de/uhilger/calypso/http/Server.java
similarity index 93%
rename from src/de/uhilger/calypso/neu/http/Server.java
rename to src/de/uhilger/calypso/http/Server.java
index 168d3c9..e73e36a 100644
--- a/src/de/uhilger/calypso/neu/http/Server.java
+++ b/src/de/uhilger/calypso/http/Server.java
@@ -16,11 +16,11 @@
     along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
 
-package de.uhilger.calypso.neu.http;
+package de.uhilger.calypso.http;
 
 import com.sun.net.httpserver.HttpContext;
 import com.sun.net.httpserver.HttpServer;
-import de.uhilger.calypso.neu.AppProperties;
+import de.uhilger.calypso.AppProperties;
 import java.io.File;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -46,7 +46,7 @@
   
 
   public void start(AppProperties einst) {
-    Logger logger = Logger.getLogger(de.uhilger.calypso.neu.http.Server.class.getName());
+    Logger logger = Logger.getLogger(de.uhilger.calypso.http.Server.class.getName());
     logger.log(Level.INFO, "Server startet auf Port {0}", einst.getString(PORT));
     String skripte = einst.getString(SKRIPTE);
     File skript = new File(skripte, "pause");

--
Gitblit v1.9.3