From d3cc22c6082522c7518fe6e12010f11413b4e0c4 Mon Sep 17 00:00:00 2001
From: ulrich <ulli@ulrichs-mac.fritz.box>
Date: Mon, 24 Nov 2025 17:19:28 +0000
Subject: [PATCH] WsServerDescriptor hinzugefuegt

---
 src/de/uhilger/neon/FactoryListener.java           |    3 +++
 src/de/uhilger/neon/Factory.java                   |   24 ++++++++++++++++++------
 src/de/uhilger/neon/entity/WsServerDescriptor.java |   29 +++++++++++++++++++++++++++++
 src/de/uhilger/neon/entity/NeonDescriptor.java     |    1 +
 4 files changed, 51 insertions(+), 6 deletions(-)

diff --git a/src/de/uhilger/neon/Factory.java b/src/de/uhilger/neon/Factory.java
index 61d7e93..4405332 100644
--- a/src/de/uhilger/neon/Factory.java
+++ b/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) {
diff --git a/src/de/uhilger/neon/FactoryListener.java b/src/de/uhilger/neon/FactoryListener.java
index 048a408..54244b7 100644
--- a/src/de/uhilger/neon/FactoryListener.java
+++ b/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();
diff --git a/src/de/uhilger/neon/entity/NeonDescriptor.java b/src/de/uhilger/neon/entity/NeonDescriptor.java
index 412e177..8c5c06b 100644
--- a/src/de/uhilger/neon/entity/NeonDescriptor.java
+++ b/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;
   
 }
\ No newline at end of file
diff --git a/src/de/uhilger/neon/entity/WsServerDescriptor.java b/src/de/uhilger/neon/entity/WsServerDescriptor.java
new file mode 100644
index 0000000..1e856df
--- /dev/null
+++ b/src/de/uhilger/neon/entity/WsServerDescriptor.java
@@ -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;
+}

--
Gitblit v1.9.3