Create new TopLogic application

Configuring a new application via Maven offers by far the most degrees of freedom, but requires knowledge of standard development tools(Java, Maven, Git) and their installation. With this option, both the no-code features and in-app development can be used, as well as additional options for external version management and extension via code plug-ins. Setting up a TopLogic application via Maven is the recommended approach for developer (teams). If you want to limit yourself to NoCode development, using a pre-configured TopLogic is the easier choice.

A project directory for a new TopLogic application can be created using the Maven archetype tl-archetype-app. To do this, enter the following command in the command line:

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

This will create a subdirectory and create the app in it. The archetype then interactively queries settings for the new application. The following settings can be specified when creating the module:

groupId

The first part of the project name, which helps the new application to have a unique identifier. Recommended here is the domain name of the application developer in reverse order (just as for the initial components of a Java package, e.g. com.toplogic). A lowercase identifier separated by periods should be used, without special characters.

artifactId

The technical name of the application. It can be any name or a lowercase compound name separated by a minus sign, also without special characters. This will also be the name of the project directory.

version

The version number of the created application. A -SNAPSHOT suffix indicates that this is a version under development and not a finished version for deployment. The default value here is 1.0-SNAPSHOT.

ProfessionalEdition

Here you can choose between TopLogic - Professional and TopLogic - OpenSource for the new version. Possible entries are "true" for TopLogic - Professional and "false" for TopLogic - OpenSource. The two versions differ in the license conditions. With TopLogic - Professional applications can be developed without publishing their models, configuration and code. For this, license fees are due when the application is used productively. With TopLogic - OpenSource, applications can be created and operated free of license fees with models, configurations and code open to all users under the GNU Affero General Public License 3.0 . Details on TopLogic licensing can be found in BOS-TopLogic-License-1.0.

module

The name for the module that will describe the persistence layer. Best to keep the default value.

DisplayName

The name of the application as it will be displayed on the web interface.

projectName

Used to derive the names of various configuration files. Best to keep the default value here.

CopyrightHolder

Name of the application creator or development organization.

useChartJS

Whether to include the module to display charts using ChartJS. If not, no charts can be displayed.

useBPE

Whether to include the module for graphically modeling processes using process modeling. If not, processes cannot be modeled graphically.

useApiClient (from 7.6.1)

Whether to include the module for including external REST interfaces via OpenAPI. This module can be used to query external interfaces and thus integrate external services.

Before 7.6.1, the dependency must be entered manually in the pom.xml file:

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

useApiServer (as of 7.6.1).

Whether to include the module for providing REST interfaces via OpenAPI. This module can be used to provide interfaces for other systems.

Before 7.6.1, this dependency must be entered manually in the pom.xml file:

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

package

The Java package name where any code extensions would be placed. The default value is derived from groupId and artifactId: groupId.artifactId

packagePath

This will be the path inside the src folder where the Java files will be located. This must be like package but with / instead of . as the separator.


The only mandatory specifications are groupId and artifactId for the new application. For all other information the default values can be kept. A dialog could look like this:

[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: : 

Here an application is created with groupId my.company and artifactId my-app in a new project directory my-app.

Finally, you are asked if the settings are correct and the application should be created. If this is negated, then these settings are queried again. In this second run, the settings tlVersion and parentArtifactId are also queried. These were initially given as arguments in the Maven call. tlVersion can be changed if a different version of TopLogic is to be used. parentArtifactId must not be changed. Otherwise the application will fail to build.