Wednesday, May 27, 2009

What's new in FUSE Integration Designer 1.2

A new version of FUSE Integration designer is released last week and there are some new exciting features. Here is a very broad overview of all (well, almost all :-)) new features available.

The latest FUSE Integration designer can be downloaded from http://www.fusesource.com/downloads

Also, now there is no need to install it using Eclipse update site (which is really painful if there are some dependency issues) – but you can still install through the update site esp if want to try FID on unsupported platforms like Mac OS X and 64 bit Ubuntu Linux – the usual disclaimer follows – these are not supported!

Integrated tooling: The new FUSE Integration designer now includes tooling for ActiveMQ and ServiceMix. And all the tools are integrated like deploying EIP projects on ServiceMix, using FUSE Messaging in running an EIP diagram. FID 1.2 is has now a professional (or enterprise :-)) look with new Splash screen, Welcome screen, FUSE perspectives, New File wizards and also some cheat sheets.

New Splash screen for FID 1.2:

Welcome Screen: First time you launch FID

New file menu:

EIP Tooling

  • EIP Editor: A completely new (and powerful) graphical editor for EIP patterns. Has a new auto connected layout so that you need not worry about the connections. EIP editor has now a completely different and much clearer theme – new colors, new selection highlight, new breakpoint visualization.

  • EIP editor now supports almost all patterns and processors Camel 1.5 has. The list is too long (check the screen shots). There are some new endpoints added to the tooling – CXF, JBI, SEDA and Mock.
  • Run/ Debug improvements: A new preference for Camel Runtime home folder – Run uses this Camel to run the EIP, start the route using FUSE message, and many bug fixes.
  • Java DSL: In the preview release of FID (1.1 and 1.0), there is virtually no support for Java DSL. In this release, there is new Java DSL project (even though there is no visual editor or support for enhanced debugging – this might come in future releases), DSL project is quite useful to get start with Java DSL and also you can deploy the Java DSL on FUSE ESB (ServiceMix). Tooling will take care of packaging, deploy and starting the Java DSL.
  • New Expression Editor: There is now a new Expression editor that supports all the languages (including Bean expressions) by Camel.

FUSE ESB tooling

  • WTP Server integration: ServiceMix server is now integrated with WTP Server's framework. Now, we can start, stop, restart, publish projects on ServiceMix server from a single view.

  • FUSE ESB tooling support both 3.x and 4.x versions. ServiceMix console is integrated with Eclipse Console view.

  • Supports deploying EIP project, Java DSL project and also CXF projects on both FUSE ESB 3.x and FUSE ESB 4.x versions.



Messaging tooling

Like FUSE ESB tooling, this is also a completely new tooling added in FID 1.2.

  • New Messaging project: Useful to store all the messages and sender and listeners in a single project.

  • Send and/or Listen to a Queue and/or Topic: Can send a message to a topic or queue in a local or remote ActiveMQ server. Also, we store the messages received.

  • Send different types of messages like XML message, Text message, Message with Headers.

  • Add or Remove JMS header properties using Message editor

Web Services Tooling

  • New Annotation view: Now it is very easy add JAX-WS annotations to Java file using Annotation view.

  • Multiple deployment options: A CXF project can now be deployed on Tomcat (3.x, 4.x, 5.x, 6.x) and also on FUSE ESB (ServiceMix) service.

With lot of new features and improvements to existing tools in the new FUSE Integration designer, I like you to take a look by downloading it from http://fusesource.com/.




Friday, May 1, 2009

JMS Tooling in FUSE 1.2 Release


JMS Tooling in FUSE 1.2 Release

One of the new things in FUSE 1.2 release is JMS Tooling. This allows you to quickly connect to FUSE Messaging Broker, send and receive Text, XML messages on different JMS destinations in a user friendly manner. It is very handy when you want to diagnose/inspect if some things go wrong with your messaging applications.

There is no eclipse based tooling available around Eclipse currently. FUSE 1.2 takes the pride in providing this for the first time.

What is provided in JMS Tooling?

It follows entirely a new approach in providing a tooling for JMS embracing the common, standard and user-friendly approaches. It works as JMS Test Client, where-in you create JMS Message Producers, JMS Message Consumers and send/receive different kinds of messages.


List of Features:


Message Editor to compose JMS Messages

    • Compose JMS Message, JMS Text and XML messages
    • Set required JMS Headers
    • Set required JMS Properties
  • Messages Editor to visualize the received messages
    • Manage received messages – save, remove etc.,
    • Send a message to JMSReplyTo destination
    • Set a Message History count to purge the old messages automatically
  • Create your messaging application as Projects
    • Easy way to keep your messaging applications as separate project
    • Integrate with source control system to persist and reuse the projects
    • No tight coupling between the messaging project and the messaging broker
    • Ability to create projects in offline mode
  • Create your JMS Message Producers/Consumers
    • Support to create Queue/Topic/Durable Topic destinations as producers & consumers
    • Ability to set producer/consumer properties like Time To Live, Delivery Mode and Message Selectors etc.,
  • Create your connection to FUSE Messaging Broker
    • Servers view allows you to create connections to FUSE Messaging Broker.
    • Deploy your messaging applications in FUSE Messaging Broker Connections


"Try-It" - Trying your hands on JMS Tooling:


You can download FUSE 1.2 from http://fusesource.com/products/fuse-integration-designer/

  • Extract the zip file to desired location on your system.
  • Run fuse.exe from \fuse-integration-designer-1.2\bin\


In this “Try-It” session, we will do the following…

  • Choosing Messaging Perspective
  • Creating a FUSE Messaging Connection
  • Creating a Messaging Project
  • Creating Message Producers and Consumers
  • Creating test JMS messages
  • Sending Messages
  • Viewing Received Messages


Choosing Messaging Perspective:


By default FUSE 1.2 starts in “FUSE” perspective, click on Open Perspective icon on the top right hand corner of FUSE product and choose “Messaging”. This will bring up the Project Explorer View and the Servers View.


Creating a FUSE Messaging Connection:


Go to Servers View, launch context-menu of Servers View and Choose "New.." option, you will see the following dialog.




Enter a desired name (e.g. FUSE Message Broker) to the Server and click on Next button. Enter the connection details for FUSE Messaging Broker and click Finish.

This will create a node in the Server's View. Note that the FUSE Messaging Broker should be started from outside of FUSE. We will start & connect to the server later, so that we will see how to create Messaging Projects in offline mode.

Creating a Messaging Project:

This is what you create as an equilavent to your Messaging Application. As an example let us assume that we have a JMS based appliation say "TrainEnquirySystem" which responds to customers requests by providing the requested information. To test the health of this system, we want to send test messages and inspect the received messages.
  • Launch Project Creation wizard from File -> New -> Messaging
  • Enter desired name for the project say "TrainEnquirySystem"
  • The same wizard allows you to choose existing FUSE Messaging Connections or create a new Connection.
  • Select the connection we created in the previous section from the drop down list.
  • After finishing the wizard, the project gets deployed under the chosen connection (in this case FUSE Message Broker)
  • Under the project two nodes will be created with the names "Senders" & "Listeners"

Creating Message Producers/Consumers:
  • As mentioned earlier, you can create Queue/Topic as Producers and Queue/Topic/Durable Topic as Consumers.
  • To Create a message producer, select "Senders" node, on the right click menu options choose "Add Destination" action.
  • This action will launch the following dialog. Enter destination name as "queryByPNR" and click OK.


  • To Create a message consumer, select "Listeners" node, on the right click menu options choose "Add Destination" action.
  • This action will launch the following dialog. Enter destination name as "queryByPNR" and click OK.


  • You can later explore the context menu of the senders and listeners you created.

Creating test JMS messages:
  • Launch Message Wizard from File -> New -> Message
  • Enter a file name say "testInput_queryByPNR.message" and click on Next button
  • In the next page you can choose the message type - choose XML (FUSE Message Broker) type for this example
  • Note - Only JMS based messages can be sent over JMS destinations.
  • Enter the message content in the body section. OR you can directly point to the file which you want to be sent as JMS message.

Sending Messages:
  • If you try to drag and drop "testInput_queryByPNR.message" on "queryByPNR" under "Senders" node, it will show a warning message saying Connection is unavailable.
  • This is because we did not connect to the server yet. The project is just using an offline connection. If you observe the project shows a red flag and all the listeners show a red dot prompting the user that there is no active connection available.

  • Start your FUSE messaging Broker from outside.
  • To bring the project to online mode, go to Servers View, select "Fuse Message Broker" and choose Messaging -> Connect option to really connect to the server.
  • If you observe, the project shows a green flag and all consumers become active.
  • At this stage your project should look similar to the following screen

  • To send a message, just drag and drop the testInput_queryByPNR.message on "queryByPNR" under "Senders" node

Viewing Received Messages:
  • Double click on "queryByPNR" under "Listeners"
  • This will open a Messages Editor, the top section shows the list of all received messages and the bottom section shows the details of the selected message.
  • You can explore the tool bar options and try on your own.
  • The following screen shows the Messages Editor


Conclusion:

This post is just the introduction to the JMS Elicpse Tools in FUSE1.2, look forward to see advanced use-cases in future.

If you have trouble using this tool, please post in FUSE tools forum