The call4all app – Call 4 papers app – Seam 3 example
[Note – Before reading this tutorial, would be nice if you read this post before – It tells you that these Seam posts are under incremental builds and are modified everyday]
Henry is a Computer Science student and he is also an Open Source enthusiastic. He decided to share his knowledge by speaking into some conferences.
Henry checks the Confbuzz app to see the dates of the conferences, and he finds out that there are lots of conferences he would like to speak at. All of them have their our own Call4Papers/talk submission process.
“Crap! I have to copy-paste lots of information…. Bio, email, phone number, Twitter, Facebook… And wth, some of these sites are horrible…. All these technical conferences should have a unified submission process…. would save me lots of time and would ensure that the talk submission process is friendly…. Wait a minute…”
So probably you and Henry got a perfect idea. Create a Call4Papers website example.
But Henry decided he would like to do more. “I’ll talk about it into a conference!”.
Henry started studying Seam 3 few weeks ago and he thinks he’s able to create de Call4All app using it. He starts to fill the form:
So let’s help Henry to create his app. He is a Maven lover, so he prefers to create the app without using Seam Forge. *(check this post for more information about creating a Seam 3 project, with or without Seam Forge)
Creating the project
Henry opens his Eclipse Indigo and install JBoss Tools *. Also he decided to use JBoss AS 7 as it is his favorite Application Server (in fact Henry is in love with that, he still cannot believe AS7 starts in less than 3 seconds). He creates a new Maven project, fills artifactId, groupId, version and package info about the project. Then, he just adds Seam dependencies, getting a pom.xml like this.
So let’s take an overview about these Maven dependencies: [Note: If you are a Maven beginner, you might skip this session and just truste me that this pom.xml really works. Otherwise, if you are ok with maven, take a look at this brief explanation]
< properties > stuff helps us to control some dependencies version.
< dependencyManagement > is used to import Seam and RichFaces dependencies.
Then, we add Seam modules (the ones whose groupId is org.jboss.seam ), joda time, prettyfaces (required dependencies for some modules) , richfaces, and adjust some other dependencies (like hibernate validator, we must exclude it from seam-validation and add another version for that, otherwise we will have some trouble with AS 7.
Then Henry runs a mvn clean install – and TA-DA! BUILD SUCCESSFUL!
Maybe you have some questions like “WTH is…. Arquillian?” Take a look here. [I’m also writing a short tutorial about it].
*current version for Indigo – 3.3.0 M2
So what’s next? Henry thinks about the Call4All app… “When i access this webpage, I want to login, auto-fill my personal data and just type the talk title and a brief description. I will forget about page layout for while, and just live h:”.
Good way to start. “But also” – thinks Henry – “I want that conferences may be able to register and access the call4all app via Rest… and then get the proposals, reports and statistics about submission themes, speakers profiles… And oh, would be nice integrate it to Twitter, so as soon as you submit a proposal you can tweet about it…. Or share into facebook… Or even more crazy, go to a voting page for community choose the best keynothes that will be presented….” And then Henry starts to have crazy ideas.
Now let’s see how to implement them using Seam 3 modules. In the next posts Henry will show:
- Faces module – the base
- Seam Security and the login page
- The Brazilian speaker and the international module
Entry filed under: Uncategorized.