null  null
Red Hat JBoss Developer Studio
6.0
Seam Developer Tools Reference
Guide
Provides information relating to the Seam Developer Tools module.
Edition 6.0.0
Anatoly Fedosik
Svetlana Mukhina
Olga Chikvina
Michael Sorokin
Red Hat JBoss Developer Studio 6.0 Seam Developer Tools Reference
Guide
Provides information relating to the Seam Developer Tools module.
Edition 6.0.0
Anato ly Fedo sik
Olga Chikvina
Michael So ro kin
Svetlana Mukhina
[email protected] m
Legal Notice
Copyright © 2011 Red Hat.
T his document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported
License. If you distribute this document, or a modified version of it, you must provide attribution to Red
Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be
removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section
4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, MetaMatrix, Fedora, the Infinity Logo,
and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux ® is the registered trademark of Linus T orvalds in the United States and other countries.
Java ® is a registered trademark of Oracle and/or its affiliates.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and other
countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or
endorsed by the official Joyent Node.js open source or commercial project.
T he OpenStack ® Word Mark and OpenStack Logo are either registered trademarks/service marks or
trademarks/service marks of the OpenStack Foundation, in the United States and other countries and
are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or
sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Abstract
T he Seam Developer T ools Reference Guide explains how to use the Seam Developer T ools module to
create Seam projects for deployment.
Table of Contents
Table of Contents
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . .
Preface
.Chapter
. . . . . . . . 1.
. . .Introduction
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5. . . . . . . . . .
1.1. What is Seam?
5
1.2. Key Features of JBoss Seam
5
.Chapter
. . . . . . . . 2.
. . .Creating
.........a
. . New
. . . . . Seam
. . . . . . Project
. . . . . . . . via
. . . .the
. . . .New
. . . . .Seam
. . . . . . Project
. . . . . . . . wizard
. . . . . . . . . . . . . . . . . . . . . . .7. . . . . . . . . .
2.1. Create standalone Seam Web Project
7
2.2. Selecting the Project Facets
15
2.2.1. Seam project with JPA facets
17
2.3. Java application building configuration
18
2.4. How to Configure Web Module Settings
19
2.5. Adding JSF Capabilities
21
2.6. Configure Seam Facet Settings
27
.Chapter
. . . . . . . . 3.
. . .Maven
. . . . . . .Integration
. . . . . . . . . . . .for
. . . Seam
. . . . . . .Projects
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
...........
3.1. Creating Maven ready Seam project
31
3.2. Existing Maven Projects Import
36
.Chapter
........4
. ...Directory
. . . . . . . . . . Structure
. . . . . . . . . . .of
. . the
. . . . Generated
. . . . . . . . . . . .Project
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
...........
4.1. WAR Deployment
38
4.2. EAR Deployment
38
4.3. Changing the Seam Version
39
4.4. Changing Seam Parent Project
41
4.5. Renaming the Projects and Folders
42
.Chapter
. . . . . . . . 5.
. . .Seam
. . . . . . Menus
. . . . . . . and
. . . . .Actions
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .4. . . . . . . . . .
5.1. File Menu Actions
44
5.2. Navigate Menu Actions
44
5.2.1. Find Seam References/Declarations
44
5.2.2. Open Seam Component
46
.Chapter
. . . . . . . . 6.
. . .Seam
. . . . . . Wizards
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. .7. . . . . . . . . .
6.1. New Seam Action
48
6.2. New Seam Form
50
6.3. New Seam Conversation
52
6.4. New Seam Entity
54
. . . . . . . . . 7.
Chapter
. . .Seam
. . . . . . Generate
. . . . . . . . . . .Entities
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
............
.Chapter
. . . . . . . . 8.
. . .Seam
. . . . . . Editors
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
............
8.1. Visual Page Editor
60
8.2. Seam Pages Editor
60
8.2.1. Graphical Mode
60
8.2.1.1. Seam Pages Diagram Preferences
62
8.2.2. T ree Mode
62
8.2.3. Outline Support for Seam Pages Editor
63
8.3. Seam Components Editor
65
8.4. Main Features of Seam Editors
66
8.4.1. Content Assist
67
8.4.1.1. Content Assist for components.xml
67
8.4.1.2. Content assist for @Named beans
69
8.4.2. Content Assist for Page Descriptors
70
8.4.3. OpenOn
70
1
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
8.4.3. OpenOn
8.4.4. Seam Validation
70
74
.Chapter
. . . . . . . . 9.
. . .Seam
. . . . . . Views
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
............
9.1. Seam Components View
79
9.2. Project Explorer integration
82
.Chapter
. . . . . . . . 10.
. . . . Seam
. . . . . . Preferences
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
............
10.1. General Preferences
84
10.1.1. Validator Preferences
85
10.2. Project Preferences
88
10.3. Adding Custom Capabilities
91
.Chapter
. . . . . . . . 11.
. . . . Seam
. . . . . . Refactoring
. . . . . . . . . . . . .T. ools
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
...........
11.1. Using the Refactorinig Wizard
93
11.2. Renaming Seam Components
96
11.2.1. Renaming Seam Components in the Java Editor
96
11.2.2. Renaming Seam Components in the Seam Components View
96
11.2.3. Renaming Seam Components in the Seam Components Editor
97
11.3. Renaming Seam Context Variables in EL
97
. . . . . . . . . 12.
Chapter
. . . . Adding
. . . . . . . .Seam
. . . . . . support
. . . . . . . . .to
. . EAR
. . . . . project
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
.............
.Chapter
. . . . . . . . 13.
. . . .Generate
..........a
. . CRUD
. . . . . . .Database
. . . . . . . . . . Application
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
.............
13.1. What is CRUD?
101
13.2. How to create the CRUD Database Application with Seam
101
.Chapter
. . . . . . . . 14
. . . .. T
. .he
. . .CRUD
. . . . . . Application
. . . . . . . . . . . . .Walkthrough
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
.............
14.1. Using CRUD Application
120
.Chapter
. . . . . . . . 15.
. . . . What
. . . . . .is
. .T
. .estNG?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
.............
15.1. How to use the generated Seam-test project to run Seam tests?
124
.Chapter
. . . . . . . . 16.
. . . . FAQ
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
.............
16.1. How to get Code Assist for Seam specific resources in an externally generated project? 130
16.2. How to import an example Seam project from jboss-eap directory?
130
16.3. How to change the deploy folders for Seam source code from src/hot and src/main?
130
.Getting
. . . . . . . .Help
. . . . .and
. . . . Giving
. . . . . . . .Feedback
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
.............
A.1. Do You Need Help?
131
A.2. Give us Feedback
131
. . . . . . . . . .History
Revision
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
.............
2
Table of Contents
3
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Preface
T his manual uses several conventions to highlight certain words and phrases and draw attention to
specific pieces of information. T o get more information on these conventions please refer to the
Docum ent Conventions manual, which can be found on the Red Hat Documentation website under
the JBoss Developer Studio section.
4
Chapter 1. Introduction
Chapter 1. Introduction
1.1. What is Seam?
T his introduction will help you to understand what is Seam.
Seam is a fully featured application framework on top of Java EE 5. It is also one of the most popular
enterprise Java frameworks today. Seam deeply integrates many other standard-based or open source
frameworks (e.g., JSF, EJB3, JMS, Web Services, jBPM, JBoss Rules, Ajax4jsf, RichFaces, Facelets,
Spring, iT ext, Quartz, T estNG, etc.), and provides a single programming model for developers to "drive"
those underlying frameworks via simple annotated POJOs (Plain Old Java Objects). It makes life easier
for developers to tackle complex enterprise applications with many component frameworks.
1.2. Key Features of JBoss Seam
For a start, we propose you to look through the table of main features of JBoss Seam:
5
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
T able 1.1. Key Functionality for JBoss Seam
Feature
Benefit
Integrated JSF with EJB
3.0
JBoss Seam combines the component models of
EJB3 and JSF, eliminating glue code, and thus,
letting the developer think about the business
problem.
Integrated AJAX
Developer can add AJAX capability to the user
interface of his application without the need to
write any JavaScript code as Seam supports
JBoss RichFaces and ICEfaces - the best open
source JSF-based AJAX solutions.
Bijection
Bijection allows auto-assembly of stateful
components by the container. It even allows a
component to safely and easily manipulate the
value of a context variable, just by assigning it to
an attribute of the component.
New Seam Project
wizard
An easy step-by-step wizard to create a stand
alone Seam Web Project with a form to create
runtime and server instances in order to get
started creating, running, and debugging J2EE
(only) applications. You may also add JSF
capabilities.
Chapter 2, Creating a
New Seam Project via
the New Seam Project
wizard
Seam component
generations options
All the Seam component generations options
known from Seam-gen are available as wizards
(with sensible auto-defaulting) for creating
various common Seam components.
Chapter 6, Seam
Wizards
Seam Editors
Visual Page Editor, Seam Pages Editor and Seam
Components Editor provide you with a range of
great possibilities and will be helpful when
working with JBoss Seam.
Chapter 8, Seam
Editors
Seam Validator
A configured Seam Validator provides validation
of various possible problematic definitions.
Section 8.4.4, “Seam
Validation”
CRUD Database
Application Generation
JBoss Seam allows adding CRUD support to a
Seam Web application.
Chapter 13, Generate a
CRUD Database
Application
T estNG Framework
T estNG ("T esting, the Next Generation") is a
Java unit testing framework that aims to overcome
many limitations of JUnit.
Chapter 15, What is
TestNG?
6
Chapter
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Chapter 2. Creating a New Seam Project via the New Seam
Project wizard
In this chapter we provide you with the necessary steps to start working with Seam Framework.
It is suggested that you use the specific Seam perspective that combines a number of different views
and editors needed for work with resources concerned. For that select Window → Open Perspective
→ Other → Seam.
T he Open Web Browser action is directly available in the Seam perspective.
Figure 2.1. Embedded Web Browser Button
2.1. Create standalone Seam Web Project
T he best way to get started with Seam is to create a simple Seam Project and experiment with it.
T hus, you should select File → New → Other → Seam → Seam Web Project to run the New Seam
Project wizard. T he wizard form allows you to create runtime and server instances in order to get started
creating, running, and debugging J2EE (only) applications.
Seam Web Project wizard has an option for selecting the actual Server (not just WT P runtime) that will
be used for the project. T his allows the wizard to identify correctly where the required datasource and
driver libraries need to go.
Let's get through the wizard step-by-step. First, you should enter a name and a location directory for
your new project.
7
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.2. New Seam Project Wizard
On the figure above you can see the runtime and the server already created.
If you need to create a new runtime, click on the New button in the T arget Runtime section. It brings up
8
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
the wizard where you can specify a new JBoss Server Runtime environment or the other type of runtime
appropriate for your project configuration. Let's create one more JBoss Enterprise Application Platform
6.0 Runtime. Hence, after choosing it click on Next button.
Figure 2.3. Specifying T arget Runtime
All what you need here is to name runtime, type the path to its install directory or locate it by using
Browse button, select a Java Runtime Environment, and select which configuration you want.
9
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.4 . Specifying T arget Runtime Configurations
Clicking on Finish returns you to the Figure 2.2, “New Seam Project Wizard”.
T he next step is to define a Server by clicking on New button in the T arget Server section. In appeared
New Server dialog the last server which matches the runtime will be selected.
All declared runtimes are listed in the combobox under the servers view. Here, you can indicate a server
runtime that you need. Click Add if you want to add a new Server Runtime.
10
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.5. Specifying T arget Server
Next page allows you to verify the information for a chosen server. Leave everything as it is and click on
Next.
11
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.6. JBoss Runtime Summary
On the last wizard step you can modify your projects to configure them on the Server.
12
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.7. Project Modification for Configuring on the Server
Once you have the T arget Server defined click on Finish button to return to the first page of the New
Seam Project wizard.
13
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Note
Refer to the Application Server Manager Guide to find out more about runtimes and servers.
Figure 2.8. Completion of Runtime and Server Configuration
14
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
T he last section on this wizard step is Configuration. Here, you can select one of the predefined project
configurations either associated with Seam 1.2, Seam 2.0 or with Seam 2.1. Furthermore, you can create
your own configuration by pressing the Modify button. It will open the dialog which allows to configure
your own set of facets for adding extra functionality to your project.
Pass to the next section to find out more details on this dialog.
2.2. Selecting the Project Facets
T he Project Facets wizard allows you to enable or disable specific facets which define necessary
features for the project. When you switch to this wizard form, all critical facets are already checked for
the chosen Configuration.
Notice that this page of the wizard also allows you to set the necessary version for any facet.
Figure 2.9. Project Facets Selection
Moreover, here you can specify your own preset of selected facets by checking needed ones in project
facets window and clicking on the Save as button.
15
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.10. Specifying Custom Facet Preset
T o see all available Server runtimes click on Runtimes tab on the left. You can create a new one using
the New button. If more than one runtime is checked here, the Make Prim ary button will not be dimmed
yet. T hus, you can make use of it to mark primary runtime.
16
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.11. Setting Runtime
Clicking the OK button will bring you to the Web Module wizard form again.
2.2.1. Seam project with JPA facets
For creating a Seam project with JPA support you need to select Java Persistent facet on Project Facets
page and click OK.
T hen press Next and you can use the default value on the Java application building page
After that you will see JPA facet page.
17
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.12. JPA Facet page
On this page you can choose Platform (vendor-specific JPA implementation) for your project, type of JPA
Implementation, and configure the Connection to database in the Connection area.
T he next page concerns Web Module Settings. Accept the default values and press the Next button.
On the next step you will see JSF Capabilities and Seam facet pages, which are mostly the same as in
general Seam project.
2.3. Java application building configuration
With this wizard you can define Java source directories which will be generated on build path. Also you
can specify a default output folder. If you are agree with default values, press Next
18
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.13. Java application building Wizard
2.4. How to Configure Web Module Settings
19
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
As we deal with a Dynamic Web Application, we should at first specify the top level directory of our
application for deploying it to a server afterwards. T his kind of application contains Web resources, so it
is important to indicate the content directory. T he wizard will put all those values itself, so you can leave
everything as is.
Figure 2.14 . Web Module Settings
20
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Choose Next to switch to the next wizard form.
2.5. Adding JSF Capabilities
T his wizard helps you to add JSF capabilities to your project.
Choose Library provided by Target Runtime from Library T ype list if you'd like to use a default JSF
implementation given by the present runtime.
21
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.15. Adding JSF Capabilities to Web Project
If you prefer to use your custom JSF implementation, choose User Library Item from Library T ype list. In
User Library list you can check required library.
22
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.16. Using Custom JSF implementation Library
If a new library is required, click Manage libraries... (
) button. T hen you should click New.
23
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.17. Using Custom JSF implementation Library
Here, it's necessary to type a Library Name.
24
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Figure 2.18. Entering New User Library Name
T o add proper Library JARs, click Add JARs... button and select the JARs on your hard drive.
Figure 2.19. Selection Library JARs
25
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
You can download necessary JSF implementation libraries provided by Sun and Apache Foundation as
well. Click Download... (
) button and choose one of proposed libraries.
Figure 2.20. Download JSF Implementation Library
T he last wizard options allows to edit a path for JSF Configuration File, a name for JSF Servlet, JSF
Servlet Classname and change URL Mapping Patterns.
Figure 2.21. JSF Capabilities Wizard
26
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Since we are arranging the Seam Web project, the last step we should do is to adjust project
configurations associated with the Seam.
2.6. Configure Seam Facet Settings
T he last wizard step is related to Seam facet and allows you to do the following:
27
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.22. Seam Facet Settings
Create Seam runtime and define Seam home folder.
For that click on Add button in the General section. Note, in the wizard shown below you can create a
28
Chapter 2. Creating a New Seam Project via the New Seam Project wizard
Seam runtime only for the version that was selected in the Section 2.2, “Selecting the Project Facets”
wizard.
Figure 2.23. Seam Runtime Creation
Select EAR or WAR deployment by checking a necessary radio button.
Enter EJB project name and EAR project name in case of EAR radio button is checked.
Note
If you want to name your web project "MyProject-war" the EJB project should not be "MyProjectwar-ejb", it should be "MyProject-ejb". T he same for EAR and T est projects' names. T hey should
be respectively "MyProject-ear" and "MyProject-test".
In the Code Generation section the wizard has already provided the names for your Session Bean,
Entity Bean and T est packages generation (optional). Of course, you can change them on others of your
choice.
29
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 2.24 . Code Generation Section
Click on Finish to generate a project.
30
Chapter 3. Maven Integration for Seam Projects
Chapter 3. Maven Integration for Seam Projects
Maven integration is included by default, allowing you to create mavenized Seam projects and use Seam
tools with imported Maven projects.
3.1. Creating Maven ready Seam project
Maven Integration makes the Seam Wizard capable of creating Maven ready projects to let Maven get
the libraries instead of using the Seam runtime.
T o create a mavenized Seam project you should perform the following steps:
Navigate to File → New → Other → Seam Web Project. Give the project a meaningful name,
specify a target runtime and server and select the proper configuration for your Seam project:
Figure 3.1. Starting the Mavenized Seam Project
Click the Modify button to enable the Jboss Maven Integration facet:
31
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 3.2. Enabling the Jboss Maven Integration Facet
On the JBoss M2 capabilities page you'll be prompted to add the following maven properties: groupId,
artifactId, version, packaging, name and description. Here it's possible to set a maven version of
Seam and also decide whether to remove WT P classpath containers (where the path starts with
org.eclipse.jst).
32
Chapter 3. Maven Integration for Seam Projects
Figure 3.3. Adjusting JBoss M2 Capabilities
On the JSF Capabilities page you can choose Maven as libraries provider. T his is possible when you
use Seam version compatible Maven JSF Libraries as a type of JSF Implementing Library. Also it
gives you capability to edit Dependencies and Exclusions for the mavenized Seam project directly
from the wizard.
33
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 3.4 . Using JSF Implementation libraries provided by Maven
On the Seam Facet page configure the Seam Facet settings and click Finish:
34
Chapter 3. Maven Integration for Seam Projects
Figure 3.5. Seam Facet Settings
T he organized Seam project contains five projects with the Maven nature, builder, Maven classpath and
the pom.xml files added: projectname, projectname-ear, projectname-ejb, projectname-parent and
projectname-test.
35
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 3.6. Mavenized Seam Project
3.2. Existing Maven Projects Import
Maven Integration includes the Seam Maven configurator which is called when importing a project,
changing pom.xml and/or calling Maven → Update Project Configuration. When importing a Maven
Seam project, the Seam Maven configurator picks up the settings set up in pom.xml and adds to the
project the following:
Seam nature
Seam facet and dependent facets to the EJB, EAR and WAR projects
JBoss Maven Integration facet if the Maven project contains a dependency with the org.jboss.seam
groupId and an artifactId starting with 'jboss-seam'
other required facets (Web Module, Java, JSF, etc.)
If the Seam version from pom.xml matches a version of a Seam runtime configured in the workspace,
Seam configurator will set that runtime, otherwise no Seam runtime will be set and you'll have to set it
manually under Section 10.2, “Project Preferences”.
Seam configurator recognizes the Seam artifacts in the following way: the view folder is a web content
folder from the WAR project, the source folder is the first Eclipse source folder. If there is a folder
containing "hot" in the name, it will be chosen as the action source folder. Package is the first package
that has children or doesn't have any subpackage.
Configuring the Seam when importing a Maven project as well as a Seam Runtime, Seam artifacts and
some facets could be suspended in the JBoss Maven Integration preferences (Window →
Preferences → JBoss T ools → JBoss Maven Integration).
36
Chapter 3. Maven Integration for Seam Projects
Figure 3.7. JBoss Maven Integration Preferences
37
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 4. Directory Structure of the Generated Project
In this chapter we describe where the Seam wizard puts the generated files for both EAR and WAR
deployments.
T he Seam Project wizard generates projects like Eclipse WT P style in order to utilize Eclipse WT P
features and to have a correct classpath. T o be more precise it generates one project per artifact.
4.1. WAR Deployment
T he project layout for WAR projects is:
Figure 4 .1. Project Layout for WAR projects
A WAR project can only use Seam JavaBean and JPA Entity bean components; it cannot use EJB3
Session beans etc.
WAR projects are generated to enable Seam war hotdeploy feature. Classes put into src/action will be
deployed to WEB-INF/dev from which Seam automatically will perform hotdeploy of new components.
Note:
Because of Eclipse WT P limits the hot deployed classes also existed in WEB-INF/classes, but
since Seam gives WEB-INF/dev precedence it will work.
Furthermore the Seam Project wizard generates a test project that is setup to run directly against the
proper libraries and server runtime libraries. You can run tests via Run As → T estNG T est.:
Chapter 15, What is TestNG?.
In order to deploy WAR project on server, right-click on the project and select Run As → Run on
Server. Studio will deploy WAR project into one web application on server to deploy folder.
4.2. EAR Deployment
T he project layout for EAR projects is:
38
Chapter 4. D irectory Structure of the Generated Project
Figure 4 .2. Project Layout for EAR projects
An EAR project can use the whole range of Seam components, including EJB3 Session beans.
In order to deploy EAR project on server, right-click on the project with -ear postfix and select Run As →
Run on Server. Studio will take care about all modules and deploy EAR project into one enterprise
application on server to deploy folder. EAR application keeps ejb and war modules of the EAR project.
Note:
T he WAR generated for EARs is now configured to utilize Seam hot-deployment (WEB-INF/dev)
similar to standalone WAR projects.
4.3. Changing the Seam Version
T o upgrade or downgrade your projects Seam version use the facet preferences. You should right-click
your project, open its Properties and choose Project Facets category. Next select Seam and change its
version to needed one.
Figure 4 .3. Changing the Seam Facet Version
39
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
After pressing Apply the wizard for adjusting new Seam runtime settings appears.
Figure 4 .4 . Changing the Seam Facet Version
If you need to update the libraries for you project, check the Update libraries option. All libraries you
checked will be removed and the libraries from the new Seam distribution will be added after clicking Ok.
40
Chapter 4. D irectory Structure of the Generated Project
Figure 4 .5. Changing the Seam Facet Version
Note:
T he note "Seam configuration files and their XSDs won't be changed" is meant that the libraries,
Seam facet and runtime version will be changed, but configuration files that refer to the old
version will have to be manually updated.
4.4. Changing Seam Parent Project
T o change the Seam parent project, navigate to your project preferences and select Seam Settings
category on the left. Press the Browse button next to the Main Seam Project section to select the other
Seam parent project.
41
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 4 .6. Changing Seam Parent Project
4.5. Renaming the Projects and Folders
If you need to rename one of the Seam Project artifacts (<project_name>, <project_name>-ear,
<project_name>-ejb or <project_name>-test) or any entire folder like <project_name>/WebContent,
<project_name>/ejbModule, <project_name>-test/test-src, or project name in packages
org.domain.<project_name>.session, org.domain.<project_name>.entity, you can do this by accessing
the context menu and navigating to Refactor > Rename... or just pressing Shift + Alt + R under the
chosen resource.
Figure 4 .7. Renaming the folder
42
Chapter 4. D irectory Structure of the Generated Project
Use Refactor > Move... (or Shift + Alt + V ), if you need to move <project_name>/WebContent folder,
<project_name>/ejbModule folder or <project_name>/test-src folder in the other place within the Project
structure.
Figure 4 .8. Moving the folder
43
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 5. Seam Menus and Actions
In this chapter we provide a description of Seam actions that are available from
Menu bar
T oolbar
Context menus in views
5.1. File Menu Actions
T he following actions are in the Seam Perspective by default: File → New submenu
T able 5.1. Seam Actions in the New Submenu
Name
Function
Seam Web Project
Runs Section 2.1, “Create standalone Seam Web Project” wizard for creating a
new Seam project
Seam Action
Runs Section 6.1, “New Seam Action” wizard for creating a new Seam action
Seam Form
Runs Section 6.2, “New Seam Form” wizard for creating a new Seam form
Seam Entity
Runs Section 6.4, “New Seam Entity” wizard for creating a new Seam entity
Seam
Conversation
Runs Section 6.3, “New Seam Conversation” wizard for creating a new Seam
conversation
Seam Generate
Entities
Runs Chapter 7, Seam Generate Entities wizard
5.2. Navigate Menu Actions
In the next sections we are going to describe Seam actions which can help you to easily navigate
through the source code.
5.2.1. Find Seam References/Declarations
T o find EL expressions both in .java and .xhtml files use Find Seam References and Declarations
actions. For that, in the main menu bar click on Search → Find Seam References or Search → Find
Seam Declarations.
Look at the description of the actions in the table below.
T able 5.2. Find Seam References/Declarations actions
Name
Function
Keyboard Shortcut
Find Seam
References
Find all references and declarations to the selected
element. It's available for EL expressions in both .java
and .xhtml files. Differs from normal Eclipse Find
References/Declarations by showing an EL or Seam
references in the Search View.
Ctrl+G
Find Seam
Declaration
s
Ctrl+Shift+G
also Ctrl + 1 for .java files
On the screenshot example below you could see that the search results are listed in the Search view.
44
Chapter 5. Seam Menus and Actions
Figure 5.1. Find Seam Declaration for "Identity"
You can also use Ctrl + 1 in .java files to activate the actions:
Figure 5.2. Find Seam References for "Identity"
45
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
5.2.2. Open Seam Component
T o open Seam Components click on Navigate → Open Seam Component in the main menu bar. T his
dialog is also available from toolbar icon or with hot keys combination "Ctrl+Shift+Z ".
Figure 5.3. Open Seam Components icon
In the table below read a description about the dialog.
T able 5.3. Open Seam Components Dialog
Name
Function
Keyboard Shortcut
Open Seam
Component
s
Brings up the Open Seam Component dialog to open a
component in the editor. T he Open Seam Component
selection dialog shows all Seam components existing in
the workspace. You can search the components via their
short, imported or full name.
Ctrl+Shift+Z
Enter a name in the text field and see the results as it shown on screenshot:
Figure 5.4 . Open Seam Components Dialog
You can also open Seam Component from the other component where the required one is declared in
@ In by using Section 8.4.3, “OpenOn” (Ctrl + left click and select Open Declaration of Seam
Component for seam_component in Seam_class.java ).
46
Chapter 6. Seam Wizards
Chapter 6. Seam Wizards
T his chapter introduces you with Seam Components.
All the Seam component generations options known from Seam-gen are available as wizards (with
sensible auto-defaulting) for creating various common Seam components:
Seam Action
Seam Form
Seam Entity
Seam Conversation
Go to File → New and select the component wizard.
Figure 6.1. Seam Component Wizards
T he wizards create multiple resources and place it in the appropriate folders depending on your project
structure (WAR or EAR).
Let's create a WAR project using the New Seam Project wizard.
47
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 6.2. Seam Project WAR Deployment
After the project is created you need deploy it on server.
6.1. New Seam Action
In this and following sections you can see example creating Seam Components.
T o create a New Seam Action you should select a necessary project, type a name for Seam component,
POJO class, Method, Page and select a Package using the Browse button.
48
Chapter 6. Seam Wizards
Figure 6.3. New Seam Action Wizard
If you specify a class which already exists, the wizard will warn you about it.
Figure 6.4 . Wizard Warning against Existing File
49
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
You can see the action page in WebContent folder. Click on it to open in JBoss T ools HT ML Editor.
Figure 6.5. Action Page in JBoss T ools HT ML Editor.
Note:
You don't need to restart the server to see how the action component works. Just use context
menu Run As → Run On Server.
Action component was hot-deployed. Forms and Conversations will work the same way.
Figure 6.6. Action Component
Click on actionMethod in the internal browser and add a form in your project using the New Seam
Form wizard File → New → Seam Form.
6.2. New Seam Form
Select a necessary project, type a name for Seam component, POJO class, Method, Page and select a
50
Chapter 6. Seam Wizards
Package using Browse button.
Figure 6.7. New Seam Form Wizard
If you specify a class which already exists, the wizard will warn you about it.
Figure 6.8. Wizard Warning against Existing File
51
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
T he Form Page was created in WebContent folder.
Figure 6.9. Form Page in JBoss T ools HT ML Editor.
Deploy the form on server. Right click on Form Page, select Run As → Run On Server.
Figure 6.10. Form Component
Form component was hot-deployed.
Enter some value in the text field (for example, value1) and click on form Method.
6.3. New Seam Conversation
Add a conversation using the New Seam Conversation wizard File → New → Seam Form.
You should select a necessary project, type a name for Seam component, POJO class, Method, Page
52
Chapter 6. Seam Wizards
and select a Package using Browse button.
Figure 6.11. New Seam Conversation Wizard
If you specify a class which already exists, the wizard will warn you about it.
Figure 6.12. Wizard Warning against Existing File
53
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Conversation page was created in WebContent folder.
Figure 6.13. Conversation Page in JBoss T ools HT ML Editor.
Right click on Conversation page, select Run As → Run On Server.
Figure 6.14 . Conversation Component
Conversation component was hot-deployed.
Click on Begin and Increment buttons to check the conversation functionality.
6.4. New Seam Entity
Entities cannot be hot-deployed, so we need to stop the server.
Create an Entity using the New Entity wizard File → New → Seam Entity.
54
Chapter 6. Seam Wizards
You should select a necessary project, type a name for Entity class, select a Package using Browse
button, type a name for Master Page and Page.
Figure 6.15. New Seam Entity Wizard
If you specify a class which already exists, the wizard will warn you about it.
55
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 6.16. Wizard Warning against Existing File
T he Master Page and the Entity were created in WebContent folder.
Figure 6.17. Master Page in JBoss T ools HT ML Editor.
T he Entity page is:
Figure 6.18. Entity Page in JBoss T ools HT ML Editor.
Run the Entity page on server. T his is what you get:
56
Chapter 6. Seam Wizards
Figure 6.19. Customer Page
Let's create two customers c1 and c2. Enter the name in the text field and press the Save button.
Customer should be successfully created. Press Done. Do the same for c2 customer. T he result should
be:
Figure 6.20. T wo Customers Are Created
57
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 7. Seam Generate Entities
Generate Entities is available by navigating to File → New → Other → Seam → Seam Generate
Entities
T he wizard generates a set of CRUD Seam components and web pages based on existing tables in a
database or on existing entities in your application.
Figure 7.1. Generate Seam Entities Wizard
By default, the generation mode is set to Reverse engineer from database. T he reverse engineering
from a database could be described in four steps:
1. T he wizard gets in database, extracts the tables and their connections
2. On basis of this metainfomation the Entity classes are generated into
org.dom ain.project.entity package
3. For the entities from step 2 the classes EntityList and EntityHome are generated into
org.dom ain.project.session package
4. T he xhtml pages are generated.
58
Chapter 7. Seam Generate Entities
Note:
T he entities are generated from a database based on the console configuration that is created
automatically during a Seam project creation. (Read more about the console configuration in the
Hibernate guides). T he created console configuration is based on the connection profile set on
the Section 2.6, “Configure Seam Facet Settings” while creating a project. Configured connection
profile settings are hold in the generated hibernate-console.properties. T o change the
connection profile, double-click the console configuration. It could be found in the Hibernate
Configurations view (Window → Show view → Other → Hibernate → Hibernate
Configurations or just switch to the Hibernate perspective).
Checking the Use existing entities mode the wizard executes only 3 and 4 steps. It generates missing
classes and xhtml pages.
Read the Chapter 13, Generate a CRUD Database Application chapter in order to see how the Generate
Seam Entities wizard can be used.
59
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 8. Seam Editors
T his chapter tells about Seam Editors and their features.
8.1. Visual Page Editor
Visual Page Editor is a great tool to use for the authoring of Seam pages. T he major features of VPE are
listed in Section 8.4, “Main Features of Seam Editors”
You can also read more about Visual Page Editor in the Visual Web T ools Reference Guide.
8.2. Seam Pages Editor
Seam Pages Editor provides a handy way to edit the pages.xml file.
You can edit the pages.xml file in three modes: Graphical, T ree and Source.
Seam Pages Editor supports synchronization with Package Explorer.T his means that while renaming
files in the Package Explorer all the changes immediately affect the pages.xml file.
8.2.1. Graphical Mode
Graphical mode provides you with a set of visual tools to organize your project pageflow, exception
handling etc.
Figure 8.1. Seam Pages Editor: Graphical View
60
Chapter 8. Seam Editors
T he Graphical part of the editor has some visual elements. T he table below shows graphical
representation of the elements and explains their meanings.
T able 8.1. Pages Editor: Graphical View. Visual elements
Element
Description
A yellow box with a solid border represents a
<page> element.
Pressing on the plus icon ( ) on the <page>
element reveals a box that lists the parameters
for the page.
A red cross in the upper left corner of the page
box indicates that the view-id is not found in the
project.
A gray box with a dashed border represents a
page that has navigation (navigation rule) to but
the page is not defined in the page.xml file.
An <exception> is represented by a blue box
with a orange diamond.
Pageflow relations are shown with gray arrows, when you select a relationship the arrow is changed to
orange.
On the left hand side of the Graphical view of Seam Page Editor you can find a toolbar with a set of icons
for the most frequently used commands.
T able 8.2. Pages Editor: Graphical View. Commands Icons
Icon Image
Command
Select a page element
Marquee a page item
Add a page relationship
Add an exception rule
Context menus are also available when you click either on an item or a blank space.
A context menu called on a blank space of the diagram provides the following options:
Page creates a new page element on the diagram
Exception creates a new exception element on the diagram
Auto Layout formats the layout of the diagram automatically
Select Element calls the Select Element Wizard with a filter to perform a quick search through the
pages.xml file
61
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Right clicking on a selected <page> element calls a context menu where you can choose the following
options if you click on the New menu item:
Rule opens the Add Navigation Rule dialog in which you can browse your project for a view page to
set the view-id in the navigation rule and specify render or redirect navigation options
Param calls a dialog box where you can define a parameter (using the <param > tag) for the
<page> element
8.2.1.1. Seam Pages Diagram Preferences
In order to customize the layout of Diagram you can go to Window → Preferences → JBoss T ools →
Web → Editors → Seam Pages Diagram.
Figure 8.2. Preferences of Seam Pages Diagram
8.2.2. Tree Mode
T ree Mode provides a wider range of options and way to edit and modify the pages.xml file.
62
Chapter 8. Seam Editors
Figure 8.3. Seam Pages Editor: T ree View
In this mode all elements and attributes of the page.xml file can be viewed and edited in a visual, user
friendly way.
8.2.3. Outline Support for Seam Pages Editor
Seam Pages Editor provides Outline view support. You can explore the pages.xml using Outline view in
two modes: T ree ( ) and Diagram Navigation (
).
T he Diagram Navigation mode of Outline view gives a birds-view of the layout to allow quick navigation
for large-scale applications.
63
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.4 . Outline view: Diagram Navigation mode
T he T ree mode shows a tree for every element in the pages.xml file. You can get a quick overview of the
whole file. When selecting an element in the Outline view the related element is highlighted in the
Graphical, T ree or Source page of Seam Pages Editor.
Figure 8.5. Outline view: T ree mode
64
Chapter 8. Seam Editors
8.3. Seam Components Editor
When editing components.xml a structured tree editor is available in addition to pure source editing. It
has a graphical view (T ree tab) and source (Source tab).
Figure 8.6. component.xml Editor
65
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Note:
You can view and edit components.xml and other xml files directly in the Project Explorer and
Properties sheet without opening the components.xml editor.
Figure 8.7. component.xml Editor
8.4. Main Features of Seam Editors
In this chapter you will know what Seam Editors features are and how to work with them.
66
Chapter 8. Seam Editors
8.4.1. Content Assist
Content Assist (Ctrl + Space) is available when using EL expressions in the following file formats:
JSP
XHT ML
XML
JAVA
Notice, the code completion for the Seam components shows the proposals marked with Seam icon.
Figure 8.8. Content Assist
Content Assist is also available for the "jsfc " attribute, it lets you select from a list of possible attribute
values. Whereas, JSF components appear above all other components in the list.
Figure 8.9. Content Assist for the "jsfc" attribute
Note:
T o get Code Assist available for an externally generated and imported project, don't forget to
enable Seam features and configure Seam Settings in Section 10.2, “Project Preferences”.
8.4 .1.1. Content Assist for components.xml
While you are editing a components.xml file you can make use of the Content Assist for inserting
67
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
needed elements.
Figure 8.10. Content Assist in the component.xml Editor
T he editor also makes code completion aware of methods/attributes for EntityQuery component.
68
Chapter 8. Seam Editors
Figure 8.11. Content Assist for EntityQuery Component
8.4 .1.2. Content assist for @Named beans
T o the nice code completion you can also use Content assist for all occurrences where @Named beans
are used.
69
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.12. Content assist for @Named beans
8.4.2. Content Assist for Page Descriptors
Content Assist ( CA ) is available for Page Descriptors, .page.xml and page.xml files. Content Assist lets
you easily compose a Page Descriptor file by suggesting elements and attributes. T he suggestions are
context dependent, which means that CA provides only the elements, attributes and in some cases
values for the attributes, suitable in a particular place of your Page Descriptor.
Seam Pages Editor also supports code completion in EL-expressions suggesting you possible bean
properties and methods.
8.4.3. OpenOn
OpenOn lets you easily navigate through your project without using the Package Explorer or Project
Explorer. After pressing Ctrl + left click (or just F3) you will see a corresponding method or class.
70
Chapter 8. Seam Editors
Figure 8.13. OpenOn
OpenOn is available for the following files:
OpenOn in XHT ML files
OpenOn in XML files
OpenOn in Java files
Note
For more information on OpenOn, see the Visual Web T ools Reference Guide.
OpenOn in XHT ML files
Using OpenOn in .xhtml files you can open:
components or properties resolved using an EL expression;
all actions described in pages.xml;
other .xhtml files that paths are specified in a current file;
image files that paths are set in the value property.T he files will be opened in the default system
graphical editor.
OpenOn in XML files
OpenOn is also supported in Page Descriptors (.page.xml and pages.xml). OpenOn allows you to
navigate to Java beans as well as to view pages. You can Ctrl + left click on a bean or on view page file
(for example, a XHT ML file) to navigate to the file you clicked on.
71
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.14 . OpenOn in .page.xml file
If you use Rule-based authorization with Drools in your Seam application you can apply OpenOn in
components.xml to open the files containing rule definitions in the "rule-files" tag.
Figure 8.15. OpenOn in components.xml file
72
Chapter 8. Seam Editors
You can also use OpenOn to open jBPM components that are described in Seam component descriptor.
T wo places where it works are available:
inside <component> definition;
Figure 8.16. OpenOn in components.xml file
inside jbpm tags;
Figure 8.17. OpenOn in components.xml file
OpenOn in Java files
OpenOn is also supported in seam components where In annotation is presented. After pressing Ctrl +
left click on the seam component specified in @ In you will get the possibility to open the file where the
component is declarated as well as all of the seam components where it is used in the next declarations:
@Out
@DataModel
@Role
@Roles
73
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.18. OpenOn in Seam Component
8.4.4. Seam Validation
Validation of various possible problematic definitions is implemented for Seam applications.
If an issue is found it will be shown in the standard Problems View.
Figure 8.19. Seam Validation
Note:
Please note, only files within source path and web content are validated, meaning temporary files
or test files are not included.
In the preferences page for Seam Validator you can see and modify the validator behavior. Go to
Window → Preferences → JBoss T ools → Web → Seam → Validator and select the severity level
for the optional Seam Validator problem.
74
Chapter 8. Seam Editors
Figure 8.20. Seam Validator Preferences
On WT P 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 of your project . It is available in the properties
of your project under Validation.
75
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.21. Enabling the Validation Builder
T he validations can be run manually by clicking Validate via the context menu on your project (folder or
file inside your project) which will execute all the active WT P validations. Following to the project's
preferences under Validation it's possible to enable/disable any validator.
It's also possible to turn off the validation for some resource (a file, folder) inside your project via the
Exclude Validation context menu option.
76
Chapter 8. Seam Editors
Figure 8.22. Excluding Validation for the WebContent Folder
As a result, if you've turned off the validation for a folder (or file), it is put to the excluded group of the
Validation filters and be ignored during the validation.
77
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 8.23. Validation Filters
78
Chapter 9. Seam Views
Chapter 9. Seam Views
9.1. Seam Components View
T his chapter introduces you with Seam Com ponents View.
T he Seam Com ponents view is available from Seam perspective. It provides a list of seam
components found in a project.
Figure 9.1. Seam Components View
By right-clicking on a project and bringing up the context menu, you can create a new Seam project,
action, conversation, form or entity. You can also generate entities from this menu and it is all able to be
done from the Seam Com ponents view.
79
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 9.2. Seam Components View
T he Seam Com ponents View can show a components default scope in two ways:
as labels on each component (click on the triangular symbol at the top of the Seam Components
View page and select Scope Presentation → Label)
Figure 9.3. Label Scope Presentation of Seam Components
as a node per scope where the components are grouped under a node representing its default
scope.
Figure 9.4 . Node Scope Presentation of Seam Components
T he Seam Packages can be presented in two ways:
Flat
80
Chapter 9. Seam Views
Figure 9.5. Flat Presentation of Seam Packages
Hierarchical
Figure 9.6. Hierarchical Presentation of Seam Packages
T he Seam Com ponents view can be filtered by choosing Customize View.
Figure 9.7. Customize View
Select the Seam Components from Libraries under the Filters tab. T his will make the view ignore
components defined in jars. T his will hide the many built-in Seam components and leave only those that
are actually defined in the project or have been actively configured via components.xml. T herefore,
deselecting the filter will show you all available components.
81
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Selecting the Seam Components from Referenced Projects will hide the components that depend on
other projects.
Figure 9.8. Available Seam Component View Customizations
9.2. 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 available as a node in the built-in Project Explorer (not Package Explorer!) view
in Eclipse.
82
Chapter 9. Seam Views
Figure 9.9. Seam Components in Project Explorer
83
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 10. Seam Preferences
In this chapter you get to know how Seam preferences can be modified during the development process.
10.1. General Preferences
Seam preferences can be set using the Seam preference page. Click on Window → Preferences →
JBoss T ools → Web → Seam.
On this page you can manage the Seam Runtime. Use the appropriate buttons to Add more runtimes or
to Remove those that are not needed.
Figure 10.1. Seam Preferences Page
Clicking on Edit button you get the form where you can change the path of Seam runtime home folder,
84
Chapter 10. Seam Preferences
modify name and version. Press Finish to apply the changes.
Figure 10.2. Edit Seam Runtime
Tip:
If you try to delete the Seam Runtime that is already in use by some project in the current
workspace, then a warning message will appear. T o confirm the removal press OK
Besides, when you right-click on your Seam project with deleted runtime in Project Explorer and
select Properties → Seam Settings the error message "Runtime <runtime_name> does not
exist" will appear.
10.1.1. Validator Preferences
Seam preference page includes a subsection Validator. See Window → Preferences → JBoss T ools
→ Web → Seam → Validator.
On this page you can choose a severity level for the various Seam validator problems. For example, if
you want to ignore the case when component name is duplicated expand the Components node and
select Ignore next to Duplicate component name. After that you won't see the error.
85
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 10.3. Seam Validator Preference Page
In the upper right corner of the Seam Validator preferences page there is a Configure Project Specific
Settings link. Clicking on it you get the form where you can choose a project for specific setting. Project
specific configuration allows you to have different validator settings for each project. Check the Show
only projects with project specific settings if you want to see the projects that have been already set.
Click on Ok.
86
Chapter 10. Seam Preferences
Figure 10.4 . Project Specific Configuration
You get the validator properties page for chosen project. Check the Enable project specific settings to be
able to change the settings.
Note:
You can open the same page by right clicking on the needed project in Package Explorer, then
Properties → Seam Validator.
87
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 10.5. Validator Properties Page for Chosen Project
10.2. Project Preferences
Once Seam project is created you can modify its settings. Right click on Seam project in Project Explorer
and select Properties → Seam Settings.
T his project properties page allows you to have a flexible project layout. It means that you are not
restricted with a specific project structure. You can use the Seam wizards (New Action, Form, Entity, etc.)
on Maven, command line seam-gen or your own project structure.
88
Chapter 10. Seam Preferences
Figure 10.6. Properties for Seam Project
Tip:
T he wizard doesn't allow the renaming of the artifacts listed in the Seam Settings. It's possible to
do in the Package Explorer. See Section 4.5, “Renaming the Projects and Folders”.
Also notice, you are not required to use the New Seam Project wizard to benefit from Seam artifact
wizards. You can just enable Seam on your existing project by checking Seam Support and targeting to
Seam Runtime, and then configure the folders as you want.
89
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 10.7. Properties for Seam Project when Seam runtime is not selected
Tip:
On the figure above fields for configuring Seam artifacts are unavailable because Seam Runtime
is not selected.
In Seam Wizards (New Action, Form, Entity, Conversation, Generate Entities) you can get a quick access
to project settings using the Settings link in the upper right corner of each wizard.
90
Chapter 10. Seam Preferences
Figure 10.8. Quick Setting Link In Seam Wizards
10.3. Adding Custom Capabilities
JBoss T ools provides a possibility to add custom capabilities to any Seam project, i.e. add a support of
additional frameworks built on top of JSF, such as
ADF
Facelets
JBoss Rich Faces (versions 3.1, 3.2, 3.3)
T o enable it, you should call the context menu for a Seam project and select Configure → Add
Custom Capabilities. T hen check the needed modules and press Finish.
91
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 10.9. Custom Capabilities be added to Seam Project
T he next page displays all the updates that have been made to the project.
Figure 10.10. Adding Custom Capabilities to Seam Project
92
Chapter 11. Seam Refactoring Tools
Chapter 11. Seam Refactoring Tools
T he goal of Seam components refactoring is to make system-wide code changes without affecting the
behavior of the program. Seam T ools provides assistance with code refactoring.
Seam refactoring tools includes the following refactoring operations:
Section 11.2, “Renaming Seam Components”
Section 11.3, “Renaming Seam Context Variables in EL”
Refactoring commands are available from the context menus of several views and editors; for details,
see Section 11.1, “Using the Refactorinig Wizard”.
Note:
Seam refactoring could be only performed in the file that is not marked as Read only in its
properties.
Figure 11.1. Properties View for Java File
11.1. Using the Refactorinig Wizard
T his wizard is opened always when the user clicks the Rename Seam Component, Rename Seam
Context Variable or Rename command in any of the views/editors mentioned later in this chapter.
93
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 11.2. Refactoring Wizard
In the Seam Components name field you should enter a new name of the component, then click Next and
follow the next wizard steps:
94
Chapter 11. Seam Refactoring Tools
Figure 11.3. Navigating Between the Differences
As you see, when performing a refactoring operation, you can preview all of the changes resulting from a
refactoring action before you choose to carry them out.
T he view represents two windows: one with the original source code and the other with refactored one.
With the help of
,
,
,
buttons you can quickly navigate between the differences in the code. If
you don't agree with some changes you can't undo them but you can remove the class from the list of
classes that need refactoring.
Figure 11.4 . List of classes that need refactoring
95
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
T o apply the changes click Finish.
Renaming the selected seam component corrects all references to the component (also in other files in
the project). Renaming a type doesn't allow to rename similarly named variables and methods.
11.2. Renaming Seam Components
Renaming a Seam component could be performed in the:
Section 11.2.1, “Renaming Seam Components in the Java Editor”
Section 11.2.2, “Renaming Seam Components in the Seam Components View”
Section 11.2.3, “Renaming Seam Components in the Seam Components Editor”
11.2.1. Renaming Seam Components in the Java Editor
If you want to rename certain seam component using Java editor, first of all it's necessary to open it. If
you don't know, where the seam component is declared, use Section 5.2.2, “Open Seam Component”
icon.
T o rename a Seam component in the Java editor it's necessary to select the component, left click the file
and then select Seam Refactor → Rename Seam Component.
Figure 11.5. Opening Refactoring Wizard in Java Editor
11.2.2. Renaming Seam Components in the Seam Components View
T o open the Refactoring wizard in the Seam Components view you should left click the component you
want to open and choose Rename Seam Component option.
96
Chapter 11. Seam Refactoring Tools
Figure 11.6. Opening Refactoring Wizard in Seam Components View
11.2.3. Renaming Seam Components in the Seam Components Editor
When you open com ponents.xm l file using JBoss T ools XML Editor, open the Refactoring wizard in
the T ree tab by left-clicking the component in components area and choosing Rename option.
Figure 11.7. Opening Refactoring Wizard in components.xml File
11.3. Renaming Seam Context Variables in EL
Renaming a Seam context variables in EL could be executed in .java, .xm l, .jsp, .xhtm l and
.properties files in Seam projects using the context menu command Seam Refactor → Rename
Seam Context Variable.
97
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 11.8. Refactoring Seam Context Variable in .properties File
Figure 11.9. Opening Refactoring wizard in components.xml file
98
Chapter 11. Seam Refactoring Tools
Figure 11.10. Opening Refactoring wizard in .html file
99
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 12. Adding Seam support to EAR project
From this chapter you will find out how to add Seam support to EAR project
For example you have several WT P projects:
seamproject-ear (You can create WT P EAR project using New → Project → Java EE →
Enterprise Application Project wizard)
seamproject-ejb (You can create WT P EJB project using New → Project → EJB → EJB Project
wizard)
seamproject-war (You can create WT P WEB project using New → Project → Web → Dynamic
Web Project wizard)
Tip
You can add as many EJBs modules as you want just doing the same for each EJB project.
Figure 12.1. WT P Projects
T o enable Seam support for an existing EAR, WAR or EJB project, right-click on the project in the
Project Explorer to bring up the context menu and navigate to Configure → Enable Seam
Support.
Copy required JAR files manually into the project. For EAR projects specifically, copy library folders into
the projects /lib folder and they will be automatically detected.
100
Chapter 13. Generate a CRUD D atabase Application
Chapter 13. Generate a CRUD Database Application
13.1. What is CRUD?
CRUD is an acronym for the four basic types of SQL commands: Create , Read , Update , Delete . Most
applications have some kind of CRUD functionality, and we can assume that every programmer had to
deal with CRUD at some point. A CRUD application is one that uses forms to get data into and out of a
database.
In the next section we will create a Seam Web application, connect it to the HSQL database and add
CRUD support.
13.2. How to create the CRUD Database Application with Seam
First, you should download the em ployee-hsqlb database, extract the em ployee-hsqldb.zip
and start it by running ./runDBServer.sh or runDBServer.bat from the database directory.
Create a new Seam Web Project using New Seam Project wizard or main menu File → New →
Seam Web Project.
Figure 13.1. Seam Web Project Creation
Name your project as crudapp, specify T arget Runtime, Server and Seam Runtime configuration.
T hen press Next and follow the next wizard steps keeping default settings.
101
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.2. New Seam Project Wizard
Tip:
Please have a look at Chapter 2, Creating a New Seam Project via the New Seam Project wizard
how to create T arget Runtime and Seam Runtime in order to get started creating, running, and
debugging J2EE applications.
On Seam Facet page click New... next to the Connection profile section to create a new Connection
profile.
102
Chapter 13. Generate a CRUD D atabase Application
Figure 13.3. Seam Facet page
On New Connection Profile dialog select the HSQLDB connection profile type, name it cruddb and
click Next.
103
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.4 . New JDBC Connection Profile
On the next page click the round icon next to the Drivers field to select a database driver.
104
Chapter 13. Generate a CRUD D atabase Application
Figure 13.5. New JDBC Connection Profile Database Driver
Now you should see the New Driver Definition dialog. On the first tab select the HSQLDB JBDC
Driver. Underneath in the Driver name field you can change its name if you need.
105
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.6. Database Driver T ype
You may notice the note on the previous figure. It prompts that you should specify the driver of the
type you pointed. Set the location of the driver by selecting hsqldb.jar from the list and clicking the
Edit JAR/ZIP button.
Figure 13.7. Driver Definition
106
Chapter 13. Generate a CRUD D atabase Application
On the Properties tab set the Connection URL to jdbc:hsqldb:hsql://localhost:1701, Database
Nam e to employee and User ID to sa and click OK.
Figure 13.8. Driver Definitions Properties
After clicking OK to submit the newly created driver you can observe and if you need edit all specified
connection details.
107
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.9. Driver and Connection Details
Now click Test Connection to be sure that connection can be established.
Figure 13.10. JDBC Connection is OK
Validate JDBC Connection profile settings and press Finish or Back if something is wrong.
108
Chapter 13. Generate a CRUD D atabase Application
Figure 13.11. Validate JDBC Connection settings
After clicking Finish two projects crudapp and crudapp-test will be created.
109
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.12. CRUDAPP Seam Project
You can expand the WebContent folder of the crudapp project in the Project Explorer and open
home.xhtml or login.xhtml with JBoss Visual Editor.
110
Chapter 13. Generate a CRUD D atabase Application
Figure 13.13. login.xhtml in VPE
Switch to Database Developm ent perspective with Window → Open Perspective → Other.
Connect to the cruddb database if not already connected to it.
111
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.14 . Connecting to the CRUDDB database
Expand cruddb nodes to view its Schemas, Tables, Columns etc.
112
Chapter 13. Generate a CRUD D atabase Application
Figure 13.15. CRUDDB Database
Switch back to the Seam perspective. From the toolbar select New → Seam Generate Entities to
create a set of CRUD Seam components and web pages based on existing tables in the database.
On the first page of Generate Seam Entities wizard, select Reverse engineer from database
113
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
click press Next.
Figure 13.16. Generate Seam Entities
Click Refresh to display all the tables from the database.
114
Chapter 13. Generate a CRUD D atabase Application
Figure 13.17. Dialog for Selecting T ables
Now you can filter the tables. Use the Include button to include those that are necessary and click
Finish.
115
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.18. Selecting T ables
Under WebContent folder you can find all generated xhtml files:
Figure 13.19. Entities Web Pages
And under src folder java classes are created.
116
Chapter 13. Generate a CRUD D atabase Application
Figure 13.20. Entities Java Classes
Switch to Hibernate perspective with Window → Open Perspective → Other.... On Hibernate
Configurations view expand the crudapp configuration. Right click on Customers and select Open
Mapping Diagram from the popup menu.
117
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 13.21. Hibernate Configurations View
Observe the Mapping Diagram opened in the editor. Here you can see the relations between models
and database tables. For better navigating on the diagram use the Outline view.
118
Chapter 13. Generate a CRUD D atabase Application
Figure 13.22. Mapping Diagram
For example, select Customers entity, right click and select Open Source File. T his will open the
Customers.java file in the java editor. You can also do this by right-clicking on the same entity on the
Mapping Diagram.
Figure 13.23. Entity class from Mapping Diagram
So far, you are ready to deploy your application to JBoss Application Server. T his is described in the
next chapter.
119
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 14. The CRUD Application Walkthrough
After you familiarized oneself with example of creating the CRUD Database Application with Seam, you
can read this charter.
14.1. Using CRUD Application
T o run your CRUD Application you should do the following steps:
Run a project on the Server.
On Package Explorer View right click on the crudapp project, select Run As → Run on Server.
Figure 14 .1. Run Project on Server
Select a Server and click Finish
120
Chapter 14. The CRUD Application Walkthrough
Figure 14 .2. Select a Server
Home page of the crudapp project should appear in Web Browser .
Figure 14 .3. Home page
After that you can use the CRUD application with the employee database.
You can use internal JBDS Web Browser or your external Web Browser with the same link
(http://localhost:8080/crudapp/home.seam).
Hover the mouse over Browse data in the very top menu and select Employees List from the
expanded list. Observe that data from the employee database is displayed.
121
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 14 .4 . Displayed employee data
Use Employees search parameters fields to filter the selected list.
Click the View button in the Action column of one of the employees.
Figure 14 .5. Employee details Page
Press Edit to edit employee fields.
Enter Login and Password to login (for example, admin as the login and leaving the password field
blank).
122
Chapter 14. The CRUD Application Walkthrough
Figure 14 .6. Login page
Figure 14 .7. Edit Employee
Fill in firstname and press Save.
Database will be updated.
123
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 15. What is TestNG?
T estNG ("T esting, the Next Generation") is a Java unit testing framework that aims to overcome many
limitations of JUnit. T estNG introduces some new functionalities that make it more powerful and easier to
use, such as:
JDK 5 Annotations (JDK 1.4 is also supported with JavaDoc annotations)
Flexible test configuration
Support for data-driven testing (with @DataProvider)
Support for parameters
Allows distribution of tests on slave machines
Powerful execution model (no more T estSuite)
Supported by a variety of tools and plug-ins (Eclipse, IDEA, Maven, etc...)
Embeds BeanShell for further flexibility
Default JDK functions for runtime and logging (no dependencies)
Dependent methods for application server testing
15.1. How to use the generated Seam-test project to run Seam
tests?
Create a new Seam Web Project with EAR deployment using the New Seam Project wizard.
After a project is created you will have the generated Seam-test project that is setup to run T estNG
directly against the proper libraries and server runtime libraries.
Figure 15.1. Seam-test Project
Add Seam Action to your project via File → New → Seam Action.
124
Chapter 15. What is TestNG?
Figure 15.2. Seam Action Creation
Fill out the wizard fields. New Seam Action wizard will create resources and place them in the
appropriate folders dependent on EAR project structure.
125
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Figure 15.3. New Seam Action Wizard
When Action is created you will see actionPage.xhtml in Package Explorer view. ActionBean.java will
be automatically opened in Java Editor.
Figure 15.4 . Created Action
Select ActionLocalT est.xml in Seam-test project and run the test with right click Run As → T estNG
Suite.
Note
OpenOn is available in testNG XML files opened in JBoss XML Editor
126
Chapter 15. What is TestNG?
Figure 15.5. Running T estNG
T he test process will start and its output will be written in Console View.
Figure 15.6. T est is Finished
After running T estNG you will have the test results in test-output folder in Seam-test project (press
F5 to refresh the Package Explorer view). Open index.html file with Web Browser or simply use the
127
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
T estNG view.
T he below view shows a successful run of the test.
Figure 15.7. Viewing the T est Results
You can see the test results in Web Browser.
Figure 15.8. T est Results in Browser
After clicking on ActionLocal Tests link you will see the Results for ActionLocal T ests.
Figure 15.9. T est Information
Select a result on the left-hand pane and its details will be displayed on the right-hand one.
128
Chapter 15. What is TestNG?
Figure 15.10. ActionLocal T est Details
T hus with Seam tooling you can easily take advantage of T estNG framework. As you can see, it
generates its own T estNG project as a separate module within which you can easily monitor the tests
execution and their output.
129
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Chapter 16. FAQ
16.1. How to get Code Assist for Seam specific resources in an
externally generated project?
T o get Code Assist for Seam specific resources in an externally generated project, you should enable
Seam features in Project Preferences. Right click an imported project and navigate Properties → Seam
Settings. Check Seam support box to enable all available Section 10.2, “Project Preferences”.
16.2. How to import an example Seam project from jboss-eap
directory?
T o import an example Seam project from jboss-eap into your working directory, you should perform the
following steps:
Go to New → Other → Java Project from Existing Buildfile
Point to the build.xml of any chosen project by pressing Browse button
Hit Finish to open the project
As these seam examples are non WT P projects, next you should enable Seam support for them. T o do
that, right click the project and go to Properties → Seam Settings.
Important
Projects are not directly deployable unless they are in the correct state, such as an archive
created through Project Archives. As an alternative, working examples are provided for
Seam by navigating to Help → Project Examples → Seam
16.3. How to change the deploy folders for Seam source code
from src/hot and src/main?
You should right-click the project, select Properties → Java Build Path, then switch to the Source tab,
select the output folder for src/hot ( src/main) and click Edit to change their output location.
130
Getting Help and Giving Feedback
Getting Help and Giving Feedback
A.1. Do You Need Help?
If you experience difficulty with a procedure described in this documentation, visit the Red Hat Customer
Portal at http://access.redhat.com. T hrough the customer portal, you can:
search or browse through a knowledgebase of technical support articles about Red Hat products.
submit a support case to Red Hat Global Support Services (GSS).
access other product documentation.
Red Hat also hosts a large number of electronic mailing lists for discussion of Red Hat software and
technology. You can find a list of publicly available mailing lists at https://www.redhat.com/mailman/listinfo.
Click on the name of any mailing list to subscribe to that list or to access the list archives.
A.2. Give us Feedback
If you find a typographical error, or know how this guide can be improved, we would love to hear from
you. Submit a report in Bugzilla against the product JBoss Developer Studio and the component
Seam Developer T ools Reference Guide. T he following link will take you to a pre-filled bug
report for this product: http://bugzilla.redhat.com/.
Fill out the following template in Bugzilla's Description field. Be as specific as possible when
describing the issue; this will help ensure that we can fix it quickly.
Document URL:
Section Number and Name:
Describe the issue:
Suggestions for improvement:
Additional information:
Be sure to give us your name so that you can receive full credit for reporting the issue.
131
Red Hat JBoss D eveloper Studio 6.0 Seam D eveloper Tools Reference Guide
Revision History
Revision 6.0.1-1.4 06
Rebuild with Publican 4.0.0
T ue Jan 7 2014
Rüdiger Landmann
Revision 6.0.1-1
T ue Aug 27 2013
Michelle Murray
T OOLSDOC-382: Rebuilt for Customer Portal, content unchanged
Revision 1-0
Wed Jun 09 2010
JBoss T ools Documentation
T eam
General updates
Revision 0-0
Fri Nov 20 2009
Initial creation of book by publican
132
Isaac Rooskov
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement