JBoss Seam IDE

tieplantharrasInternet και Εφαρμογές Web

12 Νοε 2013 (πριν από 7 χρόνια και 8 μήνες)

357 εμφανίσεις

JBoss Seam IDE

Requirement specifications

Version: 0.1


Table of Contents
1. General

................................
................................
................................
................................
...................

1

2. The existing

................................
................................
................................
................................
............

1

2.1. JBoss AS

................................
................................
................................
................................
........

2

2.2. jBPM

................................
................................
................................
................................
..............

2

2.3. Hibernate Tools

................................
................................
................................
..............................

2

2.4. EJB3

................................
................................
................................
................................
...............

2

2.5. Misc

................................
................................
................................
................................
................

2

3.
Tools required

................................
................................
................................
................................
........

2

3.1. New project wizard

................................
................................
................................
........................

2

3.1.1. Goal

................................
................................
................................
................................
........

2

3.1.2. Priority

................................
................................
................................
................................
....

2

3.1.3. Description
................................
................................
................................
..............................

2

Exploded deployment

................................
................................
................................
..................

3

Input

................................
................................
................................
................................
.............

3

Output

................................
................................
................................
................................
..........

3

3.2. New Seam component

................................
................................
................................
....................

4

Priority

................................
................................
................................
................................
.........

4

Input

................................
................................
................................
................................
.............

4

Output

................................
................................
................................
................................
..........

4

1.

General

JBoss Seam is a framework aiming at simplicity in develop
ment. To go in that direction, we also
need a number of tools to be used by developers and analysts. While there are already several tools
that can be reused and adapted from the JBoss Eclipse IDE project, we will also need to add new
ones.

2.

The existing to
ols

As of today we already have components in the IDE to reuse and adapt, the Eclipse WTP project
also duplicates some features of JBoss Eclipse IDE.

2.1.

Eclipse WTP

WTP is able to handle the packaging of applications but unfortunately doesn't know about explo
ded
directories.

2.2.

JBoss AS

JBoss AS can be launched from Eclipse with or without the debugging capability.

2.3.

jBPM

The jBPM graphical designer let the developers build their business processes through a GUI. An
extension of this tool, let them build jPDL page

flows in the exact same manner.

2.4.

Hibernate Tools

As part of the Hibernate Tools, we do have a tool to reverse engineer an application, from the
database schema to a complete Seam application.

2.5.

EJB3

A set of wizards is available to create Session Beans, Enti
ty Beans and MDBs

2.6.

Misc

Some minimalistic feature of JBoss Eclipse IDE lets you create sample descriptor files (like
application.xml or web.xml). With no configuration possible.


3.

Tools required

3.1.

New project wizard

3.1.1.

Goal

A developer should be able to create a
new Seam project skeleton by fulfilling a wizard, at the end
of the wizard he should be able to start adding new components.
Building and deploying his application should be easy. Modifying a
JSF should have an immediate impact without having to redeploy t
he
application.

3.1.2.

Priority

This is the most critical piece for the IDE, it comes as a very first
priority

3.1.3.

Description

The nature of Seam makes it difficult to create a wizard, Seam
integrates many different technologies and the list will keep growing.

Expl
oded deployment

The end result should let the user be able to modify its JSF pages

Image
1
: Exploded
deployment

without having to redeploy the application. JBoss lets you have exploded directories and with a
deployment such as seen on Image 1: Exploded deployment, modifying a JSF page

has an
immediate impact on the running application and does not require any redeployment.

As of today, the structure is an Enterprise archive (ear) containing at least a Web Archive (war) and
a EJB3 archive (jar). Eclipse/WTP requires to define three diff
erent projects for that, and since
Eclipse/WTP doesn't know about exploded archives, this requirement might be problematic to solve.

Input

There are a couple of inputs that a developer must be able to set through a Wizard.



Project name


Used for the eclip
se project name or working set



Archive name


Name of the ear archive (defaults to project name)



Optional: List of modules to include (jBPM, JBoss Rules, Logging...) This would let the project
add the corresponding libraries to the classpath. Furthermore,
JBoss Seam loads all components
as of today, but we can think that this will not always be the case.



Porlet deployment


Checkbox for portlet deployment, it would mean having portlet descriptors
in the war files



Facelet support


Checkbox to have the Facel
et library included.

Output

The output should result in 3 projects and one could be able to easily add web and EJB3 projects to
the enterprise project. Those three projects should probably be part of an Eclipse “Working Set” for
readability since they are
linked together.

In those projects we should find default descriptors.



Enterprise project (ear)



META
-
INF/application.xml



META
-
INF/jboss
-
app.xml (?)



jboss
-
seam.jar



jbpm.jar



hibernate.cfg.xml (?)



jbpm.cfg.xml (?)



*.jpdl.xml (?)



1 Web archive project (war)



WE
B
-
INF/web.xml



WEB
-
INF/components.xml



WEB
-
INF/faces
-
config.xml



WEB
-
INF/lib/facelet libraries (optional)



WEB
-
INF/lib/jboss
-
seam
-
debug.jar



WEB
-
INF/lib/jboss
-
seam
-
ui.jar



1 EJB3 project (jar)



seam.properties



META
-
INF/ejb
-
jar.xml (declaring the Seam interceptor,

it might change to a stack)



META
-
INF/persistence.xml

3.2.

New Seam component

To create a new Seam component, we could either modify the wizards for EJB3 components, or
create a new one that would re
-
use the EJB3 wizards.

A developer should be able to add a new

Seam component that could be either



A Java bean



A stateless session bean



A stateful session bean



An entity bean

Priority

This is not a big priority so far but could be very useful.

Input

The very first page of the wizard should ask for:



A name



A scope (si
ngle choice in a list)



Roles (combination of different name/scope) (Optional)



A type of bean (JavaBean, Session Bean, EntityBean) from there it should follow with the
wizard from Session Bean or Entity Bean. The JavaBean should have the Seam Interceptor by

default (not really a best practice, but this would lead to less errors) or if possible, we could
check if the SeamInterceptor is required when the file is saved (for example if @In annotation is
present, then the interceptor is required).

Output

JavaBean
:

package {packageName}

@Name(“{name}”)

@Scope(“{scope}”)

@Roles(@Role(“roleName1”, “roleScope1”), @Role(“roleName2”, “roleScope2))

@Interceptors(SeamInterceptor.class)

public class {className}

{

}

EntityBean:

package {packageName}

@Name(“{name}”)

@Entity

@Roles(@Role(“roleName1”, “roleScope1”), @Role(“roleName2”, “roleScope2))

public class {className}

{

}

Session Bean:

package {packageName}

@Name(“{name}”)

@Stateless

@Roles(@Role(“roleName1”, “roleScope1”), @Role(“roleName2”, “roleScope2))

public class {cl
assName}

{

}