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.