Author: manaRH
Date: 2008-06-09 09:13:49 -0400 (Mon, 09 Jun 2008)
New Revision: 8354
Modified:
branches/Seam_2_0_FP/build.xml
branches/Seam_2_0_FP/readme.txt
branches/Seam_2_0_FP/release-process.txt
branches/Seam_2_0_FP/seam-gen/build.xml
branches/Seam_2_0_FP/seam2migration.txt
branches/Seam_2_0_FP/src/main/org/jboss/seam/Seam.java
branches/Seam_2_0_FP/src/main/org/jboss/seam/init/DeploymentDescriptor.java
branches/Seam_2_0_FP/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
branches/Seam_2_0_FP/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
Log:
feature pack modifications
Modified: branches/Seam_2_0_FP/build.xml
===================================================================
--- branches/Seam_2_0_FP/build.xml 2008-06-09 13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/build.xml 2008-06-09 13:13:49 UTC (rev 8354)
@@ -18,7 +18,6 @@
<property name="classes.ioc.dir"
value="${classes.dir}/iocclasses" />
<property name="classes.mail.dir"
value="${classes.dir}/mailclasses" />
<property name="classes.debug.dir"
value="${classes.dir}/debugclasses" />
- <property name="classes.jbas5.dir"
value="${classes.dir}/jbas5classes" />
<property name="classes.remoting.dir"
value="${classes.dir}/remotingclasses" />
<property name="classes.gen.dir"
value="${classes.dir}/genclasses" />
<property name="classes.test.dir"
value="${classes.dir}/testclasses" />
@@ -33,7 +32,6 @@
<property name="src.ioc.dir" value="src/ioc" />
<property name="src.mail.dir" value="src/mail" />
<property name="src.debug.dir" value="src/debug" />
- <property name="src.jbas5.dir" value="src/jbas5" />
<property name="src.gen.dir" value="src/gen" />
<property name="src.remoting.dir" value="src/remoting" />
<property name="src.test.dir" value="src/test" />
@@ -63,7 +61,6 @@
<property name="dist.src.ioc.dir" value="${dist.dir}/src/ioc"
/>
<property name="dist.src.mail.dir" value="${dist.dir}/src/mail"
/>
<property name="dist.src.debug.dir" value="${dist.dir}/src/debug"
/>
- <property name="dist.src.jbas5.dir" value="${dist.dir}/src/jbas5"
/>
<property name="dist.src.gen.dir" value="${dist.dir}/src/gen"
/>
<property name="dist.src.remoting.dir"
value="${dist.dir}/src/remoting" />
<property name="dist.src.test.dir" value="${dist.dir}/src/test"
/>
@@ -149,7 +146,7 @@
<delete dir="${lib.dir}" quiet="${quietclean}" />
</target>
- <target name="build"
depends="jarcore,jarpdf,jarioc,jarmail,jarremoting,jardebug,jargen,jarui,jarjbas5"
description="Build all distribution .jar files" />
+ <target name="build"
depends="jarcore,jarpdf,jarioc,jarmail,jarremoting,jardebug,jargen,jarui"
description="Build all distribution .jar files" />
<target name="select-compiler">
<available classname="org.eclipse.jdt.core.JDTCompilerAdapter"
property="build.compiler"
value="org.eclipse.jdt.core.JDTCompilerAdapter" />
@@ -256,20 +253,6 @@
<archive classesdir="${classes.debug.dir}"
module="jboss-seam-debug" pom="${debug.pom}"
srcdir="${src.debug.dir}"/>
</target>
- <!-- ########################### JBAS5 TARGETS ###########################-->
-
- <target name="initjbas5" depends="init, jarcore">
- <init classesdir="${classes.jbas5.dir}"
srcdir="${src.jbas5.dir}" modulename="jbas5"
pom="${jbas5.pom}" />
- </target>
-
- <target name="compilejbas5" depends="initjbas5,
select-compiler">
- <compile classesdir="${classes.jbas5.dir}"
srcdir="${src.jbas5.dir}" classpath="compile.jbas5.path" />
- </target>
-
- <target name="jarjbas5" depends="compilejbas5"
description="Build the distribution .jar file for the JBAS5 integration
package">
- <archive classesdir="${classes.jbas5.dir}"
module="jboss-seam-jbas5" pom="${jbas5.pom}"
srcdir="${src.jbas5.dir}" outputdir="${lib.dir}/interop" />
- </target>
-
<!-- ########################### GEN TARGETS ###########################-->
<target name="initgen" depends="init">
@@ -338,11 +321,8 @@
<cleanexample name="remoting/gwt" />
<cleanexample name="hibernate" />
<cleanexample name="jpa" />
- <cleanexample name="jee5/booking" />
- <cleanexample name="jee5/remoting" />
<cleanexample name="groovybooking" />
<cleanexample name="quartz" />
- <cleanexample name="wiki" />
<cleanexample name="seamdiscs" />
<cleanexample name="icefaces" />
<cleanexample name="seambay" />
@@ -398,11 +378,7 @@
<testexample name="itext" />
<testexample name="hibernate" />
<testexample name="jpa" />
- <testexample name="quartz" />
- <ant dir="examples/wiki" target="test"
inheritall="false">
- <property name="test.output.dir" value="${test.dir}/wiki"
/>
- </ant>
- <!--<ant dir="examples/portal" target="test"
inheritall="false" />-->
+ <testexample name="quartz" />
</target>
<target name="validateall" description="Validate all example XML
Configuration Files">
<ant dir="examples/booking" target="validateConfiguration"
inheritall="false" />
@@ -431,7 +407,6 @@
<copysource destdir="${dist.src.remoting.dir}"
srcdir="${src.remoting.dir}" />
<copysource destdir="${dist.src.mail.dir}"
srcdir="${src.mail.dir}" />
<copysource destdir="${dist.src.debug.dir}"
srcdir="${src.debug.dir}" />
- <copysource destdir="${dist.src.jbas5.dir}"
srcdir="${src.jbas5.dir}" />
<copysource destdir="${dist.src.gen.dir}"
srcdir="${src.gen.dir}" />
<copysource destdir="${dist.src.test.dir}"
srcdir="${src.test.dir}" />
@@ -615,22 +590,25 @@
<copy todir="${classes.test.core.dir}">
<fileset dir="${classes.core.dir}" includes="**/*.*" />
</copy>
- <artifact:dependencies pathId="remoting.path">
- <dependency groupId="org.jboss.seam"
artifactId="jboss-seam-remoting" version="${complete.version}" />
- </artifact:dependencies>
+ <inlineDependencies scope="compile" id="remoting">
+ <dependency groupId="org.jboss.seam"
artifactId="jboss-seam-remoting" version="${complete.version}" />
+ </inlineDependencies>
<path id="test.compile.path">
<path refid="test.core.path" />
<path path="${classes.test.core.dir}" />
- <path refid="remoting.path" />
+ <path refid="compile.remoting.path" />
</path>
</target>
<target name="testcore"
depends="inittestcore,compiletest,getemma" description="Run the core
tests">
<taskdef resource="testngtasks" classpathref="test.core.path"
/>
- <testng>
- <jvmarg value="-Demma.coverage.out.file=${coverage.ec}" />
- <jvmarg line="-Djava.awt.headless=true" />
+ <testng outputdir="${test.dir}">
+ <jvmarg line="-Xmx800M" />
+ <jvmarg line="-Djava.awt.headless=true" />
+ <jvmarg line="-Demma.coverage.out.file=${coverage.ec}" />
+ <jvmarg line="-Djava.endorsed.dirs=${endorsed.dir}" />
+ <jvmarg line="${testng.jvmargs}" />
<classpath>
<path path="${classes.test.core.dir}" />
<path path="${classes.test.dir}" />
@@ -886,7 +864,6 @@
<propertyref name="ioc.pom" />
<propertyref name="mail.pom" />
<propertyref name="debug.pom" />
- <propertyref name="jbas5.pom" />
<propertyref name="testng.jvmargs"/>
</propertyset>
</ant>
@@ -896,7 +873,6 @@
<target name="downloadDependenciesSources" description="Download
source jars for all dependencies" depends="init">
<dependenciesWithSources id="core" scope="compile"
pom="${core.pom}" />
<dependenciesWithSources id="debug" scope="compile"
pom="${debug.pom}" />
- <dependenciesWithSources id="jbas5" scope="compile"
pom="${jbas5.pom}" />
<dependenciesWithSources id="gen" scope="compile"
pom="${gen.pom}" />
<dependenciesWithSources id="ioc" scope="compile"
pom="${ioc.pom}" />
<dependenciesWithSources id="mail" scope="compile"
pom="${mail.pom}" />
@@ -924,7 +900,6 @@
classpathref="seam-gen.path"/>
<dependencies id="core" scope="compile"
pom="${core.pom}" />
<dependencies id="debug" scope="compile"
pom="${debug.pom}" />
- <dependencies id="jbas5" scope="compile"
pom="${jbas5.pom}" />
<dependencies id="gen" scope="compile"
pom="${gen.pom}" />
<dependencies id="ioc" scope="compile"
pom="${ioc.pom}" />
<dependencies id="mail" scope="compile"
pom="${mail.pom}" />
@@ -940,7 +915,6 @@
<path refid="compile.pdf.path" />
<path refid="compile.remoting.path" />
<path refid="compile.ui.path" />
- <path refid="compile.jbas5.path" />
</eclipseClasspath>
</target>
Modified: branches/Seam_2_0_FP/readme.txt
===================================================================
--- branches/Seam_2_0_FP/readme.txt 2008-06-09 13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/readme.txt 2008-06-09 13:13:49 UTC (rev 8354)
@@ -1,6 +1,6 @@
-JBoss Seam - Contextual Component framework for Java EE 5
+JBoss Seam FP - Contextual Component framework for Java EE 5
=========================================================
-version 2.0.2.GA, May 2008
+version 1.0.GA, May 2008
This software is distributed under the terms of the FSF Lesser Gnu
Public License (see lgpl.txt).
Modified: branches/Seam_2_0_FP/release-process.txt
===================================================================
--- branches/Seam_2_0_FP/release-process.txt 2008-06-09 13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/release-process.txt 2008-06-09 13:13:49 UTC (rev 8354)
@@ -5,8 +5,10 @@
------------------------
* Send an email to seam-dev(a)lists.jboss.org.
- State a version of the following :
- - As all issues in JIRA for Seam <release> are now resolved, the release
process for <release> is now underway.
- - Please don't make any commits to the <branch or trunk> without checking
with this mail list first.
+ - As all issues in JIRA for Seam <release> are now resolved, the release
+ process for <release> is now underway. Please don't make any commits to
+ the <branch or trunk> without checking with and getting approval from
+ this mail list first.
Updating version numbers
------------------------
@@ -21,49 +23,50 @@
- build/default.build.properties
- Change the version numbers as needed
- Set the qualifier using a "." ex. ".CR1" or ".GA"
- - Check that build.properties has the qualifier commented out for the release
+ - Check that build.properties has the qualifier commented out
Maven repository settings
-------------------------
* A released version of seam should not reference any repositories other than
"repository.jboss.org". See "build/readme.txt" for details.
- Search "$SEAM/build" for "repositories".
- - Verify/Comment out any repository entry not
"http://repository.jboss.org/maven2"
+ - Comment out any repository entry not
"http://repository.jboss.org/maven2"
- Should only be entries in "root.pom.xml" and "docs.pom.xml"
- Search "$SEAM/build" for "artifact:remoteRepository"
- Note any that reference other repositories
- <TODO: determine acceptable list (ci, embedded, etc...)/>
- Verify prior to tagging
+ - Clean our your local maven repository
+ - ex. "~/.m2"
+ - <TODO document way to set local repo settings for clean build />
- run "ant cleanall testall testreport" with these changes
- This should build, and test without a problem.
+ - Run "ant dependencyReport"
+ - Review for snapshot dependencies
SVN tagging and checkout
------------------------
-* Note: testing can begin prior to official tagging but a complete process should be
executed on the tag prior to release.
+<NOTE testing can begin prior to official tagging but a complete process
+ should be executed on the tag prior to release/>
* Tag the release (XX as needed)
- -"svn copy
https://svn.jboss.org/repos/seam/XX/XX
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m "create
JBoss_Seam_x_x_x_XXX tag""
- - ex. "svn copy
https://svn.jboss.org/repos/seam/branches/Seam_2_0
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1"
+ -"svn copy
https://svn.jboss.org/repos/seam/XX/XX
+
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX
+ -m "create JBoss_Seam_x_x_x_XXX tag""
+ - ex. "svn copy
https://svn.jboss.org/repos/seam/branches/Seam_2_0
+
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1
+ -m "create JBoss_Seam_2_0_2_CR1 tag""
* In a clean directory checkout the newly tagged seam source ( XX as needed)
- "svn co
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX seam"
- ex. "svn co
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1
seam"
* In the original branch/trunk change:
- Qualifier back to "-SNAPSHOT" in default.build.properties file.
- - The version numbers should stay the same
+ - The version numbers should be incremented as appropriate.
- Any new work is that versions snapshot
- - Revert the Maven repository changes if needed
+ - Revert any Maven repository changes if needed
Building and Checking Dist
--------------------------
-* Run "mkdir ../releaselogs" for release artifacts.
-
-* Initial build and test suite execution
- - run initial build to download dependencies and setup env.
- - run "ant > ../releaselogs/x.x.x.XX.initbuild.txt"
- - run "ant -Dvalidate.xml=true cleanall testall testreport >
../releaselogs/x.x.x.XX.testallreport.txt"
- - check report/junit-noframes.html
- - There should be no failures or errors.
- - run "cp -R test-output ../releaselogs"
- - run "cp -R test-report ../releaselogs"
+* Run "mkdir ../releaselogs" for release artifacts and logs.
* Create the distribution build
- run "ant cleanall dist > ../releaselogs/x.x.x.XX.distbuild.txt"
@@ -77,6 +80,8 @@
- "diff -r ./gz/. ./zip/."
- "diff -r ./gz/. ./dist/."
- There should be no differences.
+ - Compare the new dist to dist of the previous version using the same method
+ - Manually look over for any glaring differences or errors.
- Delete "../tmp" if you wish
* check that the following files/directories exist in the dist "ls -1"
@@ -89,7 +94,6 @@
examples
lgpl.txt
lib
- mail
readme.txt
seam
seam-gen
@@ -103,7 +107,6 @@
debug
gen
ioc
- jbas5
mail
main
pdf
@@ -142,7 +145,7 @@
* Archive reports
- run these in the dist directory
- find . -name *.jar > ../releaselogs/jarlist.txt
+ find . -name *.jar > ../releaselogs/jarlist.txt
find . -name *.sar > ../releaselogs/sarlist.txt
find . -name *.war > ../releaselogs/warlist.txt
find . -name *.ear > ../releaselogs/earlist.txt
@@ -150,25 +153,43 @@
find . -name *.gz > ../releaselogs/gzlist.txt
find . -name *seam*.jar > ../releaselogs/seamjarlist.txt
- Manually review the lists for problems
- - seam jars all in one place
- - <TODO: list expected items or provide listing in svn>
+ - <TODO: list expected items or provide listing in svn/>
-* In the dist run "ant dependencyReport"
- - run "cp ./dependency-report.txt ../releaselogs"
- - Review for snapshot dependencies
- - there should be none.
- - Compare with real jar versions from META-INF/MANIFEST.MF
- - <TODO: A tool is needed to do this effectivly.>
-
-* Built source verification
+* Built source verification, dependency report & test suite
+ - Clean our your local maven repository
+ - ex. "rm -Rf ~/.m2"
+ - <TODO document way to set local repo settings for clean build/>
- Create a copy of the $DIST directory
- - In the original run "ant"
- - diff the original and the built versions
- - only difference should be build related
- - <TODO: list expected differences>
- - Extract seam jars from orig, and the newly built into different dirs
- - diff the directories
- - Should be no differences except version of ant and/or jdk versions
+ - the idea is the leave the original pristine for example testing.
+
+ ** Source verification **
+ - In the copy run "ant > ../releaselogs/x.x.x.XX.sourcebuild.txt"
+ - diff the original and the built versions of the $DIST directories
+ - only difference should be build related
+ - <TODO: list expected differences/>
+ - Extract seam jars from orig, and the newly built into tmp directories
+ - diff the directories
+ - Should be no differences except version of ant and/or jdk versions
+
+ ** Dependency report **
+ - In the copy run:
+ - "ant dependencyReport >
../releaselogs/x.x.x.XX.dependencybuild.txt"
+ - run "cp ./dependency-report.txt ../releaselogs"
+ - Review for snapshot dependencies
+ - there should be none.
+ - Compare with real jar versions from META-INF/MANIFEST.MF
+ - <TODO: A tool is needed to do this effectively/>
+
+ ** Testsuite execution **
+ - In the copy run :
+ - "ant -Dvalidate.xml=true cleanall testall testreport
+ > ../releaselogs/x.x.x.XX.testallreport.txt"
+ - check report/junit-noframes.html
+ - There should be no failures or errors.
+ - run "cp -R test-output ../releaselogs"
+ - run "cp -R test-report ../releaselogs"
+
+ - You can delete the dist copy
Example verification
--------------------
@@ -211,7 +232,6 @@
- remoting/chatroom
- remoting/gwt
- remoting/helloworld
- - remoting/poker
- remoting/progressbar
- seambay
- seamdiscs
@@ -267,39 +287,59 @@
CONSTRAINT `owner` FOREIGN KEY (`ownerUsername`) REFERENCES `Person` (`username`)
) ENGINE=InnoDB;
-* seam-gen review seam-gen chapter of the reference guide
+<NOTE: seam-gen should be able to run without an internet connection. To test
+ this you should first remove/rename your maven repository (document
+ option to set this as a property). Then either disable networking, or
+ lock down a firewall on the test machine so that no requests are allowed
+ out. Then test the various seam-gen targets. JBoss-as may not start in
+ the configuration so testing the live app may need to be done after
+ executing the various seam-gen targets. This does not have to be
+ done for each test below but the different targets should be verified./>
+
+* Review seam-gen chapter of the reference guide
- accurate and up to date
* seam-gen EAR
- - run "seam setup create-project generate-entities explode"
- - during setup choose an EAR project
- - test the basic functionality of the app (CRUD on each table)
+ - run seam with setup create-project and explode
+ - during setup choose an EAR project
+ - verify basic functionality
+ - run seam generate-entities restart
+ - test the basic functionality of the app (CRUD on each table)
- run "seam new-action new-form restart"
- - test both generated pages
- - run the unit tests in eclipse using the TestNG plugin
+ - test both generated pages
+ - run seam test
* seam-gen IceFaces EAR test
- - run "seam setup create-project generate-entities explode"
- - during setup choose an EAR project
- - during setup choose to use IceFaces instead of RichFaces
- - test the basic functionality of the app (CRUD on each table)
+ - run seam with setup create-project and explode
+ - during setup choose to use icefaces
+ - during setup choose an EAR project
+ - verify basic functionality
+ - run seam generate-entities restart
+ - test the basic functionality of the app (CRUD on each table)
+ - run seam test
* seam-gen WAR
- - run "seam setup create-project generate-entities explode"
- - during setup choose a WAR project
- - test the basic functionality of the app (CRUD on each table)
+ - run seam with setup create-project and explode
+ - during setup choose a WAR project
+ - verify basic functionality
+ - run seam generate-entities restart
+ - test the basic functionality of the app (CRUD on each table)
- run "seam new-action new-form restart"
- - test both generated pages
- - run the unit tests in eclipse using the TestNG plugin
+ - test both generated pages
+ - run seam test
* JBDS - import the EAR seam-gen generated project into JBDS.
- Enable Seam support in project properties
- Check that EL code completion works for Seam components
+ - both project specific and core components
+ - in views, and config files, etc...
- Check that Hibernate Console work on the project
- expand the Configuration node
- Open HQL editor and query "from SomeEntity" and execute the query
+ - Execute testng testcases for project
* JBDS new WAR project
- Reverse engineer entities from MySQL
- Create "new Seam Action" and "new Seam Form"
- Test generated pages (check hot deployment of Seam components, html)
- Test running unit tests from Eclipse
* JBDS new EAR project
+ - <NOTE JBIDE-1862 will require changes to the generated project/>
- Reverse engineer entities from MySQL
- Create "new Seam Action" and "new Seam Form"
- Test generated pages (check hot deployment of Seam components, html)
@@ -309,41 +349,72 @@
Portal Bridge Verification
--------------------------
-* Use the latest released version of the PortalBridge and JBoss Portal.
+* Use the latest released version of the PortalBridge (PBR) and JBoss Portal.
-
http://labs.jboss.com/portletbridge
-
http://www.jboss.org/jbossportal/
-* Deploy and verify the bridge booking example to JBoss portal.
+* <NOTE: because the bridge is beta first test the example using the PBR
+ distribution. Then follow the steps below to upgrade the seam
+ version in the example. Then retest the example./>
+* Deploy PBR seam booking example following the PBR document instructions.
+ - Review any known issues with the PBR in the PBR Jira project.
+* Verify the example and functionality.
+ - User authentication through portal
+ - use default users, and new users that are created
+ - Basic hotel booking
+ - user both text search and search button
+ - change dates, and options in the booking
+ - confirm, logout, login, verify confirmation, cancel confirmation
+ - Conversation handling
+ - launch several hotels booking conv. from the search page
+ - individually confirm and switch between conversations.
+ - <NOTE: logging in/out through the portlet, registering new users, and
+ changing passwords do not work, and jiras have been entered
+ for them to be removed as it is integrated with portal auth/>
+* Upgrade the seam version in the seam portlet booking example
+ - download the src distribution of the PBR
+ - edit the $PBR_SRC/examples/seam/booking/seamBookingPortlet/pom.xml file
+ - adjust the seam version properties at the top of the file
+ - build the example by running "mvn install" in the $PBR_SRC/examples dir
+ - <NOTE: You may need to remove the "javassist.jar" from both the EAR
+ and WAR lib directories. This is related to PBR-2 - but for some
+ reason the javassist.jar is still placed in both./>
* Deploy a second version of the booking example as a separate portlet
- - <TODO: there may be a new chatroom seam portlet for this testing>
+ - <TODO: this is not supported in the bridge yet - defer/>
+ - <TODO: there may be a new chatroom seam portlet for this testing/>
* Build the seam identity extension with the booking example
- - <TODO add reference link to the instructions>
+ - <TODO this seems to be done in the 1.0.0.B2 PBR release automatically
+ - verify/>
+ - <TODO add reference link to the instructions if needed/>
- Go to the booking demo seamBookingPortlet/pom.xml
- go to the bottom and uncomment the identity module.
- - Build the booking demo and login via the portal admin link.
+ - Build the booking demo and log in via the portal admin link.
- this should automatically logs you into the seam booking demo
Document review
---------------
* Review the API javadocs in both IE and FF.
- Specifically for version differences
- - This is not a full review
+ - This is not a full review at all
* Review the Reference Guide documentation in both IE and FF.
- Review for format and code styles
- Review for version numbers, and dependencies
- Review any extensive changes based on release notes and the team.
- - This is not a full review
+ - This is not a full review at all.
Final Build + Upload
--------------
* When ready for the release
- - checkout a clean version of the tag
+ - checkout a clean version of the tag in a new/clean directory.
- run "ant cleanall dist > ../releaselogs/x.x.x.XX.finaldistbuild.txt"
- diff this to the one used for testing
* Follow instructions for sourceforge upload
- Create md5 files for the ".zip" and ".tar.gz" files
- - <QUESTION: do we want to create md5 files for the archives>
- - upload the .zip and .tar.gz and md5 files to SF FTP
"upload.sf.net/incoming" folder
+ - <QUESTION: do we want to create md5 files for the archives/>
+ - <NOTE: not for 2.0.X/>
+ - upload the .zip and .tar.gz and md5 files
+ - FTP "upload.sf.net/incoming"
+ - <NOTE: sf upload process may have changed - check during next release/>
* Login to
sourceforge.org and go to
jboss.org project
- Under admin tab click on "file releases"
@@ -351,7 +422,7 @@
- Set "Status" to "hidden"
- Paste this release changelog snippet in the "changelog"
- Paste this release readme.txt in the "release notes"
- - Add the 4 files uploaded to the release
+ - Add the files uploaded to the release
- Keep everything hidden for now.
* Upload the "$DIST/doc" directory to "docs.jboss.com/seam/<NEW
VERSION>"
@@ -367,7 +438,14 @@
- to the directory you checked out to.
- Run "ant releaseSeam" in the build directory
- Review and Commit the release changes to
repository.jboss.org
+ - simple script to add new files to SVN
+ - svn status | grep "^\?" | awk '{print $2}' | xargs svn add
+ - they still need to be reviewed and commited.
+* Create draft of the documentation and download pages on
seamframework.org
+ - documentation points to "docs.jboss.com"
+ - downloads point to sourceforge download page
+
Final Coordination and Announcement
-----------------------------------
* For a GA release and if its newest version of Seam
@@ -381,14 +459,13 @@
* Login to
sourceforge.org and modify the Seam release entry
- Change the date to today
- Change "Status" to active
-* Update the documentation and download pages on
seamframework.org
- - documentation points to "docs.jboss.com"
- - downloads point to sourceforge download page
+* Update the documentation and download pages on
seamframework.org with drafts.
* Update Jira so that version shows as "released"
* Announce the release
- Blog on in.relation.to
-
seamframework.org news, and forums
-
jboss.org news
+ -
TheServerSide.com
Update Demos
------------
@@ -400,14 +477,20 @@
-----
* To reapply a tag:
- First delete the original
- - svn delete
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m
"removing old tag prior to applying updated tag"
- - ex. svn delete
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1 -m
"removing old tag prior to applying updated tag"
+ - svn delete
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX
+ -m "removing old tag prior to applying updated tag"
+ - ex. svn delete
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1
+ -m "removing old tag prior to applying updated tag"
- Recopy back to tag
- -"svn copy
https://svn.jboss.org/repos/seam/XX/XX
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX -m "create
JBoss_Seam_x_x_x_XXX tag""
- - ex. svn copy
https://svn.jboss.org/repos/seam/branches/Seam_2_0
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1 -m "Updated tag for
2.0.2.CR1"
+ -"svn copy
https://svn.jboss.org/repos/seam/XX/XX
+
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_x_x_x_XXX
+ -m "create JBoss_Seam_x_x_x_XXX tag""
+ - ex. svn copy
https://svn.jboss.org/repos/seam/branches/Seam_2_0
+
https://svn.jboss.org/repos/seam/tags/JBoss_Seam_2_0_2_CR1
+ -m "Updated tag for 2.0.2.CR1"
[FUTURE]
--------
* Store release related scripts (especially when more automated) in svn.
* Store release logs, and reports in svn.
-* Find a jar/archive reporting tool for detailed dependency, version, location reports.
+* Find a jar/archive reporting tool for detailed dependency, version reports.
Modified: branches/Seam_2_0_FP/seam-gen/build.xml
===================================================================
--- branches/Seam_2_0_FP/seam-gen/build.xml 2008-06-09 13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/seam-gen/build.xml 2008-06-09 13:13:49 UTC (rev 8354)
@@ -7,8 +7,8 @@
<!-- Order is important -->
<property file="./build.properties" />
<import file="${seam.dir}/build/common.build.xml" />
-
- <target name="init" depends="initpoms">
+
+ <target name="init">
<path id="seam-gen.path"
path="${seam.dir}/lib/jboss-seam-gen.jar" />
<!-- taskdefs -->
@@ -39,8 +39,6 @@
<taskdef name="pathFixer"
classname="org.jboss.seam.tool.FixPathTask"
classpathref="seam-gen.path"/>
-
- <copyDependencies pom="${gen.pom}" id="gen"
scope="runtime" todir="${lib.dir}/gen" />
</target>
<target name="init-properties" depends="init">
@@ -207,7 +205,7 @@
<property name="old.richfaces.skin" value="blueSky"/>
<input addproperty="richfaces.skin.new"
message="Select a RichFaces skin [${old.richfaces.skin}]"
-
validargs="blueSky,classic,ruby,wine,deepMarine,emeraldTown,sakura,DEFAULT"
+
validargs="blueSky,classic,ruby,wine,deepMarine,emeraldTown,japanCherry,DEFAULT"
defaultvalue="${old.richfaces.skin}"/>
<property name="old.project.type" value="ear"/>
@@ -1060,9 +1058,13 @@
<target name="init-generate">
<path id="htools.classpath">
- <fileset dir="${lib.dir}/gen">
- <include name="*.jar"/>
- </fileset>
+ <pathelement path="../lib/ant.jar"/>
+ <pathelement path="../lib/hibernate-tools.jar"/>
+ <pathelement path="../lib/freemarker.jar"/>
+ <pathelement path="../lib/jboss-seam.jar"/>
+ <pathelement path="../lib/runtime.jar"/>
+ <pathelement path="../lib/common.jar"/>
+ <pathelement path="../lib/text.jar"/>
<pathelement path="../lib/dom4j.jar" />
<pathelement path="../lib/persistence-api.jar" />
<pathelement path="../lib/hibernate.jar" />
Modified: branches/Seam_2_0_FP/seam2migration.txt
===================================================================
--- branches/Seam_2_0_FP/seam2migration.txt 2008-06-09 13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/seam2migration.txt 2008-06-09 13:13:49 UTC (rev 8354)
@@ -4,15 +4,6 @@
your existing code and configuration. This process should not be too
painful - if you get stuck, just refer back to the updated Seam examples.
-Supported container environments
---------------------------------
-Seam 2.0 has been tested on the following containers:
-
-* JBoss 4.2 (it is possible to run Seam2 on JBoss 4.0.5 by upgrading JSF)
-* Tomcat 6.0 (Tomcat 5.5 is not compatible with JSF 1.2)
-* GlassFish V2
-* OC4J 11g Technology Preview
-
Migration to JSF 1.2
--------------------
Seam 2.0 requires JSF 1.2. We now recommend Sun's JSF RI as the most
@@ -111,23 +102,6 @@
<action execute="#{redirect.captureCurrentView}"/>
</event>
-Migration to JBoss Embedded
----------------------------
-Support for deployment to JBoss Embeddable EJB3 and JBoss Microcontainer
-has been removed. Instead, the new JBoss Embedded distribution gives you
-a full set of EE-compatible APIs with simplified deployment.
-
-For testing, you need the jars in Seam's lib/ directory, together with the
-bootstrap/ directory in your classpath. SeamTest will automatically start
-the container. Refer to the Seam examples, or seam-gen, if you have
-trouble.
-
-For Tomcat deployment, follow the instructions in the user guide. You no
-longer need any special configuration or packaging for Tomcat deployments.
-
-Note that JBoss Embedded is able to bootstrap a datasource from a -ds.xml
-file, so there is no longer a need for jboss-beans.xml.
-
Migration to JBPM 3.2
---------------------
If you are using JBPM for business processes (not just pageflows), you need
Modified: branches/Seam_2_0_FP/src/main/org/jboss/seam/Seam.java
===================================================================
--- branches/Seam_2_0_FP/src/main/org/jboss/seam/Seam.java 2008-06-09 13:12:16 UTC (rev
8353)
+++ branches/Seam_2_0_FP/src/main/org/jboss/seam/Seam.java 2008-06-09 13:13:49 UTC (rev
8354)
@@ -11,7 +11,9 @@
import static org.jboss.seam.util.EJB.STATELESS;
import static org.jboss.seam.util.EJB.name;
+import java.util.HashSet;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import javax.persistence.Entity;
@@ -35,30 +37,35 @@
*/
public class Seam
{
-
private static final Map<Class, String> COMPONENT_NAME_CACHE = new
ConcurrentHashMap<Class, String>();
- private static final Map<String, EjbDescriptor> EJB_DESCRIPTOR_CACHE = new
ConcurrentHashMap<String, EjbDescriptor>();
+ private static final Map<Class, EjbDescriptor> EJB_DESCRIPTOR_CACHE = new
ConcurrentHashMap<Class, EjbDescriptor>();
+ private static final Set<ClassLoader> CLASSLOADERS_LOADED = new
HashSet<ClassLoader>();
- public static EjbDescriptor getEjbDescriptor(String className)
+ public static EjbDescriptor getEjbDescriptor(Class clazz)
{
- EjbDescriptor info = EJB_DESCRIPTOR_CACHE.get(className);
+ EjbDescriptor info = EJB_DESCRIPTOR_CACHE.get(clazz);
if (info != null)
{
return info;
}
- else
+ else if (!CLASSLOADERS_LOADED.contains(clazz.getClassLoader()))
{
- Map<String, EjbDescriptor> ejbDescriptors = new
DeploymentDescriptor().getEjbDescriptors();
- EJB_DESCRIPTOR_CACHE.putAll(ejbDescriptors);
- return ejbDescriptors.get(className);
+ cacheEjbDescriptors(clazz);
+ return EJB_DESCRIPTOR_CACHE.get(clazz);
}
+
+ return null;
}
- // TODO Better impl
- static EjbDescriptor getEjbDescriptor(Class clazz)
+ private synchronized static void cacheEjbDescriptors(Class clazz)
{
- return getEjbDescriptor(clazz.getName());
- }
+ if (!CLASSLOADERS_LOADED.contains(clazz.getClassLoader()))
+ {
+ Map<Class, EjbDescriptor> ejbDescriptors = new
DeploymentDescriptor(clazz).getEjbDescriptors();
+ EJB_DESCRIPTOR_CACHE.putAll(ejbDescriptors);
+ CLASSLOADERS_LOADED.add(clazz.getClassLoader());
+ }
+ }
/**
* Get the default scope
@@ -161,7 +168,7 @@
}
else
{
- EjbDescriptor ejbDescriptor = Seam.getEjbDescriptor(clazz.getName());
+ EjbDescriptor ejbDescriptor = Seam.getEjbDescriptor(clazz);
if (ejbDescriptor != null)
{
return ejbDescriptor.getBeanType() == ComponentType.ENTITY_BEAN ? clazz :
null;
Modified: branches/Seam_2_0_FP/src/main/org/jboss/seam/init/DeploymentDescriptor.java
===================================================================
--- branches/Seam_2_0_FP/src/main/org/jboss/seam/init/DeploymentDescriptor.java 2008-06-09
13:12:16 UTC (rev 8353)
+++ branches/Seam_2_0_FP/src/main/org/jboss/seam/init/DeploymentDescriptor.java 2008-06-09
13:13:49 UTC (rev 8354)
@@ -23,10 +23,16 @@
{
private static final LogProvider log = Logging.getLogProvider(Initialization.class);
- private Map<String, EjbDescriptor> ejbDescriptors = new HashMap<String,
EjbDescriptor>();
+ private Map<Class, EjbDescriptor> ejbDescriptors = new HashMap<Class,
EjbDescriptor>();
+ private Class componentClass;
- public DeploymentDescriptor()
+ public DeploymentDescriptor(Class clazz)
{
+ componentClass = clazz;
+ if (clazz.getClassLoader() == null) {
+ return;
+ }
+
try
{
InputStream ejbJarXml =
Resources.getResourceAsStream("META-INF/ejb-jar.xml", null);
@@ -54,7 +60,7 @@
}
}
- public Map<String, EjbDescriptor> getEjbDescriptors()
+ public Map<Class, EjbDescriptor> getEjbDescriptors()
{
return ejbDescriptors;
}
@@ -197,6 +203,14 @@
protected void add(EjbDescriptor descriptor)
{
- ejbDescriptors.put(descriptor.getEjbClassName(), descriptor);
+ try
+ {
+ Class ejbClass = componentClass.getClassLoader().loadClass(
descriptor.getEjbClassName() );
+ ejbDescriptors.put(ejbClass, descriptor);
+ }
+ catch (ClassNotFoundException cnfe)
+ {
+ log.warn("Could not load EJB class: " +
descriptor.getEjbClassName());
+ }
}
}
Modified: branches/Seam_2_0_FP/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
===================================================================
---
branches/Seam_2_0_FP/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-06-09
13:12:16 UTC (rev 8353)
+++
branches/Seam_2_0_FP/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-06-09
13:13:49 UTC (rev 8354)
@@ -2,7 +2,7 @@
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
-import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.Map;
import javax.faces.component.UIParameter;
@@ -23,7 +23,7 @@
protected UrlBuilder(String fragment, String characterEncoding)
{
this.fragment = fragment;
- parameters = new HashMap<String, String>();
+ parameters = new LinkedHashMap<String, String>();
this.characterEncoding = characterEncoding;
}
Modified:
branches/Seam_2_0_FP/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
===================================================================
---
branches/Seam_2_0_FP/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-06-09
13:12:16 UTC (rev 8353)
+++
branches/Seam_2_0_FP/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-06-09
13:13:49 UTC (rev 8354)
@@ -7,7 +7,6 @@
public class UrlBuilderTest
{
-
@Test
public void testBaseUrlAlreadyHasParams() throws UnsupportedEncodingException
{
@@ -19,4 +18,15 @@
assert "/someurl?arg1=a&foo=bar".equals(encodedUrl);
}
+ @Test
+ public void testParameterOrdering() throws UnsupportedEncodingException
+ {
+ UrlBuilder url = new UrlBuilder("/Hotel.seam", "",
"UTF-8");
+ url.addParameter("hotelId", "5");
+ url.addParameter("cid", "10");
+ url.addParameter("z", "z");
+ url.addParameter("a", "a");
+ String encodedUrl = url.getEncodedUrl();
+ assert
"/Hotel.seam?hotelId=5&cid=10&z=z&a=a".equals(encodedUrl) :
"Parameters not properly ordered";
+ }
}