Start der DLE

Ab Version 1.4 verfügt die DLE über ein vereinheitlichtes Start-Interface für den Aufruf von verschiedenen Funktionalitäten, Klassen und Menüs, die sich jeweils parametrisieren und konfigurieren lassen.
Dieses Interface ist im Wesentlichen der Aufruf der executable jar "dlestart.jar", die sich im DLE-Rootverzeichnis befindet. Eine grobe Übersicht über die Funktionen und einfachen Parametrisierungsoptionen lässt sich mit dem Switch "-help" abfragen.

java -jar dlestart.jar -help

In den meisten Anwendungsfällen reicht solch eine simple Kommandozeile aus, um die wichtigen Funktionen der DLE direkt zu erreichen. Für gewisse Sonderfälle lassen sich diese jedoch genau bearbeiten.

Grundsätzliche Funktionen

Die prinzipielle Syntax lautet

java [Runtime-Switches] -jar dlestart.jar [allgemeine Optionen] [Starter] [Starter-Optionen | Starter-Parameter]

Für den Aufruf zwingend notwendig ist dabei lediglich der Starter, der eine "Verknüpfung" zu einer bestimmten DLE-Funktion bereitstellt. Im Folgenden werden die verfügbaren Starter vorgestellt.

DLE Administration (-admin)

java -jar dlestart.jar -admin

Startet die DLE-Administration

Dieser Starter verfügt über die Möglichkeit, mittels der optionalen Parameter, eine alternative SessionConfig anzugeben. Wird die Administration in seiner einfachsten Form aufgerufen, verwendet die DLE die Config unter client/DLESEssionConfig.xml.
Zusätzlich können weitere Konfigurationsparameter verwendet werden, die in der Form Parameter=Wert anzugeben sind. Sie dienen zur Spezifizierung und Authentifizierung des Users. Mögliche Parameter sind user, password, passwordEncoded, sessionConfig, client und menuConfig.

Ein Aufruf des -admin-Starters kommt einem Aufruf der Klasse at.visionflow.dle.client.admin.DLEAdministrationForm gleich. Alle dem -admin-Starter nachfolgenden Parameter werden dieser Klasse übergeben.

DLE Server (-server)

java -jar dlestart.jar -server

Startet den DLE Server

Dieser Starter startet den DLE Server unter Verwendung der Server-Config die im Unterordner server/ zu finden ist. Analog zum -admin-Starter wird auch der hier optional nachfolgende Parameter als Pfad zu einer alternativen Server-Config interpretiert.

Ein Aufruf des -server-Starters kommt einem Aufruf der Klasse at.visionflow.dle.server.DLEServer gleich und alle nachfolgenden Parameter werden dieser Klasse übergeben. Siehe zu diesem Zweck auch die Technische / Serverdokumentation

Update ausführen (-update)

java -jar dlestart.jar -update Pfad\zum\Update.zip

Installiert ein Update auf der lokalen DLE.

Der Update-Starter benötigt zwingend weitere Argumente, nämlich den Pfad zur Update-Datei. Weitere Argumente werden als Pfade zu zusätzlichen Updates interpretiert.
Wird dieser Starter verwendet, wird die DLE nicht gestartet, sondern die Routine zur Installation der Updates aufgerufen. Für nähere Informationen, siehe auch die Dokumentation zu den DLE Updates (Englisch).

Menü aufrufen (-menu)

java -jar dlestart.jar -menu Pfad\zur\Menüdatei.xml

Startet die DLE und zeigt das Menü an.

Ein weiterer Starter, der zwingend ein weiteres Argument benötigt, ist der menu-Starter. Damit ist es möglich, eigene Menüs aufzurufen.
Menüs befinden sich in der Regel im resources/forms-Ordner eines Pakets, z.B. in packages/DLE/resources/forms/FORMNAME.xml Der Pfad zur Menüdatei kann entweder absolut oder relativ zum DLE-Homeverzeichnis angegeben werden.

Zeichenkette verschlüsseln (-crypt)

java -jar dlestart.jar -crypt "String"

Verschlüsselt den angegebenen String.

Diese Funktion verschlüsselt den als Parameter angegebenen String mit dem DLE-internen Algorithmus. Dies kann zum Beispiel zur Passwortverschlüsselung verwendet werden.

In der Windowseingabeaufforderung ist üblicherweise die Codepage 850 (DOS-Latin-1) aktiv. Dadurch werden Sonderzeichen und Umlaute nicht richtig dargestellt. Mit dem Befehl chcp 65001 kann die Codepage auf UTF-8 umgestellt werden. Damit wird die Erzeugung von Passwörtern mit Sonderzeichen unterstützt.

Ab der DLE-Version 2.1.3 wird eine neue Form der Verschlüsselung verwendet. Alte verschlüsselte Passwörter können aber natürlich weiter genutzt werden. Es ist auch möglich mit dem -legacy Schalten nach dem -crypt Argument noch die alte Verschlüsselungslogik zu verwenden. Dies ist aber nicht empfohlen und dient als Übergangslösung.

Datenimport und -export (-import und -export)

java -jar dlestart.jar -import [Import-Parameter]
java -jar dlestart.jar -export [Export-Parameter]

Importiert oder Exportiert DLE-Daten

Für den Import und Export sind weitere Parameter notwendig. Eine genauere Beschreibung der einzelnen Funktionen ist in der entsprechenden Dokumentation zu finden und über den Aufruf java -jar dlestart.jar -import help zu erreichen.

Paketedaten in der Brickverwaltung aufräumen

java -jar dlestart.jar -cleanup [Cleanup-Parameter]

Räumt DLE-Daten auf.

Grundsätzlich können damit Pakete, Ordnergruppen, Ordner, Schlüsseldefinitionen oder Schlüssel mit deren Bricks aufgeräumt (aus dem System gelöscht) werden.
Für das Aufräumen sind weitere Parameter notwendig. Eine genauere Beschreibung der einzelnen Funktionen ist in der entsprechenden Dokumentation zu finden und über den Aufruf java -jar dlestart.jar -cleanup help zu erreichen.

Klasse starten (-class)

java -jar dlestart.jar -class voll.qualifizierter.Klassenname

Startet eine Klasse

Dieser Starter legt die volle Kontrolle über einen Start in die Hände des Benutzers: Der erste Parameter wird als Klassenname interpretiert und alle folgenden Parameter an die Klasse als Parameter übergeben.

DLE Script starten (-script)

java –jar dlestar.jar –script connectorName Scriptname

Startet ein DLE Skript.

Mit dem –script-Starter wird ein DLE-Skript aufgerufen. Als Parameter mindestens vorhanden müssen der Konnektorname und der Skriptname angegeben sein. Für weitere Informationen steht der Parameter „help“ zur Verfügung (java –jar dlestart.jar –script help)

Wichtig ist, dass entweder -db oder -save angegeben werden müssen, damit das Kommando tatsächlich etwas macht.

Paketdaten Export (-pExport)

java –jar dlestart.jar –pExport PAKET EXPORTDATEI

Startet den Export der Paketdaten für ein Paket und speichert diesen in die angegebene Datei.

Exportiert werden:

  • Paket
  • Funktions-Definitionen (Funktionen, Unterfunktionen, etc.)
  • Todo-Definitionen (Status, Aktionen, Paket-Resourcen, etc.)
  • Prozesse

Beispiel:

java –jar dlestart.jar –pExport DPE ~/temp/dpe.xml

Paketdaten Import (-pImport)

java –jar dlestart.jar –pImport IMPORTDATEI DELETE (Y/N) OVERWRITE (Y/N)

Startet den Import von Paketdaten anhand einer gegebenen Paket-Datei.
Anhand den Import-Parametern kann bestimmt werden, ob vorhandende Paketdaten überschrieben oder vorher gelöscht werden sollen.

Zur Info: Die Import-Parameter OVERWRITE und DELETE sind optional. Standard-Wert ist hier «N».

Beispiel:

java –jar dlestart.jar –pImport ~/temp/dpe.xml N Y

Server stoppen (-stopserver)

java –jar dlestart.jar –stopserver options

Beendet einen DLE Server.

Dieser Starter wird zum Herunterfahren eines beliebigen DLE-Servers verwendet. Es existieren folgende Optionen, die jeweils als Name-Werte Paar, durch ein „=“ getrennt angegeben werden:

  • server – Serveradresse im Format Hostname:Port
  • waitseconds – Dauer in Sekunden, die vor dem Shutdown gewartet wird, um aktuell laufende Prozesse beenden zu lassen
  • reason – Optionale Nachricht, Grund des Shutdowns
  • user – Username, notwendig, wenn der Server durch Authentifizierung gesichert ist
  • password – Password, , notwendig, wenn der Server durch Authentifizierung gesichert ist

Beispiele:

Einen ungesicherten Server ohne Nachricht herunterfahren:

java –jar dlestart.jar –stopserver server=localhost:7001 waitseconds=10

Einen ungesicherten Server mit der einer Nachricht herunterfahren:

java –jar dlestart.jar –stopserver server=192.168.1.1:8080 reason=Der Server wird wegen Wartungsarbeiten heruntergefahren waitseconds=30

Einen gesicherten Server mit einer Nachricht herunterfahren

java –jar dlestart.jar –stopserver server=192.168.1.1:7001 user=admin password=admin reason=Der Server wird heruntergefahren waitseconds=30

Optionale und versteckte Parameter (Switches)

Neben den zwingen Startern existieren optionale Parameter zur Konfiguration der DLE. Diese sind:

Optionale Switches

  • startupParam paramsFile

Dieser Switch gibt den Pfad zu einem paramsFile an. Siehe dazu das Kapitel über Umgebungsvariablen und Runtimeparameter

  • noStartParam

Ignoriert auch ein standardmäßig vorhandes Parameter-File, siehe auch dazu das Kapitel über Umgebungsvariablen und Runtimeparameter

DLEClassloader

Ab der Version 2.0.8.006 steht ein zusätzlicher Start-Parameter zur Verfügung

Ddle.use.dleclassloader=true

Ist dieser mit true aktiviert, dann wird die DLE nur mehr mit einem Prozess gestartet. Das zweistufige Starten der DLE fällt somit weg. Die zu verwendeten Jar-Bibliotheken werden zur Laufzeit der DLE ermittelt und sogleich in die Laufzeitumgebung mit aufgenommen.
Durch diese Umstellung werden allerdings Parameter aus der startupParams.xml-Datei nachträglich der Java-Laufzeitumgebung gesetzt. Bei üblichen -D Parametern (Systemproperties) macht dies keinen Unterschied. Sollten allerdings JVM-spezifische Einstellungen vorhanden sein (z.B. -X oder -XX Parameter), dann müssen diese aus der startupParams.xml Datei in das Startskript der DLE bzw. die Kommandozeile übernommen werden.

Versteckte Switches

Folgende Switches sind "versteckt", also nicht in der Hilfe von dlestart.jar dokumentiert und als Runtime-Parameter der DLE mitzuteilen:

  • Ddle.home=Pfad\zum\Home

Über diesen Switch kann der DLE manuell ihr Homeverzeichnis zugewiesen werden. Dieser Pfad hat die höchste Priorität

  • Ddle.startdebug=true

Wird dieser Parameter hinzugefügt, werden beim Start Angaben über die Startparameter ausgegeben.

  • Ddle.config.file=Pfad\zur\DLESessionConfig.xml

Mit diesem Parameter kann ein DLESessionConfig angegeben werden.

  • dle.pid.file=Dateiname

Mit diesem Parameter kann der Dateiname für die PID Datei festgelegt werden. Wird kein Dateiname festgelegt, dann wird "dle.pid" verwendet. Die PID Datei wird immer im DLE-Home-Verzeichnis angelegt.

Classpath - Libraries für die DLE

Mit der Version 1.4 entfällt das hinderliche Bearbeiten des Classpathes - die DLE lädt beim Start alle benötigten Libraries von selbst und geht dabei nach folgendem Schema vor, dass auch benutzerdefinierte Einträge erlaubt:

  1. Der Classpath mit dem die DLE gestartet wurde. Da die DLE nur mehr über den -jar-Switch gestartet werden kann und -classpath-Einträge bei dieser Methode ohne Effekt bleiben, besteht der VM-Classpath aus dem Bootstrap-Classpath und der dlestart.jar
  2. Die Jars, die mit der Runtime-Option -Ddle.class.path hinzugefügt wurde. An dieser Stelle kann der Benutzer jars in den Classpath hängen, die eine höhere Priorität genießen sollen. Damit können eventuell auftretende Kollisionen übersteuert werden.
  3. Die tools.jar, wenn sie nicht bereits im (Bootstrap)Classpath zu finden ist. Sie wird zur Kompilierung der Bricks benötigt und an bestimmten Plätzen erwartet. Wird sie an einem Ort gefunden, der darauf schließen lässt, dass die tools.jar-Version mit der Java-Version nicht übereinstimmt, können Inkompatibilitäten bei der Brick-Generierung auftreten und eine entsprechende Warnung wird ausgegeben.
  4. Die resource-directories client/ und packages/ um die Übersetzungen und Bilder verfügbar zu machen
  5. Die jars in lib/ Alle Jars, die sich im lib-Ordner befinden, werden automatisch geladen. Siehe auch Punkt 6
  6. Die jars der Pakete: Jedes Paket (in packages/) kann einen lib/-Ordner enthalten, in dem sich jene Bibliotheken befinden, die das Paket benötigt. Auch sie werden von der DLE automatisch geladen. Somit entfällt das Editieren des Classpathes, wenn eine neue Bibliothek hinzugefügt wurde.

Die classpath kann, wie alle anderen Startparameter, durch die Verwendung des –Ddle.startdebug=true Switches sichtbar gemacht werden.

Umgebungsvariablen und Runtime-Parameter

Um für verschiedene Einsatzgebiete der DLE verschiedene Umgebungen schaffen zu können, gibt es die Möglichkeit, mittels einer "startupParams.xml", die sich im DLE Home-Verzeichnis befindet, unterschiedliche Konfigurationen bereitzustellen.
Dieses paramsFile erlaubt nicht nur das einfache Austauschen von Umgebungen sondern bietet auch eine leichter lesbare und wartbare Alternative für Runtime-Parameter.

Die Struktur ist denkbar einfach und besteht neben einem Root-Element aus zwei wesentlichen Einträgen, die die Parameter beinhalten. Anhand des folgenden Beispiels sind alle Möglichkeiten der XML-Struktur aufgezeigt:

<startParams>
<environmentVars>
<var name="LANG" value="en_US" />
</environmentVars>
<runtimeParams>
<param value="Xms128M" />
<param value="Xmx512M" />
<param value="Ddle.home=C:\Programme\DLE" />
</runtimeParams>
</startParams>

Die Umgebungsvariablen werden als Name-Wert-Paar abgespeichert, die Runtime-Parameter sind, abgesehen vom führenden Bindestrich, Eins-zu-Eins-Abbildungen der Kommandozeilen-Variante. ("Xms128M" entspräche "-Xms128M")

Diese XML-Datei ist unter dem Namen "startupParams.xml" direkt im DLE-Root-Verzeichnis abzulegen. Ist keine Datei mit exakt diesem Namen vorhanden, können auch keine Parameter geladen werden. Fehler wird dabei keiner verursacht.
Soll eine Parameter-Datei von einem anderen Pfad geladen werden, kann der Start-Parameter -startupParam verwendet werden, soll auf keinen Fall eine parameter-Datei verwendet werden, ist der Parameter -noStartParam anzuführen. Siehe dazu auch das Kapitel über optionale Parameter.

Beispiele und wichtige Klassen

Beispiele

java -jar dlestart.jar -admin client/AlternativeDLESessionConfig.xml

java -Ddle.home=C:\DLE -jar dlestart.jar –server

java -Ddle.class.path=../lib1.jar;lib2.jar -jar dlestart.jar -startupParam differentStartupParams.xml –admin

java -Ddle.startdebug=true -jar dlestart.jar -class at.visionflow.dle.client.admin.DLEAdministrationForm client/AlternativeDLESessionConfig.xml

java -jar dlestart.jar -noStartParam -menu C:\DLE\packages\PAKET\resources\forms\MENU.xml

java -Ddle.home=C:\Programme\DLE -jar dlestart.jar -class at.visionflow.dle.client.install.script.DLEScript defaultConnector -db -save log/db_init.log -config client/DLESessionConfig.xml install/DLECreateDatabase.xml

Wichtige Klassen

Labels für Kommandos:
at.visionflow.dle.engine.utilities.DLELabelForCommands

Labels für Packages:
at.visionflow.dle.engine.utilities.DLELabelForPackages

Demo-Form:
at.visionflow.dle.demo.DemoFormFolders

Metadata Validator:
at.visionflow.dle.engine.metadata.DLEMetaDataValidator