Neue TopLogic-Applikation erstellen

Die Konfiguration einer neuen Applikation über Maven bietet bei weitem die meisten Freiheitsgrade, erfordert aber Kenntnisse von Standard-Entwicklungswerkzeugen (Java, Maven, Git) und deren Installation. Mit dieser Option können sowohl die No-Code-Features und das In-App-Development genutzt werden, als auch darüber hinausgehende Möglichkeiten der externen Versionsverwaltung, und der Erweiterung über Code-Plug-Ins. Das Aufsetzen einer TopLogic-Applikation über Maven ist für Entwickler(-Teams) die empfohlene Vorgehensweise. Wenn man sich auf NoCode-Entwicklung beschränken möchte, ist die Verwendung eines vorkonfigurierten TopLogic die einfachere Wahl.

Über den Maven-Archetyp tl-archetype-app kann ein Projektverzeichnis für eine neue TopLogic-Applikation erstellt werden. Dazu in der Kommandozeile folgenden Befehl eingeben:

mvn archetype:generate -DarchetypeGroupId="com.top-logic" -DarchetypeArtifactId="tl-archetype-app" -DarchetypeVersion="7.9.1"

Dadurch wird ein Unterverzeichnis angelegt und darin die App erstellt. Der Archetyp fragt dann interaktiv Einstellungen für die neue Applikation ab. Die folgenden Einstellung können bei der Erstellung des Moduls angegeben werden:

groupId

Der erste Teil des Projektnamens, welcher der neuen Applikation zu einem eindeutigen Identifikator verhilft. Empfohlen ist hier der Domain-Name des Anwendungsentwicklers in umgekehrter Reihenfolge (genau wie für die Anfangsbestandteile eines Java-Pakets, bspw. com.toplogic). Es sollte ein durch Punkte getrennter Bezeichner in Kleinbuchstaben verwendet werden, ohne Sonderzeichen.

artifactId

Der Technische Name der Applikation. Es kann ein beliebiger Name oder ein durch Minuszeichen getrennter zusammengesetzter Name in Kleinbuchstaben verwendet werden, ebenfalls ohne Sonderzeichen. Das wird auch der Name des Projektverzeichnisses.

version

Die Versionsnummer der erstellten Applikation. Ein -SNAPSHOT Suffix gibt an, dass es sich um eine Version in Entwicklung handelt und nicht um eine fertige Version fürs Deployment. Der Standardwert ist hier 1.0-SNAPSHOT.

ProfessionalEdition

Hier kann man für die neue Version zwischen der Verwendung von TopLogic - Professional und TopLogic - OpenSource wählen. Mögliche Eingaben sind "true" für TopLogic - Professional und "false" für TopLogic - OpenSource. Die beiden Versionen unterscheiden sich in den Lizenzbedingungen. Mit TopLogic - Professional können Anwendungen entwickelt werden, ohne ihre Modelle, Konfiguration und Code zu veröffentlichen. Dafür werden bei der produktiven Nutzung der Anwendung Lizenzgebühren fällig. Mit TopLogic - OpenSource können lizenzkostenfrei Anwendungen mit für alle Nutzer offenen Modellen, Konfigurationen und Code unter der GNU Affero General Public License 3.0 erstellt und betrieben werden. Details zur TopLogic-Lizensierung finden sich in BOS-TopLogic-License-1.0.

module

Der Name für das Modul, das die Persistenz-Schicht beschreiben wird. Am besten den Standardwert beibehalten.

DisplayName

Der Name der Anwendung so wie er an der Web-Oberfläche angezeigt werden soll.

projectName

Wird verwendet um die Namen verschiedener Konfigurationsdateien daraus abzuleiten. Am besten hier den Standardwert beibehalten.

CopyrightHolder

Name des Anwendungserstellers oder der Entwicklungsorganisation.

useChartJS

Ob das Modul zum Anzeigen von Charts mittels ChartJS eingebunden werden soll. Wenn nicht, können keine Charts angezeigt werden.

useBPE

Ob das Modul zum graphischen Modellieren von Prozessen mittels der Prozessmodellierung eingebunden werden soll. Wenn nicht, können Prozesse nicht graphisch modelliert werden.

useApiClient (ab 7.6.1)

Ob das Modul für die Einbindung von externen REST-Schnittstellen über OpenAPI eingebunden werden soll. Mit diesem Modul können externe Schnittstellen abgefragt und so externe Dienste integriert werden.

Vor 7.6.1 muss die Abhängigkeit manuell in die pom.xml Datei eingetragen werden:

<dependency>
    <groupId>com.top-logic</groupId>
    <artifactId>tl-service-openapi-client</artifactId>
</dependency>

useApiServer (ab 7.6.1)

Ob das Modul für die Bereitstellung von REST-Schnittstellen über OpenAPI eingebunden werden soll. Mit diesem Modul können Schnittstellen für andere System zur Verfügung gestellt werden.

Vor 7.6.1 muss diese Abhängigkeit manuell in die pom.xml Datei eingetragen werden:

<dependency>
    <groupId>com.top-logic</groupId>
    <artifactId>tl-service-openapi-server</artifactId>
</dependency>

package

Der Java-Paketname, in den eventuelle Code-Erweiterungen abgelegt würden. Der Standardwert wird aus groupId und artifactId abgeleitet: groupId.artifactId

packagePath

Das wird der Pfad innerhalb des src Ordners in dem die Java Dateien liegen werden. Das muss wie package aber mit / statt . als Trenner sein.


Die einzig verpflichtenden Angaben sind die groupId und artifactId für die neue Applikation. Für alle anderen Angaben können die Standardwerte beibehalten werden. Ein Dialog könnte folgendermaßen aussehen:

[INFO] Generating project in Interactive mode
[INFO] Using property: parentArtifactId = tl-parent-app
Define value for property 'groupId': my.company
Define value for property 'artifactId': my-app
Define value for property 'version' 1.0-SNAPSHOT: : 
Define value for property 'ProfessionalEdition' true: : 
Define value for property 'module' my.app: : 
Define value for property 'DisplayName' My App: : 
Define value for property 'projectName' myapp: : 
Define value for property 'CopyrightHolder' My Company: : 
Define value for property 'useChartJS' true: : 
Define value for property 'useBPE' true: : 
Define value for property 'package' my.company.my.app: : 
Define value for property 'packagePath' my/company/my/app: : 

Hier wird eine Applikation mit groupId my.company und artifactId my-app in einem neuen Projektverzeichnis my-app erstellt.

Zum Schluss wird gefragt, ob die Einstellungen korrekt sind und die Anwendung erstellt werden soll. Wird das verneint, dann werden diese Einstellungen erneut abgefragt. Bei diesem zweiten Durchgang werden zusätzlich die Einstellungen tlVersion und parentArtifactId abgefragt. Diese wurden initial als Argumente bei dem Maven Aufruf mitgegeben. tlVersion kann verändert werden, wenn doch eine andere Version von TopLogic verwendet werden soll. parentArtifactId darf nicht verändert werden. Andernfalls scheitert das Erstellen der Anwendung.