JBoss.orgCommunity Documentation

Smooks Dev Tools Reference Guide

Version: 3.0.0.CR1

November 2008


1. Introduction
1.1. What is Smooks?
1.2. What is Smooks dev tools?
1.3. How to install Smooks dev tools?
2. Quick Start
2.1. Download Smooks Java-to-Java example
2.2. Smooks configuration file wizard
2.3. Smooks form Editor
2.4. Choosing the source/target data
2.5. Mapping
3. Smooks Graphical Editor Page
3.1. Introducing the areas of graphical editor
3.2. Load source/target data
3.3. Using the graphical editor for mapping
3.4. Error messages
3.5. Properties Viewer
4. Smooks Configuration Editor Page
4.1. Smooks parse type
4.2. Import file
4.3. Date Decoder Detail Page
5. Smooks Source Editor Page
5.1. XML Source Editor
5.2. Error Messages GUI

This "Quick Start" will show how to use the Smooks tools to create/edit the Smooks configuration file for Java2Java data transformation.

This chapter should give you a brief understanding of the Smooks dev tools.

Visit here to download the "java-to-java" example project.

Tip:

The example project is base on Maven, you suggest you to create a new eclipse Java project and copy the example code and .jar files from the example project paste them into the eclipse Java project.

As you see, the source/target data tree displays the structure of the java class.

How to map it?

First, you should know what to transform:

Make sense?

OK, let's select the "customerName" item of the "header" item on the source data tree and start to drag it. When the drag item crosses the Mapping graphical area, you will see a connection line. Drop the item onto the "customerName" of the "LineOrder" on the target data view.

Now a dialog is oped asking you to connect the root node:


Please, click "Yes" to connect the root node, if you didn't do that, this dialog will be opened again when you connect other nodes.

Note

Please, remember that: The root nodes of the source data and target data *MUST* be connected.

This rule is not only for Java-to-Java, but the same is also relevant for XML-to-Java

Now let's do the same operation with the "customerNumber", that is what you want to see:


Next, you are going to bind the properties of the "OrderItem" to the properties of the "LineItem".

Select the "price" and drag it onto the "unitPrice" of the other side tree viewer. The error message display area will show an error:


How to deal with the error ?

Please click the "Fix it" link, a menu is popped-up with several "resolve methods" on it.

Select the first resolve method: 'Connect the "OrderItem" to the "LineItem" ', then the "OrderItem" is connected with the "LineItem".

But the notify message area still shows some other errors:


OK, let's deal with the fire error ---- Click "Fix it" link and select the first resolve method. The "orderItems" is connected with the "lineItems".

Tip

Why does the occur error?

You will find that, if you only connect the property node without connecting the parent node of the property, the "connection error" occur

The connection of the "price-to-unitPrice" is the "Binding Connection", but it needs a "Instance Creation Connection" -the connection of the "OrderItem-to-LineItem".

After that, connect the quantity to the unitQuantity ; connect the productId to the productCode:


Now, you should save the file and the Smooks tools will generate the correct configuration file content.

OK, Let run the test class: example.Main (Please, make sure that the Smooks engine loads the correct configuration file)

Success!

Smooks Graphical Editor Page is one tab of the Smooks Form Editor.


This graphical editor could allow you to perform drug/drop operations with the nodes of transform data to map the source data to target data.

When you save the changes in the graphical editor the correct Smooks configuration file content will be generated.

Smooks Configuration Editor Page is one tab of the Smooks Form Editor.


The "Date Decoder" can add/edit/remove on the configuration editor page.

The configuration also edit the "Smooks parse type" and manage the "Import File" .