This tutorial will show you how to configure Tigerstripe to run code generations in a headless environment. This will allow you to incorporate Tigerstripe's code generation functionality into a build chain using many of the commonly available build tools, specifically Maven 2.

This tutorial will show you how to configure Tigerstripe to run code generations in a headless environment. This will allow you to incorporate Tigerstripe's code generation functionality into a build chain using many of the commonly available build tools, specifically Maven 2.

Line 9:

Line 7:

=Importing an Example Model=

=Importing an Example Model=

+

+

This example project is also available from the CVS repository. If you wish to get the files from CVS you may skip the rest of this step.

Tigerstripe Generators are pluggable components that allow users to define rules and conventions for code that is generated from a Tigerstripe Model Project. Several generators are currently available, and in many cases, you may want to write your own. For more information on writing you own Tigerstripe Generators see [[Tigerstripe_Tutorials#Code_Generation | Tigerstripe Tutorials, Code Generation]].

+

Tigerstripe Generators are pluggable components that allow users to define rules and conventions for code that is generated from a Tigerstripe Model Project. Several generators are currently available, and in many cases, you may want to write your own. For more information on writing your own Tigerstripe Generators see [[Tigerstripe_Tutorials#Code_Generation | Tigerstripe Tutorials, Code Generation]].

−

=== Obtaining Tigerstripe Generators ===

+

=== Obtaining the Tigerstripe Generator ===

The generator used in this tutorial is in the Tigerstripe CVS repository at:

The generator used in this tutorial is in the Tigerstripe CVS repository at:

Line 33:

Line 37:

=== Installing the Generator ===

=== Installing the Generator ===

+

# Open the generator's configuration (ts-plugin.xml) for editing.<br>[[Image:Export1.gif]]

+

# From the Overview panel, Testing section, click the <code>Package and deploy this plugin</code>. Hyperlink.<br>[[Image:Export2.gif]]

+

# Click "OK" in the '''Deploy New Plugin''' dialog.

+

# Click "OK" in the '''export-xml Plugin''' dialog.

+

# Verify Generator installation.

+

#* From the menu bar, select Tigerstripe -> Plugins...

+

#* Verify that the export-xml generator is listed in the dialog box.<br>[[Image:Plugin1.gif]]

−

=Running a generation from the command line=

+

=Running a Generation from the Command Line=

=== Overview ===

=== Overview ===

Now that the Tigerstripe workbench is set up and the Tigerstripe generators have been installed and tested you can invoke a generation run from the command line. The Eclipse mechanism for running in a headless environment will be used to accomplish this.

Now that the Tigerstripe workbench is set up and the Tigerstripe generators have been installed and tested you can invoke a generation run from the command line. The Eclipse mechanism for running in a headless environment will be used to accomplish this.

Line 67:

Line 78:

# Verify generation by navigating to <workspace>OrderManagement\target\tigerstripe.gen\xml. Verify that OrderManagement.xml is a xml based representation of the example model<br>[[Image:Outdir.gif]]

# Verify generation by navigating to <workspace>OrderManagement\target\tigerstripe.gen\xml. Verify that OrderManagement.xml is a xml based representation of the example model<br>[[Image:Outdir.gif]]

−

=Running a generation from a Maven2 build=

+

=Running a Generation from a Maven2 Build=

+

===Overview===

+

Once the Tigerstripe workbench is set up and the Tigerstripe generators have been installed and test you can use a supplied Maven plug-in to invoke a generation. This tutorial assumes that you have installed Maven correctly and are familiar with it's use. See [http://maven.apache.org/ http://maven.apache.org/] for information on Maven.

# Change to the ts-generation directory and open up the pom.xml file in a text editor. Enter the following build section into the file.

+

<pre>

+

<build>

+

<plugins>

+

<!-- run tigerstripe generations -->

+

<plugin>

+

<groupId>tigerstripe</groupId>

+

<artifactId>maven-tigerstripe-plugin</artifactId>

+

<version>1.2</version>

+

<executions>

+

<execution>

+

<!-- fill in your specific information here -->

+

<configuration>

+

<workspace>C:\workspace</workspace>

+

<projects>

+

<param>C:\workspace\OrderManagement</param>

+

</projects>

+

<generationProject>C:\workspace\OrderManagement</generationProject>

+

</configuration>

+

<goals>

+

<goal>generate</goal>

+

</goals>

+

</execution>

+

</executions>

+

</plugin>

+

</plugins>

+

</build>

+

</pre>

+

+

Now, from the root directory of the ts-generation directory type <code>mvn install</code>. The generation will run on the workspace defined. You may check the output directory (target\tigerstripe.gen, by default) in the Eclipse workspace to verify that the expected artifacts were generated.

+

+

See the following section for complete information on the tigerstipe-maven-plugin configuration.

+

+

=== Tigerstripe Maven Plugin ===

+

+

====Mojo Attributes====

+

* Requires a Maven 2.0 project to execute

+

* Automatically executes within the lifecycle phase: generate-sources

+

+

====Parameters====

+

{| border="1" cellpadding="2"

+

!width="150"|Name

+

!width="150"|Type

+

!width="400"|Description

+

|-

+

|workspace || String || The location of the Eclipse workspace that will be used for the generation.

+

|-

+

|projects || String[]|| A list of all Tigerstripe projects required for the generation, including the generation project and all referenced projects.

+

|-

+

|generationProject || String || The primary Tigerstripe project.

+

|}

+

=Use Tigerstripe Headless Product=

+

Since Tigerstripe v0.4.5, we now provide a Tigerstripe Headless Product which contains the minimum set of plugins to trigger a headless generation from the command line.

+

This allows to considerably shrink the size of the Tigerstripe distribution to be installed to run in a headless environment.

+

+

To install, it simply download the product for the target platform below and unzip it at the appropriate location.

+

This Tigerstripe distrib comes with no Tigerstripe generator obviously, so before running it you will need to make sure you install your generators. To do so, copy the .zip files from your eclipse/tigerstripe/plugins into the corresponding directory in the headless product that you unzipped.

Latest revision as of 14:18, 30 August 2010

This tutorial will show you how to configure Tigerstripe to run code generations in a headless environment. This will allow you to incorporate Tigerstripe's code generation functionality into a build chain using many of the commonly available build tools, specifically Maven 2.

Installing Tigerstripe Generators

Overview

Tigerstripe Generators are pluggable components that allow users to define rules and conventions for code that is generated from a Tigerstripe Model Project. Several generators are currently available, and in many cases, you may want to write your own. For more information on writing your own Tigerstripe Generators see Tigerstripe Tutorials, Code Generation.

Obtaining the Tigerstripe Generator

The generator used in this tutorial is in the Tigerstripe CVS repository at:

Alternatively, it can be downloaded as a .zip file, export-xml.zip. If downloading the .zip file, follow the procedure described in the Importing an Example Model Section to import the project into your workspace.

Installing the Generator

Open the generator's configuration (ts-plugin.xml) for editing.

From the Overview panel, Testing section, click the Package and deploy this plugin. Hyperlink.

Click "OK" in the Deploy New Plugin dialog.

Click "OK" in the export-xml Plugin dialog.

Verify Generator installation.

From the menu bar, select Tigerstripe -> Plugins...

Verify that the export-xml generator is listed in the dialog box.

Running a Generation from the Command Line

Overview

Now that the Tigerstripe workbench is set up and the Tigerstripe generators have been installed and tested you can invoke a generation run from the command line. The Eclipse mechanism for running in a headless environment will be used to accomplish this.

Run a headless model generation using the Tigerstripe Workbench

@echo off
REM Set below to match your current configuration
set ECLIPSE_HOME=C:\eclipse
set WORKSPACE=C:\workspace
set HEADLESS_PLUGIN=org.eclipse.tigerstripe.workbench.headless.tigerstripe
set PROJECT=GENERATION_PROJECT=%WORKSPACE%\OrderManagement
REM Use below to define referenced projects
REM set REFERENCE_ONE= PROJECT_IMPORT=%WORKSPACE%\ReferencedProjectOne
REM set REFERENCE_TWO= PROJECT_IMPORT=%WORKSPACE%\ReferencedProjectTwo
%ECLIPSE_HOME%\eclipsec -nosplash -data %WORKSPACE% -application %HEADLESS_PLUGIN% %PROJECT%

Download wincmdline.zip (above) and unzip the .bat file in a handy location

Verify that the .bat file parameters are set correctly for your system

Execute the batch file to initiate model generation (Note: output may vary based on version)

Verify generation by navigating to <workspace>OrderManagement\target\tigerstripe.gen\xml. Verify that OrderManagement.xml is a xml based representation of the example model

Running a Generation from a Maven2 Build

Overview

Once the Tigerstripe workbench is set up and the Tigerstripe generators have been installed and test you can use a supplied Maven plug-in to invoke a generation. This tutorial assumes that you have installed Maven correctly and are familiar with it's use. See http://maven.apache.org/ for information on Maven.

Now, from the root directory of the ts-generation directory type mvn install. The generation will run on the workspace defined. You may check the output directory (target\tigerstripe.gen, by default) in the Eclipse workspace to verify that the expected artifacts were generated.

See the following section for complete information on the tigerstipe-maven-plugin configuration.

Tigerstripe Maven Plugin

Mojo Attributes

Requires a Maven 2.0 project to execute

Automatically executes within the lifecycle phase: generate-sources

Parameters

Name

Type

Description

workspace

String

The location of the Eclipse workspace that will be used for the generation.

projects

String[]

A list of all Tigerstripe projects required for the generation, including the generation project and all referenced projects.

generationProject

String

The primary Tigerstripe project.

Use Tigerstripe Headless Product

Since Tigerstripe v0.4.5, we now provide a Tigerstripe Headless Product which contains the minimum set of plugins to trigger a headless generation from the command line.
This allows to considerably shrink the size of the Tigerstripe distribution to be installed to run in a headless environment.

To install, it simply download the product for the target platform below and unzip it at the appropriate location.
This Tigerstripe distrib comes with no Tigerstripe generator obviously, so before running it you will need to make sure you install your generators. To do so, copy the .zip files from your eclipse/tigerstripe/plugins into the corresponding directory in the headless product that you unzipped.