Neon ist ein ultrakompakter HTTP-Server zum Einbetten in Apps und Microservices auf der Grundlage des Java-Moduls jdk.httpserver.
Weitere Informationen auf der Produktseite
Zur Herstellung von neon aus dem Quellcode wird ein Java Development Kit (JDK) benötigt. Das JDK ist von Adoptium frei erhältlich. In der hier folgenden weiteren Beschreibung wird der lokale Ablageort des Java Development Kits $JDK genannt.
Der Quellcode von neon wird von hier an einen frei wählbaren lokalen Ablageort heruntergeladen und entpackt. In der hier folgenden weiteren Beschreibung wird das so entstandene Verzeichnis neon einschließlich des absoluten Pfades dorthin $NEON genannt. Anstelle von $NEON würde man also beispielweise /home/fred/neon notieren, wenn in das persönliche Verzeichnis des Benutzers fred heruntergealden und entpackt wurde.
neon erfordert die Klassenbibliothek nanojson.
neon ist zur Nutzung im Zusammenspiel mit anderen Programmen vorgesehen und wird dazu am besten als Klassenbibliothek genutzt. Es wird angenommen, dass die oben aufgeführte Bibliothek lokal an einem Ort abgelegt ist, dessen Pfad mit dem Platzhalter $JLIB gemeint ist. Zur Herstellung einer Klassenbibliothek werden mit Hilfe der wie zuvor beschrieben geladenen Teile die folgenden Kommandos ausgeführt (Beispiel für Linux):
cd $NEON
mkdir classes
mkdir dist
$JDK/bin/javac -parameters -classpath $JLIB/nanojson.jar -d classes src/de/uhilger/neon/*.java src/de/uhilger/neon/entity/*.java
$JDK/bin/jar -cf dist/neon.jar -C classes .
Wichtig: Die Herstellung muss mit der Compiler-Option -parameters erfolgen, damit zur Laufzeit die von neon verwendete Reflection API die Namen von Methodenparametern ausgibt. Ohne die Option -parameters erscheinen anstelle von Namen nur arg1, arg2 usw. Hierfuer gibt es im Code von neon zwar einen Workaround, aber besser ist es, mit den im Code deklarierten Parameternamen zu arbeiten.
Die fertig verwendbare Klassenbibliothek liegt anschließend unter $NEON/dist/neon.jar.
Zur Verwendung der Klassen von neon wird die Klassenbibliothek neon.jar zusammen mit nanojson.jar
in den Classpath des Programmes aufgenommen, von dem aus neon genutzt werden soll.
Ist beispielsweise eine App MyApp.jar im Ordner ~/apps/MyApp gespeichert, die mit Hilfe von
neon einen eingebetteten Webserver einsetzen soll, würde die Klassenbibliothek neon.jar in den
Ordner ~/apps/MyApp/lib gelegt. Ferner wird eine Serverbeschreibungsdatei benötigt, die z.B. im Ordner ~/apps/MyApp/conf
gespeichert wird.
Es ergibt sich folgender Verzeichnisinhalt
~/apps/MyApp/MyApp.jar
~/apps/MyApp/conf/server.json
~/apps/MyApp/lib/neon.jar
~/apps/MyApp/lib/nanojson.jar
Die Anleitung von neon beschreibt im Kapitel Neon starten, wie neon aus einer Anwendung wie MyApp.jar heraus gestartet wird. Die AppMyApp.jar wird wie ein normales Java-Programm von der Kommandozeile ausgeführt:
cd ~/apps/MyApp
java -jar MyApp.jar
Hierbei wird automatisch der Inhalt des Unterverzeichnisses lib in ~/apps/MyApp beim Start der
App einbezogen, wo sich die Klassenbibliotheken neon und nanojson befinden.
Veröffentlicht unter den Bedingungen der GNU Affero General Public License