Seam Tools 1.0.beta1 - New and Noteworthy


Seam Projects


Enable Seam Support

The Seam plugin is the first in enabling Seam for Eclipse projects. Currently there are two ways to enable it, use the Seam Web Project Wizard and have a basic Seam Web project be ready with Seam support or enable it on existing projects by right clicking on the project and choose "Add/Remove Seam support"

Seam support on projects does not require your eclipse project to be a WTP project, it can be a plain old Eclipse project (e.g. generated by Seam's seam-gen).

In practice enabling "Seam support" on your project installs the Seam Eclipse builder on your project which will scan your project for Seam artifacts (annotations, component.xml, seam.properties, etc.) to provide the various features.


Views


Seam Components

The Seam components view provides a list of the seam components found in the project.


Component filters

The Seam Component View can be filtered by choosing "Customize View..." and select the "Seam Components from Libraries" under the Filters tab. This will make the view ignore components defined in jar's. This will hide the many built-in Seam components and leave only those left that are actually defined in the project or have actively configured via components.xml.

Consequently deselecting the filter will show you all available components.


Scope presentation

The Seam Component View can show a components default scope in two ways.

As labels on each component:

...or as a node per scope where the components are grouped under a node representing its default scope.


Project Explorer integration

If you don't like to have a view for every piece of information in Eclipse, the content of the Seam Components view is also avaible as a node in the built-in "Project Explorer" (not "Package Explorer") view in Eclipse.


Validation


Seam Validation

Validation of various possible problematic definitions in Seam applications have been implemented. If an issue is found it will show up in the standard "Problems View".

The following is the preference screen for controlling the severity of the various validations:

On WTP projects validation are enabled by default and thus executed automatically, but on normal Java projects you will have to go and add the Validation builder to your project . It is available in the properties of your project under "Validation".

The validations can be run manually by clicking "Validate" via the context menu on your project which will execute all the active WTP validations.


Editing


Expression Language (EL) code completion for Seam Components "everywhere"

JBoss Tools uses the information gathered by the Seam plugin to provide EL code completion for Seam components almost everywhere.

In jsf/xhtml/jsp:

In components.xml:

...and even in Java:

...and over time more will be added


Structured components.xml editor

When editing components.xml a structured tree editor is available in addition to pure source editing.

The "plain vanilla" XML editor option is of course still available via "Open With...".


Direct components.xml editing

components.xml (and other xml files) can be viewed and edited directly in the Project Explorer and Properties sheet without opening the components.xml editor


Wizards


Seam Wizards

First cut of a Seam Web Project Wizard that generates a WTP war or ear project is made available.

Note: The generated WTP projects currently depends on the associated server/runtime to provide the persistence related jars.

Seam wizards corresponding to seam-gen's New Action and New Form are also available.


seam-gen


Seam-Gen menu

Instead of using the Seam Wizards (which generates WTP projects) some users prefer to use the seam-gen tool provided by Seam more directly.

Furthermore not all seam-gen provided functionallity is available in the Seam Wizards just yet, so for that we currently provide a Seam-Gen menu that is merely a wrapper around the seam-gen build.xml script - hence this menu does *exactly* what seam-gen does; nothing more and nothing less (except for automatically register the project and database connection in Eclipse - but that's it).