Ultrakompakter HTTP Server
ulrich
yesterday d3cc22c6082522c7518fe6e12010f11413b4e0c4
WsServerDescriptor hinzugefuegt
1 files added
3 files modified
57 ■■■■ changed files
src/de/uhilger/neon/Factory.java 24 ●●●● patch | view | raw | blame | history
src/de/uhilger/neon/FactoryListener.java 3 ●●●●● patch | view | raw | blame | history
src/de/uhilger/neon/entity/NeonDescriptor.java 1 ●●●● patch | view | raw | blame | history
src/de/uhilger/neon/entity/WsServerDescriptor.java 29 ●●●●● patch | view | raw | blame | history
src/de/uhilger/neon/Factory.java
@@ -36,9 +36,6 @@
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.InetSocketAddress;
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -49,7 +46,6 @@
import java.util.logging.Level;
import java.util.logging.Logger;
import de.uhilger.neon.Scanner.ScannerListener;
import java.util.Set;
/**
 * Einen Neon-Server aus einer Beschreibungsdatei herstellen
@@ -133,7 +129,7 @@
          IllegalAccessException, IllegalArgumentException, InvocationTargetException, IOException {
    Logger.getLogger(Factory.class.getName()).log(Level.FINER, System.getProperty("java.class.path"));
    List<ServerDescriptor> serverList = d.server;
    for (ServerDescriptor sd : serverList) {
      HttpServer server = HttpServer.create(new InetSocketAddress(sd.port), 0);
@@ -154,7 +150,16 @@
      server.setExecutor(Executors.newFixedThreadPool(10));
      server.start();
    }
    fireInstanceStarted();
//    List<WsServerDescriptor> wsserverList = d.wsserver;
//    for (WsServerDescriptor wsd : wsserverList) {
//      WebSocketServer wsserver = new SimpleWsServer(new InetSocketAddress(wsd.port));
//       fireWsServerCreated(wsserver);
//   }
   fireInstanceStarted();
  }
  private Authenticator createAuthenticator(NeonDescriptor d) {
@@ -394,6 +399,13 @@
      l.serverCreated(server);
    }
  }
  //private void fireWsServerCreated(WebSocketServer wsserver) {
  //  for (WsFactoryListener l : listeners) {
  //    l.wsServerCreated(wsserver);
  //  }
  //}
  private void fireHandlerCreated(HttpContext ctx, HttpHandler h) {
    for (FactoryListener l : listeners) {
src/de/uhilger/neon/FactoryListener.java
@@ -23,6 +23,7 @@
import com.sun.net.httpserver.HttpContext;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import org.java_websocket.server.WebSocketServer;
/**
 * Objekte, die auf Ereignisse der Neon-Factory lauschen 
@@ -40,6 +41,8 @@
  
  public void authenticatorCreated(HttpContext context, Authenticator authenticator);
  
  //public void wsServerCreated(WebSocketServer wsserver);
  //public void elementCreated(Object realm);
  
  public void instanceStarted();
src/de/uhilger/neon/entity/NeonDescriptor.java
@@ -34,5 +34,6 @@
  public List<String> actorPackages;
  public AuthenticatorDescriptor authenticator;
  public List<ServerDescriptor> server; 
  public List<WsServerDescriptor> wsserver;
  
}
src/de/uhilger/neon/entity/WsServerDescriptor.java
New file
@@ -0,0 +1,29 @@
/*
  neon - Embeddable HTTP Server based on jdk.httpserver
  Copyright (C) 2025  Ulrich Hilger
  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU Affero General Public License as
  published by the Free Software Foundation, either version 3 of the
  License, or (at your option) any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU Affero General Public License for more details.
  You should have received a copy of the GNU Affero General Public License
  along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
package de.uhilger.neon.entity;
/**
 *
 * @author Ulrich Hilger
 * @version 0.1, 22.11.2025
 */
public class WsServerDescriptor {
  public String name;
  public int port;
}