Updated 12/17/08, Updated 01
/12/09, Updated 03/05
, Updated 03/30/09, Updated 04/04/09
, Updated 09/20/09
, Updated 10/26/09
, Updated 02/15/10
, Updated 05/31/10
, Updated 06/30/10
ools is a library
that adds JBoss management functions to Eclipse
The web site describes it as:
JBoss Tools is an umbrella project for a set of Eclipse plugins that supports JBoss and related technology;
there are support for
Hibernate, JBoss AS, Drools, jBPM, JSF, (X)HTML, Seam, Smooks, JB
JBoss Portal and more.
Examples of the capabilities within JBoss Tools are to start, stop, and publish to the JBoss server; to handle
Hibernate functions such as schema generation
and reverse engineering; and to handle Seam functions such as
managing page flow definitions, etc. It is similar to the facilities within MyEclipse, and in fact is based on the same
WTP, EMF, and GEF projects within the Eclipse projects, but doesn’t have
a subscription license
There over 12 different tools within JBoss Tools, and you can download install only those that are relevant. We
only about 4
6 of them.
Eclipse plus JBoss Tools is often called
the “JBoss Developer Studio”
think that it is marketed this way on the
for” sites. In this respect, it is clearly
intended to compete
with both the Sun Developer Studio
, and with MyEclipse.
The current version for Ec
lipse 3.5.x is JBoss Tools 3.1.1
Visual Page Editor
for Richfaces, JSF and HTML / CSS
for Drools Rul
es and Drools Ruleflow
Hibernate wizards, query editor, r
everse engineering and more
ss AS Tools
for running deploying to,
and configuring JBoss AS
for supporting JBoss Portal and JSR
JBoss Archive Tools
archiving and packaging
JBoss Birt Tools
d Seam exte
nsions for Eclipse BIRT
JBoss ESB Tools
project wizards, editors and deployment JBoss's ESB
Tooling for easy i
nstallation of Examples
enabling Web Services support in Eclipse for JBoss WS
Convert BPMN files to jBPM files
Design and deploy jBPM business processes
Syntax highlighting Editor for Fr
Java Management Extensions (JMX) Console in Eclipse
for creating Seam
Components and Projects
Struts 1.x framework
JBoss AS TPTP Tools
for JBoss AS servers
provides a common back
end for XUL applications
This was late 2009
Our initial installation selected the following tools:
lets you deploy to the server, and
start and stop the server.
lets you create a Seam project quickly, and also have editors for Seam artifact such as page
allows you to reverse engineer a data schema, and to manage the Hibernate configuration
Web Services tools
this is a loader for examples regarding Seam, Portlets, etc.
display looked like:
Another Example Configuration
This was June 2010, using JBoss Tools 3.1.1.
At this time we were focused on
creating Seam examples
, no web
services, and no Seam
We began from the minimal Eclipse (non
mostly interested in the Hibernate query window
JBoss RichFaces T
mostly to provide validation in the source editor
lets you deploy to the server, and start and stop the server
The resulting Feature display looked like:
“JBoss Tools 3 Developer’s Guide”
by Anghel Leonard. Packt Publishing,
n price $35.99, used from $35.99
Rated 5 stars on
(from 1 review)
. The book
summary states that it helps you develop JSF, Struts, Seam, Hibernate, jBPM, ESB, web services, and portal
applications faster than ever using JBoss Tools for Eclipse
and the JBoss Application Server
. From what we have
seen in some other Packt books, this is probably
mostly material that is already available from online sites,
organized into a book.
“Seam in Action” by Dan Allen.
August 2008, 624
s. List price $49.99, Amazon price $29.69,
used from $25.33. Rated 5 stars on Amazon.com. Considered the
overall book on Seam. It is as well
as most other Manning books, and has good examples. The author was on several of the Seam committ
ees, and has
written several articles on Seam. We bought a copy in March 2009.
“JBoss in Action
: Configuring the JBoss Application Server
by Javid Jamae and Peter Johnson.
January 2009, 496 pages. List price $49.99, Amazon price $31.49,
used from $23.77.
Rated 5 stars, from 4
. This i
s the first book to focus on teaching readers in detail how to use the JBoss application server. Unlike
other titles about JBoss, the authors of
JBoss in Action
go deeper into the advanced feature
s and configuration of
the server. In particular, it focuses on enterprise
class topics, such as high availabil
ity, security, and performance.
This book walks readers through the JBoss 5 Application Server from installation to configuration to production
It is not as much of a developer’s guide, as it is an
guide and an architect’s guide to
some of the advanced features, which include JBoss Seam and JBoss Portal.
Typically, you install JBoss tools on top of an
ipse JEE download. The 3.0.1
Eclipse “Ganymede” 3.4.2.
However, the installation page suggests that you can also start with the platform Eclipse download, for a smaller
download and footprint. This download skips some of
the JEE support functions, but since the main one that we use
is the Server administration, it will work, since the Java Tools installation fetches the minimal set of pieces that it
We tested this on the T43.
It is recommended that you install by
using the “Updates Sites” opt
ion of the Help Menu in Eclipse, rather than
trying to copy files into the Eclipse plugins and features directories manually.
The installation of JBoss tools also provides a number of custom perspectives, such as a Sea
, and their
views. The Seam perspective is covered in more detail below.
One piece of the JBoss tools that we were not familiar with was Smooks.
is a Java framework for filtering
content (XML/XHTML/HTML etc) in a manner that can be o
ptimized for a given execution context, for example a
the list of Project T
ypes looks like:
We will be focusing on the Seam Web Project in this list.
JBoss AS Tools
Allow you to define configuration for a JBoss server to be
started from Eclipse, then start, stop, and restart the
In order to get started cre
ating, running, and debugging J
EE applications, we
create our runtime and server
The runtime instance is the Java Environment
. In this
case, we a
re at Java 1.6
The server instance is
the JBoss instance.
ng table lists possible server statuses.
The status which allows you to see if changes are awaiting
The status which shows if changes
are being updated
The status which allo
ws you to see if changes are in
All available context menu commands are described in the following table:
Publish to the server
button will republish any modules where it has determined the wo
rkspace is out of sync with
the server. It will attempt to do an incremental publish if it turns out that the module in question is capable of doing
if you need to clean projects
published on the server, i.e. remove invalid resou
rces from the
Note that this doesn’t undeploy a project/module
the only way to do that is to use the Add and Remove
Projects dialog, move the project to the left side, then click OK, then reverse the process.
The server configuration dialog loo
An important note here is the “deploy directory”, in the plug
. If this directory con
copies of a deployable
module, you will get “duplicate deployme
In order to debug your applications or EJB's that are deployed to the server, you must start the server in debug mode.
ting the server in debug mode, E
clipse will allow you to set breakpoints on code in your workspace and step
This is very useful!
Start the server in profiling mode
profiling actions for your application.
For more details on how to
start using TPTP profiling with
The most useful
capability in Seam tools is the updated version of the
Seam Project G
This is an interactive
facility to run the Seam
gen tool, which can also be run from the command line. The best explanation is located in
Chapter 2 of the “Seam in Action” book.
However, please note that JBoss Tools Seam Gen and the command
gen produce different results. A site
e two is located at:
This produced a project group like:
This empty shel
l application includes:
Ant build script
Deployment to JBoss AS (EAR or WAR)
Development and production profiles
Integration testing using TestNG and Embedded JBoss
JavaBean or EJB 3.0 Seam components
JPA entity classes
A configurable DataSource and JPA E
Templated Facelets views
RichFaces panels and tables
Default CSS stylesheet
Note that the project name must begin with a lower case, due to a Seam naming restriction. This is documented on
the web site, and menti
oned in the dialog box.
In this case, the projects are organized as:
this is a container, and has the web content directory.
this is used for building
this contains the place for the main business code
tains test code, and is mostly empty.
created the alpha
ds.xml file, which contained the database connection information.
This must be deployed
One problem that took a great deal of time to solve is that the security/drools code requir
es mvel, not mvel14 if you
are running on Java 1.6. Created a very difficult to find problem with message:
nable to create object org.mvel.impl
Apparently this class was changed from an interface to a class on the non 1.4 v
The WebContent contains the following:
This allows us to have an index page, a home page, and a login page, plus an error display page.
The index page
simply forwards to
can display a user name or no
t. It also offers links
log in, log out, and view the Seam web site page.
What is handy about these pages is not their function (which is almost none), but that they have been implemented
with Facelets, including the use of a master template. Hence,
you can add pages and provide a common navigation
In the layout, there is a sub
component called “menu.xhtml”, and it would be easy to add one for “footer.xhtml”.
Each of these would be decorated with an Facelets <ui:component> tag.
ogram also includes J
ersistence and MySQL database connectivity.
There are also options to run the Seam project generator such that it doesn’t produce a Seam, JSF, Facelets project,
but only a JSF, Facelets project.
The main difference between this
approach and running the JBoss Tools Web/JSF
application project is that the Seam project generator gives you the persistence configuration and the persistence
What do the options to create and drop schema and content do? They
change the values for persistence.xml.
How do I
ke the security and Drools out (at least for now)?
Where do the entities go?
These should be put into
Where do the actions go?
Into the com.incra.actions director
What is in the test project?
What is provided within Eclipse once Seam Tools are loaded? See below.
Plus you get the Seam perspective, which looks like:
This perspective is mostly useful for controlling the Server (see the bottom), and
building up the XHTML files of
the presentation (see tool palette in upper right, and properties display in lower left).
The primary purpose of these tools is to support
JBoss Web Services Tools
These tools can generate
a web services client from the WSDL file.
JBoss Rules (Drools) tools
This is the Drools IDE, which is described in more detail in our document “Notes on Drools”.
Rich Faces Tools
The following features are implemented and fully supported for the current v
ersion of the RichFaces components:
Additional RichFaces tools in the tools Palette of the visual editor
This provides an interactive guide to specifying and configuration Rich Faces components. Without this, the conte
assist facility only handles regular JSF component, not the Rich Faces components.
pages in VPE you can also take the advantage of
feature for the RichFaces
For example, Richfaces tags
has OpenOn support.
RichFaces in the Visual Editor
For example, see below:
in adds a
n option to your Help menu.
This facility provided about 2 dozen different sample projects, each downloaded from the main sit
e, and built on
your computer. The Seam sample projects were based o
n the Pet
store examples, and the B
There were also ones for Portlet, RichFaces, ESB, and more.
Few of these are critical at the moment, however the
n’t take up much space (since the content is downloaded
Could we tailor the generation of
by changing some template files?
Basically, yes, since it i
the Seam generator. They are simply FreeMarker templates. Howev
er, there is little documentation on how to do