You can find the full source code for this website in the Seam package in the directory /examples/wiki. It is licensed under the LGPL.
Page deprecated. Please see Contribute
One of the greatest tenets of open source is: if something doesn't work the way you want it to, you have the power to change it.
Whether you want to try out a unreleased feature or you want to contribute code or documentation, you'll need to learn how to checkout and build the Seam project, or just a single module. Follow the instructions on this page to get started.
Starting with Seam 3, the Seam source code is partitioned into multiple git repositories. As such, there is no longer a Seam
core. The core is now JSR-299, other parts of Java EE and Seam Solder (formally Weld Extensions). This makes it easy to add Seam to existing Java EE applications.
FAQ: Why are the modules in separate git repositories?
We are using separate repositories for each module because our plan is to allow the modules to have independent release cycles. That means individual tags and possibly branches. But that doesn't mean we are throwing the multi-module mechanism of Maven out the window. One of the git repositories is a build aggregator, which, when checked out adjacent to the modules is able to build them at once and package a distribution.
All Seam modules use the org.jboss.seam:seam-parent artifact as a parent. This module defines local dependencies for the project (such as the testing framework in use). The parent also imports the org.jboss.seam:seam-bom which defines the current Seam stack - thirdparty and Seam dependencies. The version of the BOM to use is defined by the property seam.version which should be specified explicitly in every module.
If you need to add a dependency to the build, you should consider whether it is a runtime dependency for the module - if it is, you need to add the version to the BOM. If it is only a compile time dependency, then you can just add it to parent.
Dependency on the Seam parent and BOM adheres to a release-dependency only policy.
Snapshot for Seam (and Weld) are deployed to the Nexus instance at http://oss.sonatype.org/content/repositories/snapshots. If you want permission to deploy snapshots, please contact Pete Muir. If you are wondering, the JBoss snapshots repository (http://snapshots.jboss.org/maven2) is now deprecated.
In order to check out and build the Seam source code, you will need the following software on your machine:
After you have the JDK downloaded and setup, we recommend that you set the JAVA_HOME environment variable, though it's not necessary to build Seam.
We also recommend that you use an IDE. One of the main benefits of CDI is that it supports refactoring, something an IDE is very good at doing.
Here are a couple of IDEs to choose from:
The source code for Seam 3 lives in separate roots under the Seam github.com organization.
There are several modes in which you can check out the source code:
If you just want to browse the source code, you can either just look at it online in the github.com source code viewer or you can checkout read-only. If you wanted to pull down the source for the Seam Faces module, you would use this git command:
git clone git://github.com/seam/faces.git
If you plan to contribute changes, you should first fork the repository into your own github account. You can commit to that repository and then send a pull request when you want to request your changes to be integrated. The fork process is described well in the github.com help pages.
Only the Seam integration manager (which is Pete) will merge pull requests into the master branch. To send a pull request, you must have signed the contributor agreement WD20EARS Browse Seam Repository (FishEye) | Seam SVN Notification Feed | Seam SVN Notification Mailing List
The Seam source code is modularized, which means it is separated into one trunk per sub-project. There are three types of sub-projects:
To build Seam, you need at least the build project and one module.
Since dealing with a modularized project can be difficult, we provide a script for Linux, Unix or Mac that checks out and organizes all the sub-projects you'll need. Begin by opening a terminal and changing to your development directory. Then, copy and paste the commands below into your terminal window to checkout the source code in read-only mode.
wget -N --no-check-certificate http://github.com/seam/build/raw/master/checkout.sh chmod 755 checkout.sh ./checkout.sh -d seam-master
If you want to checkout in developer mode, just add the -m commandline switch.
Checking out manually doesn't require any voodoo magic. You just have to check out each of the trunks one at a time. Again, open a terminal and switch to your development directory. Follow these commands to mimic the work that the script above performs:
mkdir seam-upstream cd seam-upstream git clone git://github.com/seam/build.git git clone git://github.com/seam/dist.git git clone git://github.com/seam/documents.git git clone git://github.com/seam/drools.git git clone git://github.com/seam/faces.git git clone git://github.com/seam/international.git git clone git://github.com/seam/jms.git git clone git://github.com/seam/js-remoting.git git clone git://github.com/seam/persistence.git git clone git://github.com/seam/remoting.git git clone git://github.com/seam/security.git git clone git://github.com/seam/servlet.git git clone git://github.com/seam/wicket.git git clone git://github.com/seam/mail.git git clone git://github.com/seam/catch.git git clone git://github.com/seam/xml-config.git
If a module is missing from this list, take a look at the repository list in the Seam github.com organization to see what else is available.
To build the project, switch to the build/parent directory and run Maven:
cd build/parent mvn install cd ..
Then switch to the dist directory (containing the Seam BOM) and run Maven:
cd dist mvn install cd ..
Note: If you've updated the parent or BOM, you'll need to install them locally to see your changes in the module.
Now you can build any of the modules. First, consult the module status page to see which modules are functional. Here, we are building the faces module:
cd faces mvn install cd ..
At this point, you can import the projects into your IDE Sports Betting Live at Bet365 Pariuri or build them individually from the commandline using the Maven command (mvn).
The easiest way to do this is to use the seam-module-archetype. To generate the module run:
mvn archetype:generate \ -DarchetypeGroupId=org.jboss.seam.build \ -DarchetypeArtifactId=seam-module-archetype \ -DarchetypeVersion=3.0.0-SNAPSHOT \ -DarchetypeRepository=http://oss.sonatype.org/content/repositories/snapshots \ -DartifactId=moduleName \ -DparentVersion=X.Y.Z-Q \ -DseamVersion=A.B.C-Q \ -DinteractiveMode=false
The artifactId flag defines the name of the module. Note that the prefix seam- will automatically be added to the name of the project, so don't include it in artifactId or it else will be repeated (e.g., seam-seam-moduleName). Currently, you'll want to choose 3.0.0-SNAPSHOT for both the seamVersion and the parentVersion.
Once you have generated the module, you'll want to import it into Eclipse (we recommend using the m2eclipse plugin), add dependencies as needed (don't forget to put the version in the right place!) and code away!
If you would like to use IntelliJ IDEA for Seam development, you can take advantage of the Seam community license. The license key and details about the terms are available on request by one of the team members (try Dan first). Keep in mind the license expires each year in the fall, so contact one of us when IntelliJ prompts you for the new code.
We'd like to thank JetBrains for their support of Seam development. Not only do they support the development of Seam by offering this license, they also have add extensive support for Seam development in the IDE in the form of plugins.