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. - = - - - 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. + = + + + 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==--