Ultrakompakter HTTP Server
ulrich
13 hours ago eee8999d92ecd485af6d159ba7323b80fe17623f
src/de/uhilger/neon/Factory.java
@@ -18,7 +18,6 @@
package de.uhilger.neon;
import de.uhilger.neon.entity.ActorDescriptor;
import com.google.gson.Gson;
import com.sun.net.httpserver.Authenticator;
import com.sun.net.httpserver.Filter;
import com.sun.net.httpserver.HttpContext;
@@ -28,8 +27,6 @@
import de.uhilger.neon.entity.NeonDescriptor;
import de.uhilger.neon.entity.ServerDescriptor;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
@@ -48,12 +45,12 @@
import de.uhilger.neon.Scanner.ScannerListener;
/**
 * Einen Neon-Server aus einer Beschreibungsdatei herstellen
 * Einen Neon-Server aus einer Beschreibungsdatei herstellen und starten
 *
 * Die Werte aus der Beschreibungsdatei werden in die Attribute der HttpContext-Objekte geschrieben,
 * die zu jedem Server eroeffnet werden.
 *
 * Die Entitaeten stehen wie folgt in Beziehung: HttpServer -1:n-> HttpContext -1:1-> HttpHandler
 * Die Entitaeten stehen wie folgt in Beziehung: HttpServer -1:n-> HttpContext -1:n-> HttpHandler.
 *
 * Die Factory legt die Kontexte, Handler sowie die Verbindung zu den Actors selbsttaetig an. Alle
 * Parameter aus 'attributes'-Elementen der Beschreibungsdatei werden als Attribute in den
@@ -62,6 +59,7 @@
 *
 * @author Ulrich Hilger
 * @version 1, 6.2.2024
 * @version 2, 24.2.2026
 */
public class Factory implements ScannerListener {
  
@@ -70,30 +68,6 @@
  public Factory() {
    listeners = new ArrayList<>();
    actorMap = new HashMap<>();
  }
  /**
   * Beschreibungsdatei lesen
   *
   * @param file die Datei, die den Server beschreibt
   * @return ein Objekt, das den Server beschreibt
   * @throws IOException wenn die Datei nicht gelesen werden konnte
   */
  public NeonDescriptor readDescriptor(File file) throws IOException {
    //Logger logger = Logger.getLogger(Factory.class.getName());
    //logger.log(Level.INFO, "reading NeonDescriptor from {0}", file.getAbsolutePath());
    StringBuilder sb = new StringBuilder();
    BufferedReader r = new BufferedReader(new FileReader(file));
    String line = r.readLine();
    while (line != null) {
      sb.append(line);
      line = r.readLine();
    }
    r.close();
    Gson gson = new Gson();
    return gson.fromJson(sb.toString(), NeonDescriptor.class);
  }
  public void runInstance(Class c, NeonDescriptor d)