A JBoss Project
Red Hat

Posts tagged with 'fuse'

This article has been posted also on Red Hat Developers Program blog.

We are happy to announce the release of Red Hat JBoss Fuse Tooling for Eclipse Mars. It is available now in the JBoss Tools Integration Stack 4.3.2 / Developer Studio Integration Stack 9.0.2.

What’s in there?

Let me highlight the most important changes only. You can see a full list of changes in the What’s New section for the release.

New Fuse Integration Project wizard

One of our main objectives for this release was improving the usability and making the tooling easy to use. The project wizard was one of the things we wanted to improve. In the new version of the wizard you are now able to specify a runtime you want to develop for OR an Apache Camel version to be used from the list of supported versions.

new project wizard

Another improvement is the replacing of the archetype selection with a more user friendly list of project templates which are now more use case oriented. At the moment we have just a few templates available but we will add new templates in future. (see above screenshot)

Updated Visual Camel Editor

We are happy to show you the new Camel Editor :D

camel editor

We’ve got a new diagram layout and new icons together with a search field inside the palette which allows easy lookup of palette items without the need to browse any drawers. The new layout improves the readability of your route. Another change has been made to allow showing all routes of a Camel Context file inside one editor. For those of you who liked the "only one route" approach more we added a "Go Into" button on the route’s button pad.

You maybe also recognized a new tab in the editor from the above screenshot. We added the "Configurations" tab which can be used to handle elements which are not part of the route itself, like beans, global endpoint definitions and data formats. At the moment we have support for handling global endpoints and data formats. If you installed the SAP Tool Suite you can also add SAP Server definitions. More types will be added in future releases.

For more information on this tab please have a look here.

Other

There have been some improvements in the validation of Camel files. Please have a look here for more information.

We hope you enjoy the improvements and are looking forward to your feedback. Have fun!

Lars Heinemann

Note: This article has been posted also on Red Hat Developers Program blog

As I mentioned in this earlier post, the 8.0.0.Beta2 version of JBoss Fuse Tooling is available. In this article I will cover another new and updated feature: validations. I will explain what was already available and what’s new which improves productivity.

Existing

In Fuse Camel Editor, the classic XML editor is used in the source tab. Consequently, we can rely on the Eclipse built-in validation of xml files against xsd. You just have to right-click on the source code, then Validate.

validation-XSD

There was a limitation about blueprint, I let you check this issue report in case the validation doesn’t work for you in previous versions: FUSETOOLS-1653.

Improved and New

Fuse validation everywhere

Going further than the xsd validation, the Fuse validation validates some characteristics of the component URI. This validation reports Problem markers against the Camel Component. This kind of validation was already available through Properties view but there was no global vision of these issues.

You can now see markers in:

  • Project explorer

  • Camel Route Diagram

  • Tree nodes for Global configuration element

  • Source tab editor

  • Problems view

validationEverywhere validationOnXmlFile

Jump from Problems view

When double-clicking on Fuse Validation error in Problems view, you are redirected to the correct Editor tab depending on which specific Camel element the error comes from.

For the xsd validation, you are redirected to the source editor.

Note: This article has been posted also on Red Hat Developers Program blog

As I mentioned in an earlier post, the 8.0.0.Beta2 version of JBoss Fuse Tooling is now available. Apart from the diagram tooling rework, there is yet another new, awaited feature. You can find it in the new “Configurations” editor — designed to manipulate global configurations, i.e. elements defined at the Camel context scope.

A new editor tab is now available to manipulate global configurations.

newConfigurationTab

It currently allows to declare global Endpoints and global Data Formats.

availableGlobalConfiguration

For instance when adding a new Data Format, a dialog allows you to select a specific data format:

globalDataFormat

Then you will be able to edit it from the classic Properties view:

globalDataFormatEditionFromProperties

We have a lot of other global elements that we would like to support, please vote on our JIRA (and/or create your own Feature Request). It will help us to prioritize global configuration element support. You can find already filed JIRA ticket here.

Note: This article has been posted also on Red Hat Developers Program blog

The JBoss Fuse Tooling has been reworked to provide a brighter Look’n’feel and a nice looking automatic layout. The work is still in progress but already available in beta version with the new JBoss Tool Studio version. Please install the JBoss Tools Studio that you can download from here. And then follow the steps in this screenshot to have access to JBoss Fuse Tooling 8.0 Beta 2.

HowToInstall

Ok, now let’s see what’s new from a Diagram point view!

New layout and Look’n’Feel

It provides modern colors. Some of them are dynamic depending on the consumer/producer role.

The new default layout is vertical - the horizontal is still available from Preferences - providing more information in a more compact way.

Icons for each component are currently created. It helps to distinguish at first sight which kind of component it is without having to read the scheme of the URI.

An image is worth a thousands words, especially here, so have a look:

FuseNewLayoutAndLookNFeel

Multiple routes support

Previously, the editor was supporting editing a single route per Camel file. It is now possible to develop several Camel routes in the same file with the JBoss Fuse Tooling.

Palette simplification

The Palette has been reworked too. The component list has been shortened to present the most common components only. You can use a search field to filter on the remaining ones. All the other components are still available using the "Generic" tool palette, it opens a dialog where you will be able to search for a specific component and have default filters/presentations.

PaletteHighlighted componentChoose

If you feel that the component list of the palette must be configurable, you can vote on the corresponding feature request.

Validation decorator

The Fuse Validation issues are now displayed on the diagram:

validationDiagram

The Fuse team are looking for an Eclipse Developer to primarily work on JBoss Tools Fuse tooling.

769fcbdf1939cbdf43002be6e4330e9c.936x690x1

If you are interested read the job description and apply.

If you are interested in hearing more ping me on mail or find me at EclipseCon France next week!

We’ve been working hard on improving our tooling story for Fuse for a few months. One of the areas we’ve been focusing on specifically has been Transformation tooling. It’s been missing in the JBoss Tools suite for a while now and something we needed to address.

As a result, we ended up with the Fuse Transformation tooling, which I’ll be talking about over the course of a few blog posts.

First, What Exactly Is the Fuse Transformation Tooling?

The last transformation tooling we had in JBoss Tools leveraged Smooks to convert one format to another. This time we’re using the Dozer framework, which offers a great base for handling Java to Java transformations. Through various APIs, you can convert just about anything to a Java model these days and that gives us a good place to start.

With the addition of Fuse technologies (and some awesome developers), we gained some cool new toys in the tooling and a big part of that is the Camel Editor (i.e. the "Fuse Tooling Routes Editor"). The Fuse Transformation tooling builds on that and offers:

  1. the Fuse Transformation Editor, which offers visual editing of a Dozer configuration file

  2. the New Fuse Transformation wizard, which creates a new Transformation file and integrates it as an endpoint in a Camel configuration

  3. and the New Fuse Transformation Test wizard, which creates the outline for a new JUnit test you can run to test your transformation

Though we’re in Tech Preview for now, we have good collection of functionality already and we’ll walk through some of that.

Where Can We Get These Toys?

The new tooling appears in the JBoss Tools Integration Stack "Early Access" site, so be sure to keep up with that effort. (You can see Paul’s latest post here: "JBoss Tools Integration Stack - Luna integration tooling for BRMS/BPMS, Data Virt, SOA 5.x + Early Access Fuse and SwitchYard."

Keep up to date with JBoss Tools Integration Stack to ensure you have the latest version of the Transformation tooling.

Let’s Start With a Use Case - XML to JSON

I’m going to cheat a little and start with the Starter project that we have created for the Transformation project. It includes some sample data to demonstrate transforming from XML to JSON. It includes a sample Camel configuration as well (in either Spring or Blueprint form) that provides a route that takes a file and routes it to another. In this case, we’re going from a sales order in XML format (abc-order.xml) to a sales order in JSON format (xyz-order-schema.json). This is a common integration case where you have to migrate one format to another.

But Wait! Didn’t You Say Dozer Is Strictly Java-to-Java?

Why yes, I did! But I also said that we have ways to create Java models from other formats. And in this first wave of Transformation functionality we offer built-in conversion from XML (XML schemas or instance documents) and JSON (JSON schemas or instance documents) to help get you that far. plus some other, more open-ended capabilities we’ll talk about down the line, we will walk through each step of getting you from your sample data to a fully testable solution.

So let’s get started…​

Launching the Wizard

There are three main ways to launch the New Transformation Wizard in Eclipse…​

  1. From the top-level menu in the Eclipse workbench, use File→New→Other…​ (or Ctrl+N), then look for Fuse Tooling→Fuse Transformation

  2. Right-click on a project in the Project Explorer, select New→Other…​ then look for Fuse Tooling→Fuse Transformation

  3. Open a Camel file (Spring or Blueprint) and drag the Transformation→Data Transformation item from the palette onto the canvas (see below)

launching-the-wizard

New Fuse Transformation Wizard, Start Page

Once you’ve launched the New Fuse Transformation Wizard, you are presented with a wizard page that looks something like the following.

  1. To start, depending on how you’ve launched the wizard, you may have to select the Project explicitly. The drop-down list is populated by a list of all projects that include Camel configurations (either Spring or Blueprint).

  2. The Transformation ID becomes the explicit name of the Dozer endpoint that gets created in the Camel route. We then can reference that endpoint in the route itself. Since we’re transforming an XML file into a JSON file, we’ll call ours "xml2json".

  3. The Dozer File Path calls out the location and name of the Dozer configuration file. It is pre-populated with the name "transformation.xml" and will place the file in the src/main/resource folder of your project, but you can name it whatever you’d like and provide a project-relative path so long as the path can be found in the project classpath. We’ll leave it at the default for now.

  4. The Camel File Path points to the Camel configuration file you are adding this transformation to. In the case below, we have selected the Spring Camel configuration in the starter project.

new-fuse-transformation-wizard-start-page

New Fuse Transformation Wizard, Selecting Types to Transform

Currently with the wizard we have the ability to transform to and from one of four different types:

  • Java (Existing Java model)

  • XML (XML Schema or Instance Document)

  • JSON (JSON Schema or Instance Document)

  • Other (Special case we’ll cover in another post)

Today we’re focused on converting from XML to JSON, so we’ll select those two types and click Next.

new-fuse-transformation-wizard-selecting-types-to-transform

New Fuse Transformation Wizard, Source XML Details

Since we selected XML as the Source Type on the Start page, we’ll see the "Source Type (XML)" page appear next. If we had selected another type, we’d see that page here.

In this case, we have an XML Schema document (abc-order.xml) that we want to transform from. So we’ll click on the Source File field’s "…​" button to browse for our file, select abc-order.xml, and click Next to continue. If you have a particularly complex schema, you may need to select from the root elements you wish to key on for the transformation.

new-fuse-transformation-wizard-source-xml-details

New Fuse Transformation Wizard, Target JSON Details

Since we selected JSON as the Target Type on the Start page, we’ll see the "Target Type (JSON)" page appear next. If we had selected another type, we’d see that page here.

In this case, we have an JSON Schema document (xyz-order-schema.json) that we want to transform to. So we’ll click on the Target File field’s "…​" button to browse for our file, select xyz-order-schema.json, and click Finish to continue.

new-fuse-transformation-wizard-target-json-details

Finishing Up…​

As soon as the wizard is done, you’ll notice two things.

  1. The Fuse Transformation Editor opens so you can edit your new Dozer configuration file.

  2. The Camel Editor has been updated with the new Transformation endpoint you just created. (Notice the "dirty" flag on the "camel-context.xml" tab.)

For now, we’ll close our new Transformation and go back to the Camel route to finish hooking up the new endpoint.

finishing-up

Going back to the Camel editor

When we select the Camel editor again, we notice that a new endpoint reference has been added to the canvas. We need to now hook that into our route so it happens between our source and target steps of this simple configuration.

The first thing we need to do is delete the existing link between the "src" and "target" elements of the route. You can click on it and hit the Delete key on your keyboard or right-click on the arrow and select "Remove." When it asks if you want to remove the element, click Yes.

going-back-to-the-camel-editor

Wiring up our New Endpoint

Now we can wire up the endpoint.

  1. If you hover the mouse over the "src" file element, you’ll see a toolbar pop up. Click and drag the Arrow to our new endpoint.

  2. Do the same thing from the endpoint to the "target" element.

  3. Next, save the Camel editor and it will refresh the view to clean up your route a little.

wiring-up-our-new-endpoint

End for today…​

So now we have a new Transformation endpoint that is wired into our Camel route.

Next time we’ll start doing the actual editing of the Transformation itself!

end-for-today

Thanks for reading!
Brian "Fitz" Fitzpatrick

I am happy to announce some of the highlights of the upcoming release of the Red Hat JBoss Fuse Tooling. It will be available via early access in the JBoss Tools Integration Stack 4.2 / Developer Studio Integration Stack 8.0.

What is new?

There are a lot of improvements and bugfixes and I just want to pick the most important things for now. You can see a full list of changes in the What’s New section for the release.

Apache Camel Debugger

You probably already used the tracing functionality for a running Camel Context, but now we are happy to finally give you a Camel Debugger. Using the Eclipse Debug Framework we created our own Camel Debugger which works fully through the design view of the Camel editor. Here you can set your breakpoints (static and conditional ones) and breakpoints hit are highlighted in your design view. Instead of using the "Run as → Local Camel Context" menu you can now use the "Debug as → Local Camel Context" to startup the Context in debug mode. Once a breakpoint is hit Eclipse will automatically change to the Eclipse Debug perspective.

Debugger

Step through your routes, add watch expressions, change message content on the fly or simply monitor what your routes do with the messages. Add a conditional breakpoint if you only want to debug on a certain condition. You choose the condition language and you setup the condition in an easy to use expression builder.

Palette and Properties

Over the past weeks we worked on improvements regarding the usability of our Camel Route Designer. The result of that work is that we introduced a new drawer to the palette of the designer which provides easy to use items for Apache Camel Components. In the past you had to know that the Endpoint palette entry has to be used to create a connector for a Camel component just by prepending the right protocol name to the endpoints uri attribute field. That still left you alone in adding the correct Maven dependency to your projects pom.xml. When you now drop a component connector to the route the pom.xml gets updated automatically so you don’t need to care any longer.

New Palette

Starting with version 2.14 the Apache Camel developers started implementing a model to determine URI parameters and their meta data. We now use the provided functionality to give our users improved property pages for the Apache Camel Components.

Advanced Properties

(the above image shows the properties for a file connector endpoint)

Server Adapters

Our server adapters have been reworked and we now provide adapters for the latest version of Apache ServiceMix, Apache Karaf and JBoss Fuse.

New Server Adapters

The wizard pages for creating the servers have been reworked too and you are now able to download the binaries directly from within your Eclipse session.

New Wizard Layout

Another thing to mention is that we replaced the old deployment options in favor to the modules publishing way using the servers view. You can select the server entry there and choose to Add or Remove modules to/from the server. The deployed projects from your local workspace will be visible as a child node under the server item. Depending on your settings for the server publishing options your application will be republished automatically when it gets out of sync / is changed locally.

I hope you enjoy the new stuff. Have fun!

Lars Heinemann

Looking for older posts ? See the Archived entries.
back to top