From webbeans-commits at lists.jboss.org Mon Apr 20 08:42:40 2009
Content-Type: multipart/mixed; boundary="===============4375139807214873746=="
MIME-Version: 1.0
From: webbeans-commits at lists.jboss.org
To: weld-commits at lists.jboss.org
Subject: [webbeans-commits] Webbeans SVN: r2596 - in doc/tags: 1.0.0.PREVIEW1
and 1 other directories.
Date: Mon, 20 Apr 2009 08:42:40 -0400
Message-ID:
--===============4375139807214873746==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: pete.muir(a)jboss.org
Date: 2009-04-20 08:42:39 -0400 (Mon, 20 Apr 2009)
New Revision: 2596
Added:
doc/tags/1.0.0.PREVIEW1/
doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml
doc/tags/1.0.0.PREVIEW1/pom.xml
Removed:
doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml
doc/tags/1.0.0.PREVIEW1/pom.xml
Log:
[maven-release-plugin] copy for tag 1.0.0.PREVIEW1
Copied: doc/tags/1.0.0.PREVIEW1 (from rev 2520, doc/trunk/reference)
Deleted: doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- doc/trunk/reference/en-US/gettingstarted.xml 2009-04-19 21:01:39 UTC (r=
ev 2520)
+++ doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml 2009-04-20 12:42:39 UT=
C (rev 2596)
@@ -1,1526 +0,0 @@
-
-
-
- Getting started with Web Beans, the Reference Implementation of =
JSR-299
-
-
- The Web Beans is being developed at
- the Seam project.
- You can download the latest developer release of Web Beans from the
- the downloads page=
ulink>.
- =
-
-
- Web Beans comes with a two deployable example applications:
- webbeans-numberguess, a war example, containing o=
nly
- simple beans, and webbeans-translator an ear exam=
ple,
- containing enterprise beans. There are also two variations on the =
- numberguess example, the tomcat example (suitable for deployment to =
- Tomcat) and the jsf2 example, which you can use if you are running J=
SF2.
- To run the examples you'll need the following:
-
- =
-
-
- the latest release of Web Beans,
-
-
- JBoss AS 5.0.1.GA, or
-
-
- Apache Tomcat 6.0.x, and
-
-
- Ant 1.7.0.
-
-
- =
-
- Using JBoss AS 5
- =
- =
- You'll need to download JBoss AS 5.0.1.GA from =
- jboss.org<=
/ulink>,
- and unzip it. For example:
-
- =
-
-
-
- Next, download Web Beans from =
- seamframework.or=
g,
- and unzip it. For example
-
- =
-
-
- =
-
- Next, we need to tell Web Beans where JBoss is located. Edit
- jboss-as/build.properties and set the
- jboss.home property. For example:
-
- =
- jboss.home=3D/Applications/jboss-5.0.1.GA
- =
-
- To install Web Beans, you'll need Ant 1.7.0 installed, and the =
- ANT_HOME environment variable set. For example:
-
- =
- $ unzip apache-ant-1.7.0.zip
-$ export ANT_HOME=3D~/apache-ant-1.7.0
-
-
- Then, you can install the update. The update script will use Mave=
n to
- download Web Beans automatically.
-
- =
- $ cd webbeans-$VERSION/jboss-as
-$ ant update
-
-
- Now, you're ready to deploy your first example!
-
- =
-
-
- The build scripts for the examples offer a number of targets f=
or =
- JBoss AS, these are:
-
-
-
-
- ant restart - deploy the example in e=
xploded =
- format
-
-
-
-
- ant explode - update an exploded exam=
ple, without
- restarting the deployment
-
-
-
-
- ant deploy - deploy the example in co=
mpressed jar format
-
-
-
-
- ant undeploy - remove the example fro=
m the server
-
-
-
-
- ant clean - clean the example
-
-
-
-
- =
-
- To deploy the numberguess example:
-
- =
- $ cd examples/numberguess
-ant deploy
-
-
- Start JBoss AS:
-
- =
- $ /Application/jboss-5.0.0.GA/bin/run.sh
- =
-
-
- If you use Windows, use the run.batscript.
-
-
- =
-
- Wait for the application to deploy, and enjoy hours of fun at
- !
-
- =
-
- Web Beans includes a second simple example that will translate yo=
ur text
- into Latin. The numberguess example is a war example, and uses on=
ly simple
- beans; the translator example is an ear example, and includes ent=
erprise
- beans, packaged in an EJB module. To try it out:
-
- =
- $ cd examples/translator
-ant deploy
- =
-
- Wait for the application to deploy, and visit
- !
-
- =
-
- =
-
- Using Apache Tomcat 6.0
- =
- =
- You'll need to download Tomcat 6.0.18 or later from =
- tomcat.ap=
ache.org,
- and unzip it. For example:
-
- =
-
-
-
- Next, download Web Beans from =
- seamframework.or=
g,
- and unzip it. For example
-
- =
-
-
-
- Next, we need to tell Web Beans where Tomcat is located. Edit
- jboss-as/build.properties and set the
- tomcat.home property. For example:
-
- =
- tomcat.home=3D/Applications/apache-tomcat-6.0.18
-
-
-
- The build scripts for the examples offer a number of targets f=
or =
- Tomcat, these are:
-
-
-
-
- ant tomcat.restart - deploy the examp=
le in exploded =
- format
-
-
-
-
- ant tomcat.explode - update an explod=
ed example, without
- restarting the deployment
-
-
-
-
- ant tomcat.deploy - deploy the exampl=
e in compressed jar format
-
-
-
-
- ant tomcat.undeploy - remove the exam=
ple from the server
-
-
-
-
- ant tomcat.clean - clean the example
-
-
-
-
- =
-
- To deploy the numberguess example for tomcat:
-
- =
- $ cd examples/tomcat
-ant tomcat.deploy
-
-
- Start Tomcat:
-
- =
- $ /Applications/apache-tomcat-6.0.18/bin/startup.sh<=
/programlisting>
- =
-
-
- If you use Windows, use the startup.batscri=
pt.
-
-
- =
-
- Wait for the application to deploy, and enjoy hours of fun at
- !
-
-
-
- =
-
- Using GlassFish
- =
- TODO
-
- =
-
- The numberguess example
- =
-
- In the numberguess application you get given 10 attempts to guess=
a
- number between 1 and 100. After each attempt, you will be told wh=
ether
- you are too high, or too low.
-
- =
-
- The numberguess example is comprised of a number of Web Beans, =
- configuration files, and Facelet JSF pages, packaged as a war. Le=
t's =
- start with the configuration files.
-
- =
-
- All the configuration files for this example are located in =
- WEB-INF/, which is stored in
- WebContent in the source tree. First, we have =
- faces-config.xml, in which we tell JSF to use
- Facelets:
-
- =
-
-
- =
-
- com.sun.facelets.FaceletViewHandler
-
-
-]]>
-
-
- There is an empty web-beans.xml file, which ma=
rks
- this application as a Web Beans application.
-
- =
-
- Finally there is web.xml:
-
- =
-
-
-
-
-
-
-
-
-
-
-
- =
- Web Beans Numbergues example
-
-
-
-
- Faces Servlet
- javax.faces.webapp.FacesServlet
- 1
-
-
-
- Faces Servlet
- *.jsf
-
- =
-
- javax.faces.DEFAULT_SUFFIX
- .xhtml
-
-
-
- 10
-
-
-]]>
-
-
-
- Enable and load the JSF servlet
-
-
-
-
- Configure requests to .jsf pages to be
- handled by JSF
-
-
-
-
- Tell JSF that we will be giving our source files (facele=
ts) an
- extension of .xhtml
-
-
-
-
- Configure a session timeout of 10 minutes
-
-
-
-
- =
-
-
- Whilst this demo is a JSF demo, you can use Web Beans with any =
- Servlet based web framework.
-
-
- =
-
- Let's take a look at the Facelet view:
-
- =
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Guess a number...
-
-
-
-
-
-
- =
-
- I'm thinking of a number between #{game.smallest} and #{game.=
biggest}.
- You have #{game.remainingGuesses} guesses.
-
- =
-
- Your guess: =
-
-
-
-
-
-
-
-
-
-
-
-]]>
-
-
-
- Facelets is a templating language for JSF, here we are =
- wrapping our page in a template which defines the header.
-
-
-
-
- There are a number of messages which can be sent to the =
user,
- "Higher!", "Lower!" and "Correct!"
-
-
-
-
- As the user guesses, the range of numbers they can guess=
gets
- smaller - this sentance changes to make sure they know w=
hat =
- range to guess in.
-
-
-
-
- This input field is bound to a Web Bean, using the value
- expression.
-
-
-
-
- A range validator is used to make sure the user doesn't
- accidentally input a number outside of the range in whic=
h they
- can guess - if the validator wasn't here, the user might=
use
- up a guess on an out of range number.
-
-
-
-
- And, of course, there must be a way for the user to send=
their
- guess to the server. Here we bind to an action method on=
the
- Web Bean.
-
-
-
-
- =
-
- The example exists of 4 classes, the first two of which are bindi=
ng
- types. First, there is the @Random binding typ=
e, =
- used for injecting a random number:
-
- =
-
-
-
- There is also the @MaxNumber binding type, use=
d for
- injecting the maximum number that can be injected:
-
- =
-
-
-
- The Generator class is responsible for creatin=
g the
- random number, via a producer method. It also exposes the maximum
- possible number via a producer method:
-
-
-
-
-
- You'll notice that the Generator is application
- scoped; therefore we don't get a different random each time.
-
- =
-
- The final Web Bean in the application is the session scoped
- Game.
-
- =
-
- You'll note that we've used the @Named =
- annotation, so that we can use the bean through EL in the JSF pag=
e.
- Finally, we've used constructor injection to initialize the game =
with
- a random number. And of course, we need to tell the player when t=
hey've
- won, so we give feedback with a FacesMessage.
-
- =
- number)
- {
- biggest =3D guess - 1;
- }
- if (guess(){});
- }
- =
-}]]>
-
-
- The numberguess example in Tomcat
- =
-
- The numberguess for Tomcat differs in a couple of ways. Firstl=
y, =
- Web Beans should be deployed as a Web Application library in
- WEB-INF/lib. For your convenience we provid=
e a
- single jar suitable for running Web Beans in any servlet conta=
iner =
- webbeans-servlet.jar.
-
- =
-
-
- Of course, you must also include JSF and EL, as well common =
- annotations (jsr250-api.jar) which a JEE=
server
- includes by default.
-
-
- =
-
- Secondly, we need to explicitly specify the servlet listener
- (used to boot Web Beans, and control it's interaction with req=
uests)
- in web.xml:
-
- =
-
- org.jboss.webbeans.environment.servlet.Listener
-]]>
- =
-
- =
-
- The numberguess example for Apache Wicket
-
- Whilst JSR-299 specifies integration with Java ServerFaces, We=
b =
- Beans allows you to inject into Wicket components, and also al=
lows =
- you to use a conversation context with Wicket. In this section=
, =
- we'll walk you through the Wicket version of the numberguess =
- example. =
-
- =
-
- =
- You may want to review the Wicket documentation at =
- http://wicket.apac=
he.org/.
-
-
-
-
- Like the previous example, the Wicket WebBeans examples make u=
se of =
- the webbeans-servlet module. The use of t=
he =
- Jetty servlet contain=
er
- is common in the Wicket community, and is chosen here as the =
- runtime container in order to facilitate comparison between th=
e =
- standard Wicket examples and these examples, and also to show =
how =
- the webbeans-servlet integration is not dependent upon Tomcat =
as the
- servlet container.
-
- =
-
- These examples make use of the Eclipse IDE; instructions are a=
lso =
- given to deploy the application from the command line.
-
- =
-
- Creating the Eclipse project
- =
-
- To generate an Eclipse project from the example:
-
- =
-
- =
-
- Then, from eclipse, choose File -> Import -> Gene=
ral -> Existing Projects into Workspace, =
- select the root directory of the numberguess example, and c=
lick =
- finish. Note that if you do not intend to run the example =
with jetty from =
- within eclipse, omit the "-Pjetty." This will create a pro=
ject in your =
- workspace called webbeans-wicket-numberguess
-
- =
-
-
- =
-
-
-
- =
-
- Running the example from Eclipse
- =
-
- This project follows the wicket-quickstart =
- approach of creating an instance of Jetty in the
- Start class. So running the example is =
as =
- simple as right-clicking on that Start class in =
- src/test/java in the =
- Package Explorer and choosing =
- Run as Java Application. You should
- see console output related to Jetty starting up; then visit=
able =
- http://localhost:8080 to view the app. =
To =
- debug choose Debug as Java Application.
-
-
- =
-
- Running the example from the command line in JBoss AS o=
r Tomcat
- =
-
- This example can also be deployed from the command line in =
a =
- (similar to the other examples). Assuming you have set up =
the
- build.properties file in the =
- examples directory to specify the locati=
on of =
- JBoss AS or Tomcat, as previously described, you can run =
- ant deploy from the =
- examples/wicket/numberguess directory, a=
nd =
- access the application at =
- http://localhost:8080/webbeans-numberguess-wicket<=
/literal>.
-
-
- =
-
- Understanding the code
- =
-
- JSF uses Unified EL expressions to bind view layer componen=
ts in =
- JSP or Facelet views to beans, Wicket defines it's componen=
ts in =
- Java. The markup is plain html with a one-to-one mapping be=
tween =
- html elements and the view components. All view logic, incl=
uding =
- binding of components to models and controlling the respons=
e of =
- view actions, is handled in Java. The integration of Web B=
eans =
- with Wicket takes advantage of the same binding annotations=
used =
- in your business layer to provide injection into your WebPa=
ge =
- subclass (or into other custom wicket component subclasses).
-
-
-
- The code in the wicket numberguess example is very similar =
to the =
- JSF-based numberguess example. The business layer is identi=
cal!
-
- =
- =
- Differences are:
-
-
-
-
- Each wicket application must have a =
- WebApplication subclass, In our c=
ase, =
- our application class is =
- SampleApplication:
-
-
-
- This class specifies which page wicket should treat a=
s our =
- home page, in our case, HomePage.class
-
-
-
-
- In HomePage we see typical wicket =
code =
- to set up page elements. The bit that is interesting=
is =
- the injection of the Game bean:
-
- =
-
- =
-
- The Game bean is can then be used,=
for =
- example, by the code for submitting a guess:
-
- =
-
- =
-
-
- All injections may be serialized; actual storage o=
f the =
- bean is managed by JSR-299. Note that Wicket =
- components, like the HomePage and it subcomponents=
, are =
- not JSR-299 beans.
-
-
- Wicket components allow injection, but they =
- cannot use interceptors, deco=
rators
- and lifecycle callbacks such as =
- @PostConstruct or =
- @Initializer methods.
-
-
-
-
-
- The example uses AJAX for processing of button events=
, and =
- dynamically hides buttons that are no longer relevant=
, for =
- example when the user has won the game.
-
-
-
-
-
- In order to activate wicket for this webapp, the Wick=
et =
- filter is added to web.xml, and our application class=
is =
- specified:
-
-
- wicket.numberguess-example
- org.apache.wicket.protocol.http.WicketFilter
-
- applicationClassName
- org.jboss.webbeans.examples.wicket.SampleApplication
-
-
-
-
- wicket.numberguess-example
- /*
-
- =
-
- org.jboss.webbeans.environment.servlet.Listener
-]]>
-
- Note that the servlet listener is also added, as in t=
he =
- Tomcat example, in order to boostrap Web Beans when J=
etty =
- starts, and to hook Web Beans into the Jetty servlet =
- request and session lifecycles.
-
-
- =
-
-
-
- =
-
- The numberguess example for Java SE with Swing
-
-
- This example can be found in the =
- examples/se/numberguess folder of the Web =
- Beans distribution.
-
- =
- =
-
- To run this example:
-
- =
-
-
-
- Open a command line/terminal window in the
- examples/se/numberguess directory
-
-
-
-
- Ensure that Maven 2 is installed and in your PATH
-
-
-
-
- Ensure that the JAVA_HOME environment =
- variable is pointing to your JDK installation
-
-
-
-
- execute the following command
-
- mvn -Drun
-
-
-
- =
-
-
- There is an empty beans.xml file in the roo=
t =
- package (src/main/resources/beans.xml), whi=
ch =
- marks this application as a Web Beans application.
-
-
-
- The game's main logic is located in Game.java. =
- Here is the code for that class, highlighting the changes made =
- from the web application version:
-
-
-
-
-
-
-
-
-
-
- number )
- {
- biggest =3D guess - 1;
- }
-
- if ( guess < number )
- {
- smallest =3D guess + 1;
- }
-
- if ( guess =3D=3D number )
- {
- result =3D true;
- }
-
- remainingGuesses--;
- }
-
- return result;
- }
-
- private boolean checkNewNumberRangeIsValid()
- {
- return validNumberRange =3D ( ( guess >=3D smallest ) && ( guess <=
=3D biggest ) );
- }
-
- @PostConstruct
- public void reset()
- {
- this.smallest =3D 0;
- ...
- this.number =3D rndGenerator.next();
- }
-}]]>
-
-
-
- The bean is application scoped instead of session sco=
ped, =
- since an instance of the application represents a sin=
gle 'session'.
-
-
-
-
- The bean is not named, since it doesn't need to be ac=
cessed
- via EL
-
-
-
-
- There is no JSF FacesContext to ad=
d =
- messages to. Instead the Game clas=
s =
- provides additional information about the state of th=
e =
- current game including:
-
-
-
-
-
-
- If the game has been won or lost
-
-
-
-
- If the most recent guess was invalid
-
-
-
-
-
- This allows the Swing UI to query the state of the ga=
me, =
- which it does indirectly via a class called =
- MessageGenerator, in order to dete=
rmine =
- the appropriate messages to display to the user durin=
g the =
- game.
-
-
-
-
- Validation of user input is performed during the =
- check() method, since there is no =
- dedicated validation phase
-
-
-
-
- The reset() method makes a call to=
the =
- injected rndGenerator in order to =
get =
- the random number at the start of each game. It canno=
t use
- manager.getInstanceByType(Integer.class, new=
AnnotationLiteral<Random>(){})
- as the JSF example does because there will not be any=
active contexts like
- there is during a JSF request.
-
-
-
-
-
-
- The MessageGenerator class depends on the =
- current instance of Game, and queries its =
- state in order to determine the appropriate messages to provid=
e =
- as the prompt for the user's next guess and the response to th=
e =
- previous guess. The code for MessageGenerator =
- is as follows:
-
-
-
-
-
-
-
-
-
-
-
-
- The instance of Game for the appli=
cation
- is injected here.
-
-
-
-
- The Game's state is interrogated t=
o =
- determine the appropriate challenge message.
-
-
-
-
- And again to determine whether to congratulate, conso=
le or
- encourage the user to continue.
-
-
-
-
-
-
- Finally we come to the NumberGuessFrame cla=
ss =
- which provides the Swing front end to our guessing game. =
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The injected instance of the game (logic and state).
-
-
-
-
- The injected message generator for UI messages.
-
-
-
-
- This application is started in the usual Web Beans SE =
way, =
- by observing the @Deployed Manager =
event.
-
-
-
-
- This method initialises all of the Swing components. =
Note =
- the use of the msgGenerator.
-
-
-
-
- guessButtonActionPerformed is call=
ed =
- when the 'Guess' button is clicked, and it does the =
- following:
-
-
-
-
-
- Gets the guess entered by the user and sets it =
as the
- current guess in the Game
-
-
-
-
- Calls game.check() to valida=
te and
- perform one 'turn' of the game
-
-
-
-
- Calls refreshUI. If there we=
re =
- validation errors with the input, this will hav=
e been =
- captured during game.check()=
and =
- as such will be reflected in the messeges retur=
ned by
- MessageGenerator and subsequ=
ently
- presented to the user. If there are no validati=
on =
- errors then the user will be told to guess agai=
n =
- (higher or lower) or that the game has ended ei=
ther =
- in a win (correct guess) or a loss (ran out of =
- guesses).
-
-
-
-
-
-
- replayBtnActionPerformed simply ca=
lls =
- game.reset() to start a new game a=
nd =
- refreshes the messages in the UI.
-
-
-
-
- refreshUI uses the =
- MessageGenerator to update the mes=
sages =
- to the user based on the current state of the Game.
-
-
-
-
-
-
-
- =
-
- The translator example
- =
-
- The translator example will take any sentences you enter, and tra=
nslate
- them to Latin.
-
- =
-
- The translator example is built as an ear, and contains EJBs. As =
a result, it's structure is more complex than
- the numberguess example.
-
- =
-
-
- EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, whic=
h will
- make this structure much simpler!
-
-
- =
-
- First, let's take a look at the ear aggregator, which is located =
in =
- webbeans-translator-ear module. Maven automati=
cally
- generates the application.xml for us:
-
- =
-
- org.apache.maven.plugins
- maven-ear-plugin
-
-
-
- org.jboss.webbeans.examples.translator
- webbeans-translator-war
- /webbeans-translator
-
-
-
-]]>
-
-
- Here we set the context path, which gives us a nice url =
- (http://=
localhost:8080/webbeans-translator).
-
- =
-
-
- If you aren't using Maven to generate these files, you would n=
eed
- META-INF/application.xml:
-
- =
-
-
- webbeans-translator-ear
- Ear Example for the reference implementation of JSR 299: We=
b Beans
- =
-
-
- webbeans-translator.war
- /webbeans-translator
-
-
-
- webbeans-translator.jar
-
-]]>
-
- =
-
- Next, lets look at the war. Just as in the numberguess example, w=
e have
- a faces-config.xml (to enable Facelets) and a =
- web.xml (to enable JSF) in =
- WebContent/WEB-INF.
-
- =
-
- More intersting is the facelet used to translate text. Just as in
- the numberguess example we have a template, which surrounds the f=
orm
- (ommitted here for brevity):
-
- =
-
- =
-
-
-
- Your text
- |
-
- Translation
- |
-
-
-
-
- |
-
-
- |
-
-
-
-
-
- =
-]]>
-
-
- The user can enter some text in the lefthand textarea, and hit th=
e =
- translate button to see the result to the right.
-
- =
-
- Finally, let's look at the ejb module, =
- webbeans-translator-ejb.
- In src/main/resources/META-INF there is just a=
n =
- empty web-beans.xml, used to mark the archive =
as =
- containing Web Beans.
-
- =
-
- We've saved the most interesting bit to last, the code! The proje=
ct has
- two simple beans, SentenceParser and
- TextTranslator and two enterprise beans,
- TranslatorControllerBean and =
- SentenceTranslator. You should be getting quite
- familiar with what a Web Bean looks like by now, so we'll just =
- highlight the most interesting bits here.
-
- =
-
- Both SentenceParser and =
- TextTranslator are dependent beans, and =
- TextTranslator uses constructor initialization:
-
- =
-
- =
-
- TextTranslator is a stateless bean (with a loc=
al =
- business interface), where the magic happens - of course, we coul=
dn't =
- develop a full translator, but we gave it a good go!
-
- =
-
- Finally, there is UI orientated controller, that collects the tex=
t from
- the user, and dispatches it to the translator. This is a request =
- scoped, named, stateful session bean, which injects the translato=
r.
-
- =
-
- =
-
- The bean also has getters and setters for all the fields on the p=
age.
-
- =
-
- As this is a stateful session bean, we have to have a remove meth=
od:
-
- =
-
- =
-
- The Web Beans manager will call the remove method for you when th=
e bean
- is destroyed; in this case at the end of the request.
-
-
- =
-
- That concludes our short tour of the Web Beans examples. For more on=
Web =
- Beans , or to help out, please visit =
- htt=
p://www.seamframework.org/WebBeans/Development.
-
- =
-
- We need help in all areas - bug fixing, writing new features, writing
- examples and translating this reference guide.
-
-
-
Copied: doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml (from rev 2556, do=
c/trunk/reference/en-US/gettingstarted.xml)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml =
(rev 0)
+++ doc/tags/1.0.0.PREVIEW1/en-US/gettingstarted.xml 2009-04-20 12:42:39 UT=
C (rev 2596)
@@ -0,0 +1,1533 @@
+
+
+
+ Getting started with Web Beans, the Reference Implementation of =
JSR-299
+
+
+ The Web Beans is being developed at
+ the Seam project.
+ You can download the latest developer release of Web Beans from the
+ the downloads page=
ulink>.
+ =
+
+
+ Web Beans comes with a two deployable example applications:
+ webbeans-numberguess, a war example, containing o=
nly
+ simple beans, and webbeans-translator an ear exam=
ple,
+ containing enterprise beans. There are also two variations on the =
+ numberguess example, the tomcat example (suitable for deployment to =
+ Tomcat) and the jsf2 example, which you can use if you are running J=
SF2.
+ To run the examples you'll need the following:
+
+ =
+
+
+ the latest release of Web Beans,
+
+
+ JBoss AS 5.0.1.GA, or
+
+
+ Apache Tomcat 6.0.x, and
+
+
+ Ant 1.7.0.
+
+
+ =
+
+ Using JBoss AS 5
+ =
+ =
+ You'll need to download JBoss AS 5.0.1.GA from =
+ jboss.org<=
/ulink>,
+ and unzip it. For example:
+
+ =
+
+
+
+ Next, download Web Beans from =
+ seamframework.or=
g,
+ and unzip it. For example
+
+ =
+
+
+ =
+
+ Next, we need to tell Web Beans where JBoss is located. Edit
+ jboss-as/build.properties and set the
+ jboss.home property. For example:
+
+ =
+ jboss.home=3D/Applications/jboss-5.0.1.GA
+ =
+
+ To install Web Beans, you'll need Ant 1.7.0 installed, and the =
+ ANT_HOME environment variable set. For example:
+
+ =
+
+
+ JBoss 5.1.0 comes with Web Beans built in, so there is no need=
to
+ update the server.
+
+
+ =
+ $ unzip apache-ant-1.7.0.zip
+$ export ANT_HOME=3D~/apache-ant-1.7.0
+
+
+ Then, you can install the update. The update script will use Mave=
n to
+ download Web Beans automatically.
+
+ =
+ $ cd webbeans-$VERSION/jboss-as
+$ ant update
+
+
+ Now, you're ready to deploy your first example!
+
+ =
+
+
+ The build scripts for the examples offer a number of targets f=
or =
+ JBoss AS, these are:
+
+
+
+
+ ant restart - deploy the example in e=
xploded =
+ format
+
+
+
+
+ ant explode - update an exploded exam=
ple, without
+ restarting the deployment
+
+
+
+
+ ant deploy - deploy the example in co=
mpressed jar format
+
+
+
+
+ ant undeploy - remove the example fro=
m the server
+
+
+
+
+ ant clean - clean the example
+
+
+
+
+ =
+
+ To deploy the numberguess example:
+
+ =
+ $ cd examples/numberguess
+ant deploy
+
+
+ Start JBoss AS:
+
+ =
+ $ /Application/jboss-5.0.0.GA/bin/run.sh
+ =
+
+
+ If you use Windows, use the run.batscript.
+
+
+ =
+
+ Wait for the application to deploy, and enjoy hours of fun at
+ !
+
+ =
+
+ Web Beans includes a second simple example that will translate yo=
ur text
+ into Latin. The numberguess example is a war example, and uses on=
ly simple
+ beans; the translator example is an ear example, and includes ent=
erprise
+ beans, packaged in an EJB module. To try it out:
+
+ =
+ $ cd examples/translator
+ant deploy
+ =
+
+ Wait for the application to deploy, and visit
+ !
+
+ =
+
+ =
+
+ Using Apache Tomcat 6.0
+ =
+ =
+ You'll need to download Tomcat 6.0.18 or later from =
+ tomcat.ap=
ache.org,
+ and unzip it. For example:
+
+ =
+
+
+
+ Next, download Web Beans from =
+ seamframework.or=
g,
+ and unzip it. For example
+
+ =
+
+
+
+ Next, we need to tell Web Beans where Tomcat is located. Edit
+ jboss-as/build.properties and set the
+ tomcat.home property. For example:
+
+ =
+ tomcat.home=3D/Applications/apache-tomcat-6.0.18
+
+
+
+ The build scripts for the examples offer a number of targets f=
or =
+ Tomcat, these are:
+
+
+
+
+ ant tomcat.restart - deploy the examp=
le in exploded =
+ format
+
+
+
+
+ ant tomcat.explode - update an explod=
ed example, without
+ restarting the deployment
+
+
+
+
+ ant tomcat.deploy - deploy the exampl=
e in compressed jar format
+
+
+
+
+ ant tomcat.undeploy - remove the exam=
ple from the server
+
+
+
+
+ ant tomcat.clean - clean the example
+
+
+
+
+ =
+
+ To deploy the numberguess example for tomcat:
+
+ =
+ $ cd examples/tomcat
+ant tomcat.deploy
+
+
+ Start Tomcat:
+
+ =
+ $ /Applications/apache-tomcat-6.0.18/bin/startup.sh<=
/programlisting>
+ =
+
+
+ If you use Windows, use the startup.batscri=
pt.
+
+
+ =
+
+ Wait for the application to deploy, and enjoy hours of fun at
+ !
+
+
+
+ =
+
+ Using GlassFish
+ =
+ TODO
+
+ =
+
+ The numberguess example
+ =
+
+ In the numberguess application you get given 10 attempts to guess=
a
+ number between 1 and 100. After each attempt, you will be told wh=
ether
+ you are too high, or too low.
+
+ =
+
+ The numberguess example is comprised of a number of Web Beans, =
+ configuration files, and Facelet JSF pages, packaged as a war. Le=
t's =
+ start with the configuration files.
+
+ =
+
+ All the configuration files for this example are located in =
+ WEB-INF/, which is stored in
+ WebContent in the source tree. First, we have =
+ faces-config.xml, in which we tell JSF to use
+ Facelets:
+
+ =
+
+
+ =
+
+ com.sun.facelets.FaceletViewHandler
+
+
+]]>
+
+
+ There is an empty web-beans.xml file, which ma=
rks
+ this application as a Web Beans application.
+
+ =
+
+ Finally there is web.xml:
+
+ =
+
+
+
+
+
+
+
+
+
+
+
+ =
+ Web Beans Numbergues example
+
+
+
+
+ Faces Servlet
+ javax.faces.webapp.FacesServlet
+ 1
+
+
+
+ Faces Servlet
+ *.jsf
+
+ =
+
+ javax.faces.DEFAULT_SUFFIX
+ .xhtml
+
+
+
+ 10
+
+
+]]>
+
+
+
+ Enable and load the JSF servlet
+
+
+
+
+ Configure requests to .jsf pages to be
+ handled by JSF
+
+
+
+
+ Tell JSF that we will be giving our source files (facele=
ts) an
+ extension of .xhtml
+
+
+
+
+ Configure a session timeout of 10 minutes
+
+
+
+
+ =
+
+
+ Whilst this demo is a JSF demo, you can use Web Beans with any =
+ Servlet based web framework.
+
+
+ =
+
+ Let's take a look at the Facelet view:
+
+ =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Guess a number...
+
+
+
+
+
+
+ =
+
+ I'm thinking of a number between #{game.smallest} and #{game.=
biggest}.
+ You have #{game.remainingGuesses} guesses.
+
+ =
+
+ Your guess: =
+
+
+
+
+
+
+
+
+
+
+
+]]>
+
+
+
+ Facelets is a templating language for JSF, here we are =
+ wrapping our page in a template which defines the header.
+
+
+
+
+ There are a number of messages which can be sent to the =
user,
+ "Higher!", "Lower!" and "Correct!"
+
+
+
+
+ As the user guesses, the range of numbers they can guess=
gets
+ smaller - this sentance changes to make sure they know w=
hat =
+ range to guess in.
+
+
+
+
+ This input field is bound to a Web Bean, using the value
+ expression.
+
+
+
+
+ A range validator is used to make sure the user doesn't
+ accidentally input a number outside of the range in whic=
h they
+ can guess - if the validator wasn't here, the user might=
use
+ up a guess on an out of range number.
+
+
+
+
+ And, of course, there must be a way for the user to send=
their
+ guess to the server. Here we bind to an action method on=
the
+ Web Bean.
+
+
+
+
+ =
+
+ The example exists of 4 classes, the first two of which are bindi=
ng
+ types. First, there is the @Random binding typ=
e, =
+ used for injecting a random number:
+
+ =
+
+
+
+ There is also the @MaxNumber binding type, use=
d for
+ injecting the maximum number that can be injected:
+
+ =
+
+
+
+ The Generator class is responsible for creatin=
g the
+ random number, via a producer method. It also exposes the maximum
+ possible number via a producer method:
+
+
+
+
+
+ You'll notice that the Generator is application
+ scoped; therefore we don't get a different random each time.
+
+ =
+
+ The final Web Bean in the application is the session scoped
+ Game.
+
+ =
+
+ You'll note that we've used the @Named =
+ annotation, so that we can use the bean through EL in the JSF pag=
e.
+ Finally, we've used constructor injection to initialize the game =
with
+ a random number. And of course, we need to tell the player when t=
hey've
+ won, so we give feedback with a FacesMessage.
+
+ =
+ number)
+ {
+ biggest =3D guess - 1;
+ }
+ if (guess(){});
+ }
+ =
+}]]>
+
+
+ The numberguess example in Tomcat
+ =
+
+ The numberguess for Tomcat differs in a couple of ways. Firstl=
y, =
+ Web Beans should be deployed as a Web Application library in
+ WEB-INF/lib. For your convenience we provid=
e a
+ single jar suitable for running Web Beans in any servlet conta=
iner =
+ webbeans-servlet.jar.
+
+ =
+
+
+ Of course, you must also include JSF and EL, as well common =
+ annotations (jsr250-api.jar) which a JEE=
server
+ includes by default.
+
+
+ =
+
+ Secondly, we need to explicitly specify the servlet listener
+ (used to boot Web Beans, and control it's interaction with req=
uests)
+ in web.xml:
+
+ =
+
+ org.jboss.webbeans.environment.servlet.Listener
+]]>
+ =
+
+ =
+
+ The numberguess example for Apache Wicket
+
+ Whilst JSR-299 specifies integration with Java ServerFaces, We=
b =
+ Beans allows you to inject into Wicket components, and also al=
lows =
+ you to use a conversation context with Wicket. In this section=
, =
+ we'll walk you through the Wicket version of the numberguess =
+ example. =
+
+ =
+
+ =
+ You may want to review the Wicket documentation at =
+ http://wicket.apac=
he.org/.
+
+
+
+
+ Like the previous example, the Wicket WebBeans examples make u=
se of =
+ the webbeans-servlet module. The use of t=
he =
+ Jetty servlet contain=
er
+ is common in the Wicket community, and is chosen here as the =
+ runtime container in order to facilitate comparison between th=
e =
+ standard Wicket examples and these examples, and also to show =
how =
+ the webbeans-servlet integration is not dependent upon Tomcat =
as the
+ servlet container.
+
+ =
+
+ These examples make use of the Eclipse IDE; instructions are a=
lso =
+ given to deploy the application from the command line.
+
+ =
+
+ Creating the Eclipse project
+ =
+
+ To generate an Eclipse project from the example:
+
+ =
+
+ =
+
+ Then, from eclipse, choose File -> Import -> Gene=
ral -> Existing Projects into Workspace, =
+ select the root directory of the numberguess example, and c=
lick =
+ finish. Note that if you do not intend to run the example =
with jetty from =
+ within eclipse, omit the "-Pjetty." This will create a pro=
ject in your =
+ workspace called webbeans-wicket-numberguess
+
+ =
+
+
+ =
+
+
+
+ =
+
+ Running the example from Eclipse
+ =
+
+ This project follows the wicket-quickstart =
+ approach of creating an instance of Jetty in the
+ Start class. So running the example is =
as =
+ simple as right-clicking on that Start class in =
+ src/test/java in the =
+ Package Explorer and choosing =
+ Run as Java Application. You should
+ see console output related to Jetty starting up; then visit=
able =
+ http://localhost:8080 to view the app. =
To =
+ debug choose Debug as Java Application.
+
+
+ =
+
+ Running the example from the command line in JBoss AS o=
r Tomcat
+ =
+
+ This example can also be deployed from the command line in =
a =
+ (similar to the other examples). Assuming you have set up =
the
+ build.properties file in the =
+ examples directory to specify the locati=
on of =
+ JBoss AS or Tomcat, as previously described, you can run =
+ ant deploy from the =
+ examples/wicket/numberguess directory, a=
nd =
+ access the application at =
+ http://localhost:8080/webbeans-numberguess-wicket<=
/literal>.
+
+
+ =
+
+ Understanding the code
+ =
+
+ JSF uses Unified EL expressions to bind view layer componen=
ts in =
+ JSP or Facelet views to beans, Wicket defines it's componen=
ts in =
+ Java. The markup is plain html with a one-to-one mapping be=
tween =
+ html elements and the view components. All view logic, incl=
uding =
+ binding of components to models and controlling the respons=
e of =
+ view actions, is handled in Java. The integration of Web B=
eans =
+ with Wicket takes advantage of the same binding annotations=
used =
+ in your business layer to provide injection into your WebPa=
ge =
+ subclass (or into other custom wicket component subclasses).
+
+
+
+ The code in the wicket numberguess example is very similar =
to the =
+ JSF-based numberguess example. The business layer is identi=
cal!
+
+ =
+ =
+ Differences are:
+
+
+
+
+ Each wicket application must have a =
+ WebApplication subclass, In our c=
ase, =
+ our application class is =
+ SampleApplication:
+
+
+
+ This class specifies which page wicket should treat a=
s our =
+ home page, in our case, HomePage.class
+
+
+
+
+ In HomePage we see typical wicket =
code =
+ to set up page elements. The bit that is interesting=
is =
+ the injection of the Game bean:
+
+ =
+
+ =
+
+ The Game bean is can then be used,=
for =
+ example, by the code for submitting a guess:
+
+ =
+
+ =
+
+
+ All injections may be serialized; actual storage o=
f the =
+ bean is managed by JSR-299. Note that Wicket =
+ components, like the HomePage and it subcomponents=
, are =
+ not JSR-299 beans.
+
+
+ Wicket components allow injection, but they =
+ cannot use interceptors, deco=
rators
+ and lifecycle callbacks such as =
+ @PostConstruct or =
+ @Initializer methods.
+
+
+
+
+
+ The example uses AJAX for processing of button events=
, and =
+ dynamically hides buttons that are no longer relevant=
, for =
+ example when the user has won the game.
+
+
+
+
+
+ In order to activate wicket for this webapp, the Wick=
et =
+ filter is added to web.xml, and our application class=
is =
+ specified:
+
+
+ wicket.numberguess-example
+ org.apache.wicket.protocol.http.WicketFilter
+
+ applicationClassName
+ org.jboss.webbeans.examples.wicket.SampleApplication
+
+
+
+
+ wicket.numberguess-example
+ /*
+
+ =
+
+ org.jboss.webbeans.environment.servlet.Listener
+]]>
+
+ Note that the servlet listener is also added, as in t=
he =
+ Tomcat example, in order to boostrap Web Beans when J=
etty =
+ starts, and to hook Web Beans into the Jetty servlet =
+ request and session lifecycles.
+
+
+ =
+
+
+
+ =
+
+ The numberguess example for Java SE with Swing
+
+
+ This example can be found in the =
+ examples/se/numberguess folder of the Web =
+ Beans distribution.
+
+ =
+ =
+
+ To run this example:
+
+ =
+
+
+
+ Open a command line/terminal window in the
+ examples/se/numberguess directory
+
+
+
+
+ Ensure that Maven 2 is installed and in your PATH
+
+
+
+
+ Ensure that the JAVA_HOME environment =
+ variable is pointing to your JDK installation
+
+
+
+
+ execute the following command
+
+ mvn -Drun
+
+
+
+ =
+
+
+ There is an empty beans.xml file in the roo=
t =
+ package (src/main/resources/beans.xml), whi=
ch =
+ marks this application as a Web Beans application.
+
+
+
+ The game's main logic is located in Game.java. =
+ Here is the code for that class, highlighting the changes made =
+ from the web application version:
+
+
+
+
+
+
+
+
+
+
+ number )
+ {
+ biggest =3D guess - 1;
+ }
+
+ if ( guess < number )
+ {
+ smallest =3D guess + 1;
+ }
+
+ if ( guess =3D=3D number )
+ {
+ result =3D true;
+ }
+
+ remainingGuesses--;
+ }
+
+ return result;
+ }
+
+ private boolean checkNewNumberRangeIsValid()
+ {
+ return validNumberRange =3D ( ( guess >=3D smallest ) && ( guess <=
=3D biggest ) );
+ }
+
+ @PostConstruct
+ public void reset()
+ {
+ this.smallest =3D 0;
+ ...
+ this.number =3D rndGenerator.next();
+ }
+}]]>
+
+
+
+ The bean is application scoped instead of session sco=
ped, =
+ since an instance of the application represents a sin=
gle 'session'.
+
+
+
+
+ The bean is not named, since it doesn't need to be ac=
cessed
+ via EL
+
+
+
+
+ There is no JSF FacesContext to ad=
d =
+ messages to. Instead the Game clas=
s =
+ provides additional information about the state of th=
e =
+ current game including:
+
+
+
+
+
+
+ If the game has been won or lost
+
+
+
+
+ If the most recent guess was invalid
+
+
+
+
+
+ This allows the Swing UI to query the state of the ga=
me, =
+ which it does indirectly via a class called =
+ MessageGenerator, in order to dete=
rmine =
+ the appropriate messages to display to the user durin=
g the =
+ game.
+
+
+
+
+ Validation of user input is performed during the =
+ check() method, since there is no =
+ dedicated validation phase
+
+
+
+
+ The reset() method makes a call to=
the =
+ injected rndGenerator in order to =
get =
+ the random number at the start of each game. It canno=
t use
+ manager.getInstanceByType(Integer.class, new=
AnnotationLiteral<Random>(){})
+ as the JSF example does because there will not be any=
active contexts like
+ there is during a JSF request.
+
+
+
+
+
+
+ The MessageGenerator class depends on the =
+ current instance of Game, and queries its =
+ state in order to determine the appropriate messages to provid=
e =
+ as the prompt for the user's next guess and the response to th=
e =
+ previous guess. The code for MessageGenerator =
+ is as follows:
+
+
+
+
+
+
+
+
+
+
+
+
+ The instance of Game for the appli=
cation
+ is injected here.
+
+
+
+
+ The Game's state is interrogated t=
o =
+ determine the appropriate challenge message.
+
+
+
+
+ And again to determine whether to congratulate, conso=
le or
+ encourage the user to continue.
+
+
+
+
+
+
+ Finally we come to the NumberGuessFrame cla=
ss =
+ which provides the Swing front end to our guessing game. =
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ The injected instance of the game (logic and state).
+
+
+
+
+ The injected message generator for UI messages.
+
+
+
+
+ This application is started in the usual Web Beans SE =
way, =
+ by observing the @Deployed Manager =
event.
+
+
+
+
+ This method initialises all of the Swing components. =
Note =
+ the use of the msgGenerator.
+
+
+
+
+ guessButtonActionPerformed is call=
ed =
+ when the 'Guess' button is clicked, and it does the =
+ following:
+
+
+
+
+
+ Gets the guess entered by the user and sets it =
as the
+ current guess in the Game
+
+
+
+
+ Calls game.check() to valida=
te and
+ perform one 'turn' of the game
+
+
+
+
+ Calls refreshUI. If there we=
re =
+ validation errors with the input, this will hav=
e been =
+ captured during game.check()=
and =
+ as such will be reflected in the messeges retur=
ned by
+ MessageGenerator and subsequ=
ently
+ presented to the user. If there are no validati=
on =
+ errors then the user will be told to guess agai=
n =
+ (higher or lower) or that the game has ended ei=
ther =
+ in a win (correct guess) or a loss (ran out of =
+ guesses).
+
+
+
+
+
+
+ replayBtnActionPerformed simply ca=
lls =
+ game.reset() to start a new game a=
nd =
+ refreshes the messages in the UI.
+
+
+
+
+ refreshUI uses the =
+ MessageGenerator to update the mes=
sages =
+ to the user based on the current state of the Game.
+
+
+
+
+
+
+
+ =
+
+ The translator example
+ =
+
+ The translator example will take any sentences you enter, and tra=
nslate
+ them to Latin.
+
+ =
+
+ The translator example is built as an ear, and contains EJBs. As =
a result, it's structure is more complex than
+ the numberguess example.
+
+ =
+
+
+ EJB 3.1 and Jave EE 6 allow you to package EJBs in a war, whic=
h will
+ make this structure much simpler!
+
+
+ =
+
+ First, let's take a look at the ear aggregator, which is located =
in =
+ webbeans-translator-ear module. Maven automati=
cally
+ generates the application.xml for us:
+
+ =
+
+ org.apache.maven.plugins
+ maven-ear-plugin
+
+
+
+ org.jboss.webbeans.examples.translator
+ webbeans-translator-war
+ /webbeans-translator
+
+
+
+]]>
+
+
+ Here we set the context path, which gives us a nice url =
+ (http://=
localhost:8080/webbeans-translator).
+
+ =
+
+
+ If you aren't using Maven to generate these files, you would n=
eed
+ META-INF/application.xml:
+
+ =
+
+
+ webbeans-translator-ear
+ Ear Example for the reference implementation of JSR 299: We=
b Beans
+ =
+
+
+ webbeans-translator.war
+ /webbeans-translator
+
+
+
+ webbeans-translator.jar
+
+]]>
+
+ =
+
+ Next, lets look at the war. Just as in the numberguess example, w=
e have
+ a faces-config.xml (to enable Facelets) and a =
+ web.xml (to enable JSF) in =
+ WebContent/WEB-INF.
+
+ =
+
+ More intersting is the facelet used to translate text. Just as in
+ the numberguess example we have a template, which surrounds the f=
orm
+ (ommitted here for brevity):
+
+ =
+
+ =
+
+
+
+ Your text
+ |
+
+ Translation
+ |
+
+
+
+
+ |
+
+
+ |
+
+
+
+
+
+ =
+]]>
+
+
+ The user can enter some text in the lefthand textarea, and hit th=
e =
+ translate button to see the result to the right.
+
+ =
+
+ Finally, let's look at the ejb module, =
+ webbeans-translator-ejb.
+ In src/main/resources/META-INF there is just a=
n =
+ empty web-beans.xml, used to mark the archive =
as =
+ containing Web Beans.
+
+ =
+
+ We've saved the most interesting bit to last, the code! The proje=
ct has
+ two simple beans, SentenceParser and
+ TextTranslator and two enterprise beans,
+ TranslatorControllerBean and =
+ SentenceTranslator. You should be getting quite
+ familiar with what a Web Bean looks like by now, so we'll just =
+ highlight the most interesting bits here.
+
+ =
+
+ Both SentenceParser and =
+ TextTranslator are dependent beans, and =
+ TextTranslator uses constructor initialization:
+
+ =
+
+ =
+
+ TextTranslator is a stateless bean (with a loc=
al =
+ business interface), where the magic happens - of course, we coul=
dn't =
+ develop a full translator, but we gave it a good go!
+
+ =
+
+ Finally, there is UI orientated controller, that collects the tex=
t from
+ the user, and dispatches it to the translator. This is a request =
+ scoped, named, stateful session bean, which injects the translato=
r.
+
+ =
+
+ =
+
+ The bean also has getters and setters for all the fields on the p=
age.
+
+ =
+
+ As this is a stateful session bean, we have to have a remove meth=
od:
+
+ =
+
+ =
+
+ The Web Beans manager will call the remove method for you when th=
e bean
+ is destroyed; in this case at the end of the request.
+
+
+ =
+
+ That concludes our short tour of the Web Beans examples. For more on=
Web =
+ Beans , or to help out, please visit =
+ htt=
p://www.seamframework.org/WebBeans/Development.
+
+ =
+
+ We need help in all areas - bug fixing, writing new features, writing
+ examples and translating this reference guide.
+
+
+
Deleted: doc/tags/1.0.0.PREVIEW1/pom.xml
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- doc/trunk/reference/pom.xml 2009-04-19 21:01:39 UTC (rev 2520)
+++ doc/tags/1.0.0.PREVIEW1/pom.xml 2009-04-20 12:42:39 UTC (rev 2596)
@@ -1,321 +0,0 @@
-
-
- 4.0.0
-
- org.jboss.webbeans.reference-guide
- webbeans-reference-guide
- 1.0.0-SNAPSHOT
- jdocbook
- Web Beans Reference Guide
-
-
-
- repository.jboss.org
- JBoss Repository
- http://repository.jboss.org/maven2
-
-
-
-
- repository.jboss.org
- JBoss Repository
- http://repository.jboss.org/maven2
-
-
-
-
- 2.1.1
-
-
-
- process-classes
-
-
- org.jboss.maven.plugins
- maven-jdocbook-plugin
- ${mpjdocbook.version}
- true
-
-
- org.jboss.webbeans
- webbeans-docbook-xslt
- 1.1.1.BETA2
-
-
- org.eclipse.wst.css
- core
-
-
- org.eclipse.wst.sse
- core
-
-
-
-
- org.jboss.seam
- seam-jdocbook-style
- 1.1.0.GA
- jdocbook-style
-
-
- org.jboss
- jbossorg-jdocbook-style
- 1.1.0
- jdocbook-style
-
-
-
- ${pom.basedir}
- master.xml
- en-US
-
- it-IT
- zh-CN
- zh-TW
- es-ES
- ko-KR
- de-DE
- pt-BR
-
-
- ${pom.basedir}/en-US
-
- images/*.png
-
-
-
-
- pdf
-
- classpath:/xslt/org/jboss/webbeans/pdf.xsl
-
- webbeans_reference.pdf
-
-
- html
-
- classpath:/xslt/org/jboss/webbeans/xhtml.xsl
-
- index.html
-
-
- html_single
-
- classpath:/xslt/org/jboss/webbeans/xhtml-single.xsl
-
- index.html
-
-
-
- true
- saxon
-
-
- 1.72.0
- -
-
-
-
-
- maven-antrun-plugin
-
-
- process-classes
-
-
-
-
-
-
- run
-
-
-
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
-
-
- org.apache.maven.plugins
- maven-release-plugin
-
- -Dbuild.translations
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- 2.0
-
-
- org.jboss.maven.plugins
- maven-jdocbook-plugin
- ${mpjdocbook.version}
-
-
- org.apache.maven.plugins
- maven-jar-plugin
-
-
-
-
- true
-
-
- true
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-report-plugin
- 2.4.3
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
- 2.4.3
-
-
- org.apache.maven.plugins
- maven-clean-plugin
- 2.2
-
-
- org.apache.maven.plugins
- maven-deploy-plugin
- 2.4
-
-
- org.apache.maven.plugins
- maven-install-plugin
- 2.2
-
-
- org.apache.maven.plugins
- maven-site-plugin
- 2.0-beta-6
-
-
- org.apache.maven.plugins
- maven-source-plugin
- 2.0.4
-
-
- org.apache.maven.plugins
- maven-jar-plugin
- 2.2
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- 1.1
-
-
- org.apache.maven.plugins
- maven-release-plugin
- 2.0-beta-7
-
-
- org.apache.maven.plugins
- maven-enforcer-plugin
- 1.0-alpha-4
-
-
- enforce
-
- enforce
-
-
-
-
- 2.0.9
-
-
-
- org.apache.maven.plugins=
:maven-eclipse-plugin
-
-
-
-
-
-
-
-
-
-
-
- org.apache.maven.wagon
- wagon-webdav
- 1.0-beta-2
-
-
-
- =
-
-
-
-
- build.translations =
-
-
-
-
-
- org.jboss.maven.plugins
- maven-jdocbook-plugin
-
-
- process-resources
-
- translate
-
-
-
-
-
-
-
-
- =
-
- Hudson
-
-
-
-
-
- JIRA
- http://jira.jboss.org/browse/WBRI
-
-
- 2008
-
-
-
- scm:svn:http://anonsvn.jboss.org/repos/webbeans/doc
- scm:svn:https://svn.jboss.org/repos/webbeans/do=
c
- http://fisheye.jboss.org/browse/WebBeans/doc
- =
- =
-
-
-
-
-
- repository.jboss.org
- file://${maven.repository.root}
-
-
- snapshots.jboss.org
- JBoss Snapshot Repository
- dav:https://snapshots.jboss.org/maven2
-
-
-
\ No newline at end of file
Copied: doc/tags/1.0.0.PREVIEW1/pom.xml (from rev 2595, doc/trunk/reference=
/pom.xml)
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- doc/tags/1.0.0.PREVIEW1/pom.xml (rev 0)
+++ doc/tags/1.0.0.PREVIEW1/pom.xml 2009-04-20 12:42:39 UTC (rev 2596)
@@ -0,0 +1,321 @@
+
+
+ 4.0.0
+
+ org.jboss.webbeans.reference-guide
+ webbeans-reference-guide
+ 1.0.0.PREVIEW1
+ jdocbook
+ Web Beans Reference Guide
+
+
+
+ repository.jboss.org
+ JBoss Repository
+ http://repository.jboss.org/maven2
+
+
+
+
+ repository.jboss.org
+ JBoss Repository
+ http://repository.jboss.org/maven2
+
+
+
+
+ 2.1.1
+
+
+
+ process-classes
+
+
+ org.jboss.maven.plugins
+ maven-jdocbook-plugin
+ ${mpjdocbook.version}
+ true
+
+
+ org.jboss.webbeans
+ webbeans-docbook-xslt
+ 1.1.1.BETA2
+
+
+ org.eclipse.wst.css
+ core
+
+
+ org.eclipse.wst.sse
+ core
+
+
+
+
+ org.jboss.seam
+ seam-jdocbook-style
+ 1.1.0.GA
+ jdocbook-style
+
+
+ org.jboss
+ jbossorg-jdocbook-style
+ 1.1.0
+ jdocbook-style
+
+
+
+ ${pom.basedir}
+ master.xml
+ en-US
+
+ it-IT
+ zh-CN
+ zh-TW
+ es-ES
+ ko-KR
+ de-DE
+ pt-BR
+
+
+ ${pom.basedir}/en-US
+
+ images/*.png
+
+
+
+
+ pdf
+
+ classpath:/xslt/org/jboss/webbeans/pdf.xsl
+
+ webbeans_reference.pdf
+
+
+ html
+
+ classpath:/xslt/org/jboss/webbeans/xhtml.xsl
+
+ index.html
+
+
+ html_single
+
+ classpath:/xslt/org/jboss/webbeans/xhtml-single.xsl
+
+ index.html
+
+
+
+ true
+ saxon
+
+
+ 1.72.0
+ -
+
+
+
+
+ maven-antrun-plugin
+
+
+ process-classes
+
+
+
+
+
+
+ run
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+
+
+ org.apache.maven.plugins
+ maven-release-plugin
+
+ -Dbuild.translations
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 2.0
+
+
+ org.jboss.maven.plugins
+ maven-jdocbook-plugin
+ ${mpjdocbook.version}
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+
+
+
+
+ true
+
+
+ true
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.4.3
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+ 2.4.3
+
+
+ org.apache.maven.plugins
+ maven-clean-plugin
+ 2.2
+
+
+ org.apache.maven.plugins
+ maven-deploy-plugin
+ 2.4
+
+
+ org.apache.maven.plugins
+ maven-install-plugin
+ 2.2
+
+
+ org.apache.maven.plugins
+ maven-site-plugin
+ 2.0-beta-6
+
+
+ org.apache.maven.plugins
+ maven-source-plugin
+ 2.0.4
+
+
+ org.apache.maven.plugins
+ maven-jar-plugin
+ 2.2
+
+
+ org.apache.maven.plugins
+ maven-antrun-plugin
+ 1.1
+
+
+ org.apache.maven.plugins
+ maven-release-plugin
+ 2.0-beta-7
+
+
+ org.apache.maven.plugins
+ maven-enforcer-plugin
+ 1.0-alpha-4
+
+
+ enforce
+
+ enforce
+
+
+
+
+ 2.0.9
+
+
+
+ org.apache.maven.plugins=
:maven-eclipse-plugin
+
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.wagon
+ wagon-webdav
+ 1.0-beta-2
+
+
+
+ =
+
+
+
+
+ build.translations =
+
+
+
+
+
+ org.jboss.maven.plugins
+ maven-jdocbook-plugin
+
+
+ process-resources
+
+ translate
+
+
+
+
+
+
+
+
+ =
+
+ Hudson
+
+
+
+
+
+ JIRA
+ http://jira.jboss.org/browse/WBRI
+
+
+ 2008
+
+
+
+ scm:svn:http://anonsvn.jboss.org/repos/webbeans/doc/tags=
/1.0.0.PREVIEW1
+ scm:svn:https://svn.jboss.org/repos/webbeans/do=
c/tags/1.0.0.PREVIEW1
+ http://fisheye.jboss.org/browse/WebBeans/doc/tags/1.0.0.PREVIEW=
1
+ =
+ =
+
+
+
+
+
+ repository.jboss.org
+ file://${maven.repository.root}
+
+
+ snapshots.jboss.org
+ JBoss Snapshot Repository
+ dav:https://snapshots.jboss.org/maven2
+
+
+
\ No newline at end of file
--===============4375139807214873746==--