Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 5 Next »

The primary goals of this example are to introduce you to the following:

  1. A very basic Fragment Transformer written in Java.
  2. The Smooks configuration file.
  3. Executing a Smooks Transformation.

The Fragment Transformer

Smooks is a Fragment based Transformation Framework. That means you can write (or reuse) Transformers that apply transformations on message fragments, as opposed to the message as a whole.

In this example we build a very simple (silly) fragment transformer in raw Java. Smooks supports applying transformations through a number of technologies (not just Java). However, underpinning all of these is the element Visitor. All transformation technologies supported by Smooks are hooked into the transformation process through an implementation of an element Visitor.

In this example, we implement a very simple DOMElementVisitor that simply renames the DOM Element of the fragment at which it is "targeted".

public class BasicJavaTransformer implements DOMElementVisitor {

    private String newElementName;

    public void setConfiguration(SmooksResourceConfiguration resourceConfig) throws SmooksConfigurationException {
        newElementName = resourceConfig.getStringParameter("newName", "xxx");
    }
    
    public void visitBefore(Element element, ExecutionContext executionContext) {
        // Not doing anything on this visit - wait untill after visiting the elements child content...
    }

    public void visitAfter(Element element, ExecutionContext executionContext) {
        // Just rename the target element - keeping child elements - not keeping attributes.
        DomUtils.renameElement(element, newElementName, true, false);
    }
}

As you can see from the code, the implementation gets the new name for the targeted fragment via the configuration (in the setConfiguration method). It doesn't apply any transformation on the visitBefore event. On the visitAfter event, it applies the rename transformation on the targeted Element (message fragment) (See ).

The Smooks Configuration

Executing The Transformation

  • No labels