Plugin Details

This report describes goals, parameters details, requirements and sample usage of this plugin.

Goals

Goals available for this plugin:

Goal Description
tentackle-wizard:browse PDO browser.
Brings up an FX UI to analyze PDOs persisted in a database and generate test code.
tentackle-wizard:help Display help information on tentackle-wizard-maven-plugin.
Call mvn tentackle-wizard:help -Ddetail=true -Dgoal=<goal-name> to display parameter details.
tentackle-wizard:init Initializes the templates.
Copies the default templates to the configured templateDir.
Needs to be executed only to restore the templates to their defaults.
tentackle-wizard:operation Wizard to create operation files.
Brings up an FX UI to create the operation related Java files.

If operationName is set, the wizard works in batch mode and generates the files for that single operation without opening the UI. Since operations are not part of the model, all values the UI would ask for must be given as parameters, for example:

mvn tentackle-wizard:operation -DoperationName=SendInvoice -Dcomment="sends an invoice"

Best invoked from within the directory of the maven parent of the project.

tentackle-wizard:pdo Wizard to create PDO files.
Brings up an FX UI to create the PDO-related Java files.

Best invoked from within the directory of the maven parent of the project.

tentackle-wizard:script Runs a org.tentackle.script.Script using the application's dependencies.
Brings up an FX UI to edit and run a script or runs it in batch mode.

The code a developer writes is only a fragment. It is woven into a harness: a freemarker template (provided via the harnesses filesets) that owns the boilerplate — it connects to the database, implements a DomainContextProvider so that on() and op() can be used, and defines the run() method the fragment is inserted into. The first line of a harness is a she-bang selecting the scripting language (for example #!groovy); it does not land in the generated script.

Since the fragment is inserted into the run() method, it cannot contain import statements itself. Instead, the fragment marks such lines with a leading ^-sign, for example ^import org.tentackle.misc.* in Groovy or ^require 'json' in Ruby. Every line starting with an ^-sign is removed from the fragment, stripped of the ^-sign, and provided to the harness via the imports model variable, which places it at the top level of the generated script.

The freemarker model provides four variables: content (the fragment), imports (the import statements extracted from the fragment), language (the language name) and harness (the harness filename).

System Requirements

The following specifies the minimum requirements to run this Maven plugin:

Maven 3.9.0
JDK 25

System Requirements History

The following specifies the minimum requirements to run this Maven plugin for historical versions:

Plugin Version Maven JDK
from 25.17.0.0 to 25.19.0.0 - 25
from 21.15.0.0 to 21.16.4.0 - 21
from 17.8.0.0 to 17.14.0.6 - 17
16.0-M1 - 16
from 11.2.3.0 to 11.7.4.1 - 11
from 8.2.2.0 to 8.3.0.5 - 8
2.2.0 - 11
2.1.6 - 8

Usage

You should specify the version in your project's plugin configuration:

<project>
  ...
  <build>
    <!-- To define the plugin version in your parent POM -->
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.tentackle</groupId>
          <artifactId>tentackle-wizard-maven-plugin</artifactId>
          <version>25.19.0.0</version>
        </plugin>
        ...
      </plugins>
    </pluginManagement>
    <!-- To use the plugin goals in your POM or parent POM -->
    <plugins>
      <plugin>
        <groupId>org.tentackle</groupId>
        <artifactId>tentackle-wizard-maven-plugin</artifactId>
      </plugin>
      ...
    </plugins>
  </build>
  ...
</project>

For more information, see "Guide to Configuring Plug-ins"