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"
This will create a subdirectory and create the app in it.
If you add
-DarchetypeVersion="7.6.0"to the command, you can specify the TopLogic version to be used for the application (
7.6.0 in the given example). Omitting the parameter automatically selects the latest available version.
The archetype then interactively queries settings for the new application. The following settings can be specified when creating the module:
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.
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.
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
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.
The name for the module that will describe the persistence layer. Best to keep the default value.
The name of the application as it will be displayed on the web interface.
Used to derive the names of various configuration files. Best to keep the default value here.
Name of the application creator or development organization.
Whether to include the module to display charts using ChartJS. If not, no charts can be displayed.
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
<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
<dependency> <groupId>com.top-logic</groupId> <artifactId>tl-service-openapi-server</artifactId> </dependency>
The Java package name where any code extensions would be placed. The default value is derived from
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
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
my-app in a new project directory
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
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.