Seam SVN: r8271 - trunk.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-05-23 11:15:55 -0400 (Fri, 23 May 2008)
New Revision: 8271
Modified:
trunk/release-process.txt
Log:
large update of release process based on updates and findings during the 2.0.2.GA release. Note this file will need to be updated for 2.1.X release examples,directories, etc... during the next 2.1.X release.
Modified: trunk/release-process.txt
===================================================================
--- trunk/release-process.txt 2008-05-23 15:11:35 UTC (rev 8270)
+++ trunk/release-process.txt 2008-05-23 15:15:55 UTC (rev 8271)
@@ -1,6 +1,17 @@
Seam Release Process
====================
+<TODO: update for 2.1.X releases on next 2.1.X release/>
+
+Notify branch is closed
+------------------------
+* 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 and getting approval from
+ this mail list first.
+
Updating version numbers
------------------------
* Update the version information:
@@ -14,47 +25,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 "$DIST/build" for "pluginRepository".
- - Should only find "root.pom.xml" and "docs.pom.xml"
- - Comment out any other "<pluginRepository>" entry
- - Comment out any "<repository>" that references a commented out entry.
+ - Search "$SEAM/build" for "repositories".
+ - 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"
@@ -68,6 +82,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"
@@ -80,7 +96,6 @@
examples
lgpl.txt
lib
- mail
readme.txt
seam
seam-gen
@@ -133,7 +148,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
@@ -141,25 +156,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
--------------------
@@ -202,7 +235,6 @@
- remoting/chatroom
- remoting/gwt
- remoting/helloworld
- - remoting/poker
- remoting/progressbar
- seambay
- seamdiscs
@@ -212,8 +244,7 @@
- takeaway
- todo (tutorial)
- ui
- wiket
- - wiki
+ - wiki (not ready for testing until 2.1.X)
* Tomcat 6 examples
- Note: use JBoss embedded unless specified differently
- blog (tutorial)
@@ -245,7 +276,7 @@
`birthdate` date default NULL,
`address` varchar(600) NOT NULL,
PRIMARY KEY (`username`)
-) ENGINE=InnoDB
+) ENGINE=InnoDB;
CREATE TABLE `Vehicle` (
`ownerUsername` varchar(10) default NULL,
@@ -256,42 +287,62 @@
`state` varchar(2) NOT NULL,
PRIMARY KEY USING BTREE (`registration`,`state`),
KEY `ownerUsername` (`ownerUsername`),
- CONSTRAINT `owner` FOREIGN KEY (`ownerUsername`) REFERENCES `person` (`username`)
-) ENGINE=InnoDB
+ 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)
@@ -301,41 +352,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"
@@ -343,7 +425,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>"
@@ -359,7 +441,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
@@ -373,14 +462,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
------------
@@ -392,14 +480,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.
16 years, 6 months
Seam SVN: r8270 - branches/Seam_2_0.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-05-23 11:11:35 -0400 (Fri, 23 May 2008)
New Revision: 8270
Modified:
branches/Seam_2_0/release-process.txt
Log:
large update to release process based on updates and findings during the 2.0.2.GA release.
Modified: branches/Seam_2_0/release-process.txt
===================================================================
--- branches/Seam_2_0/release-process.txt 2008-05-23 14:13:07 UTC (rev 8269)
+++ branches/Seam_2_0/release-process.txt 2008-05-23 15:11:35 UTC (rev 8270)
@@ -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
@@ -142,7 +146,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 +154,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 +233,6 @@
- remoting/chatroom
- remoting/gwt
- remoting/helloworld
- - remoting/poker
- remoting/progressbar
- seambay
- seamdiscs
@@ -267,39 +288,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 +350,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 +423,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 +439,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 +460,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 +478,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.
16 years, 6 months
Seam SVN: r8269 - in trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors: feed and 1 other directory.
by seam-commits@lists.jboss.org
Author: christian.bauer(a)jboss.com
Date: 2008-05-23 10:13:07 -0400 (Fri, 23 May 2008)
New Revision: 8269
Modified:
trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java
trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java
Log:
Don't throw exception and kill thread on lock aquisition failure
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java 2008-05-23 05:22:40 UTC (rev 8268)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/cache/ConnectorCache.java 2008-05-23 14:13:07 UTC (rev 8269)
@@ -18,6 +18,12 @@
/**
* Caches lists of stuff and can asynchronously call a connector, upon configurable cache timeout, to
* refresh these lists.
+ * <p>
+ * All method calls to this application-scoped component are synchronized by Seam. That means you might
+ * get an <tt>IllegalStateException</tt> when an exclusive lock couldn't be aquired by a thread (because
+ * some other thread was already accessing this instance). It's up to the caller to handle that exception,
+ * usually you'd log and swallow it and continue without the result of the cache.
+ * </p>
*
* @author Christian Bauer
*/
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java 2008-05-23 05:22:40 UTC (rev 8268)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/connectors/feed/FeedAggregatorDAO.java 2008-05-23 14:13:07 UTC (rev 8269)
@@ -65,13 +65,26 @@
List<FeedEntryDTO> feedEntries = new ArrayList<FeedEntryDTO>();
for (URL feedURL : feedURLs) {
- // For each feed, get the feed entries and put them in a sorted collection,
- // so we get overall sorting
- log.debug("retrieving feed entries from connector for feed URL: " + feedURL);
- List<FeedEntryDTO> result = feedConnector.getFeedEntries(feedURL.toString());
- log.debug("retrieved feed entries: " + result.size());
- feedEntries.addAll(result);
- log.debug("number of aggregated feed entries so far: " + feedEntries.size());
+ try {
+ // For each feed, get the feed entries and put them in a sorted collection,
+ // so we get overall sorting
+ log.debug("retrieving feed entries from connector for feed URL: " + feedURL);
+
+ // TODO: This is a synchronized call. This probably means that this is a bottleneck for scalability because
+ // the Seam locking is very coarse-grained. It would be much better if we could aquire exclusive read/write
+ // locks, not just exclusive locks.
+ List<FeedEntryDTO> result = feedConnector.getFeedEntries(feedURL.toString());
+
+ log.debug("retrieved feed entries: " + result.size());
+ feedEntries.addAll(result);
+ log.debug("number of aggregated feed entries so far: " + feedEntries.size());
+
+ } catch (IllegalStateException ex) {
+ // This is most likely (we hope) a message that says that an exlusive read lock couldn't be aquired.
+ // Too bad, we just continue without adding the result... the next user requesting it will probably
+ // get the lock and then we have the result.
+ log.warn("Illegal state exception thrown by feed connector: " + ex.getMessage());
+ }
}
Collections.sort(
16 years, 6 months
Seam SVN: r8268 - in trunk/ui/src: test/java/org/jboss/seam/ui/test and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2008-05-23 01:22:40 -0400 (Fri, 23 May 2008)
New Revision: 8268
Modified:
trunk/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
trunk/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
Log:
JBSEAM-3003
Modified: trunk/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
===================================================================
--- trunk/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-05-23 05:22:06 UTC (rev 8267)
+++ trunk/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-05-23 05:22:40 UTC (rev 8268)
@@ -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: trunk/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
===================================================================
--- trunk/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-05-23 05:22:06 UTC (rev 8267)
+++ trunk/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-05-23 05:22:40 UTC (rev 8268)
@@ -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";
+ }
}
16 years, 6 months
Seam SVN: r8267 - in branches/Seam_2_0/ui/src: test/java/org/jboss/seam/ui/test and 1 other directory.
by seam-commits@lists.jboss.org
Author: dan.j.allen
Date: 2008-05-23 01:22:06 -0400 (Fri, 23 May 2008)
New Revision: 8267
Modified:
branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
branches/Seam_2_0/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
Log:
JBSEAM-3003
Modified: branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java
===================================================================
--- branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-05-22 14:10:57 UTC (rev 8266)
+++ branches/Seam_2_0/ui/src/main/java/org/jboss/seam/ui/util/UrlBuilder.java 2008-05-23 05:22:06 UTC (rev 8267)
@@ -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/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java
===================================================================
--- branches/Seam_2_0/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-05-22 14:10:57 UTC (rev 8266)
+++ branches/Seam_2_0/ui/src/test/java/org/jboss/seam/ui/test/UrlBuilderTest.java 2008-05-23 05:22:06 UTC (rev 8267)
@@ -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";
+ }
}
16 years, 6 months
Seam SVN: r8266 - trunk/src/main/org/jboss/seam/mock.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-05-22 10:10:57 -0400 (Thu, 22 May 2008)
New Revision: 8266
Modified:
trunk/src/main/org/jboss/seam/mock/MockServletContext.java
Log:
JBSEAM-2427
Modified: trunk/src/main/org/jboss/seam/mock/MockServletContext.java
===================================================================
--- trunk/src/main/org/jboss/seam/mock/MockServletContext.java 2008-05-22 13:53:34 UTC (rev 8265)
+++ trunk/src/main/org/jboss/seam/mock/MockServletContext.java 2008-05-22 14:10:57 UTC (rev 8266)
@@ -5,6 +5,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.Enumeration;
import java.util.HashMap;
@@ -25,6 +26,24 @@
private Map<String, String> initParameters = new HashMap<String, String>();
private Map<String, Object> attributes = new HashMap<String, Object>();
+
+ private File webappRoot;
+ private File webInfRoot;
+ private File webInfClassesRoot;
+
+ public MockServletContext()
+ {
+ try
+ {
+ webInfRoot = new File(getClass().getResource("/WEB-INF/web.xml").toURI()).getParentFile();
+ webInfClassesRoot = new File(webInfRoot.getParentFile().getPath() + "/classes");
+ webappRoot = webInfRoot.getParentFile();
+ }
+ catch (URISyntaxException e)
+ {
+ throw new IllegalStateException(e);
+ }
+ }
public Map<String, String> getInitParameters()
{
@@ -98,11 +117,62 @@
}
}
+ /**
+ * Get the URL for a particular resource that is relative to the web app root directory.
+ *
+ * @param name
+ * The name of the resource to get
+ * @return The resource, or null if resource not found
+ * @throws MalformedURLException
+ * If the URL is invalid
+ */
public URL getResource(String name) throws MalformedURLException
{
- return getClass().getResource(name);
+ File f = getFile(name, webappRoot);
+
+ if (f == null)
+ {
+ f = getFile(name, webInfRoot);
+ }
+
+ if (f == null)
+ {
+ f = getFile(name, webInfClassesRoot);
+ }
+
+ if (f != null)
+ {
+ return f.toURI().toURL();
+ }
+ else
+ {
+ return null;
+ }
}
+
+ private static File getFile(String name, File root)
+ {
+ if (root == null)
+ {
+ return null;
+ }
+
+ if (name.startsWith("/"))
+ {
+ name = name.substring(1);
+ }
+ File f = new File(root, name);
+ if (!f.exists())
+ {
+ return null;
+ }
+ else
+ {
+ return f;
+ }
+ }
+
public InputStream getResourceAsStream(String name)
{
return getClass().getResourceAsStream(name);
@@ -180,7 +250,7 @@
public void setAttribute(String att, Object value)
{
- if (value==null)
+ if (value == null)
{
attributes.remove(value);
}
16 years, 6 months
Seam SVN: r8265 - in trunk: seam-gen and 1 other directory.
by seam-commits@lists.jboss.org
Author: jbalunas(a)redhat.com
Date: 2008-05-22 09:53:34 -0400 (Thu, 22 May 2008)
New Revision: 8265
Modified:
trunk/build/common.build.xml
trunk/seam-gen/build.xml
Log:
JBSEAM-3017 - modified seam-gen library dependencies and locations so that seam-gen does not require a network connection.
Modified: trunk/build/common.build.xml
===================================================================
--- trunk/build/common.build.xml 2008-05-22 12:31:15 UTC (rev 8264)
+++ trunk/build/common.build.xml 2008-05-22 13:53:34 UTC (rev 8265)
@@ -121,6 +121,7 @@
<copyDependencies id="pdf" pom="${pdf.pom}" todir="${lib.dir}" scope="runtime" />
<copyDependencies id="remoting" pom="${remoting.pom}" todir="${lib.dir}" scope="runtime" />
<copyDependencies id="ui" pom="${ui.pom}" todir="${lib.dir}" scope="runtime" />
+ <copyDependencies id="gen" pom="${gen.pom}" todir="${lib.dir}" scope="runtime" />
<copyDependencies id="core" pom="${core.pom}" todir="${lib.dir}" scope="compile" />
<copyDependencies id="debug" pom="${debug.pom}" todir="${lib.dir}" scope="compile" />
<copyDependencies id="wicket" pom="${wicket.pom}" todir="${lib.dir}" scope="compile" />
@@ -129,6 +130,7 @@
<copyDependencies id="pdf" pom="${pdf.pom}" todir="${lib.dir}" scope="compile" />
<copyDependencies id="remoting" pom="${remoting.pom}" todir="${lib.dir}" scope="compile" />
<copyDependencies id="ui" pom="${ui.pom}" todir="${lib.dir}" scope="compile" />
+ <copyDependencies id="gen" pom="${gen.pom}" todir="${lib.dir}" scope="compile" />
<property name="copyseamdependenciesdone" value="true" />
</target>
Modified: trunk/seam-gen/build.xml
===================================================================
--- trunk/seam-gen/build.xml 2008-05-22 12:31:15 UTC (rev 8264)
+++ trunk/seam-gen/build.xml 2008-05-22 13:53:34 UTC (rev 8265)
@@ -8,7 +8,7 @@
<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 -->
@@ -38,9 +38,7 @@
<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" />
+ classpathref="seam-gen.path"/>
</target>
<target name="init-properties" depends="init">
@@ -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" />
16 years, 6 months
Seam SVN: r8264 - in trunk: src/mail/org/jboss/seam/mail/ui and 1 other directory.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-05-22 08:31:15 -0400 (Thu, 22 May 2008)
New Revision: 8264
Modified:
trunk/examples/mail/view/attachment.xhtml
trunk/src/mail/org/jboss/seam/mail/ui/UIAttachment.java
trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java
trunk/src/mail/org/jboss/seam/mail/ui/UIMessage.java
Log:
JBSEAM-2187
Modified: trunk/examples/mail/view/attachment.xhtml
===================================================================
--- trunk/examples/mail/view/attachment.xhtml 2008-05-22 11:43:38 UTC (rev 8263)
+++ trunk/examples/mail/view/attachment.xhtml 2008-05-22 12:31:15 UTC (rev 8264)
@@ -6,7 +6,7 @@
<m:from name="Seam" address="do-not-reply(a)jboss.com" />
<m:to name="#{person.firstname} #{person.lastname}">#{person.address}</m:to>
<m:subject>Try out Seam!</m:subject>
- <m:attachment value="/jboss.jpg" status="jbossLogo" />
+ <m:attachment value="/jboss.jpg" status="jbossLogo" disposition="inline" />
<m:attachment value="#{numbers}" />
<m:attachment value="#{person.photo}" contentType="image/png" fileName="#{person.firstname}_#{person.lastname}.jpg" disposition="inline" />
<m:attachment fileName="whyseam.pdf">
Modified: trunk/src/mail/org/jboss/seam/mail/ui/UIAttachment.java
===================================================================
--- trunk/src/mail/org/jboss/seam/mail/ui/UIAttachment.java 2008-05-22 11:43:38 UTC (rev 8263)
+++ trunk/src/mail/org/jboss/seam/mail/ui/UIAttachment.java 2008-05-22 12:31:15 UTC (rev 8264)
@@ -167,7 +167,7 @@
attachment.setDataHandler(new DataHandler(ds));
attachment.setFileName(getName(ds.getName()));
attachment.setDisposition(getDisposition());
- super.getRootMultipart().addBodyPart(attachment);
+ findMessage().getAttachments().add(attachment);
if (getStatus() != null)
{
AttachmentStatus attachmentStatus = new AttachmentStatus();
Modified: trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java
===================================================================
--- trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java 2008-05-22 11:43:38 UTC (rev 8263)
+++ trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java 2008-05-22 12:31:15 UTC (rev 8264)
@@ -58,6 +58,18 @@
{
bodyPart = getHtmlBody(facesContext, body);
}
+
+ if (findMessage().getAttachments().size() > 0)
+ {
+ MimeMultipart bodyRootMultipart = new MimeMultipart("related");
+ bodyRootMultipart.addBodyPart(bodyPart, 0);
+ for (MimeBodyPart attachment: findMessage().getAttachments())
+ {
+ bodyRootMultipart.addBodyPart(attachment);
+ }
+ bodyPart = new MimeBodyPart();
+ bodyPart.setContent(bodyRootMultipart);
+ }
}
getRootMultipart().addBodyPart(bodyPart, 0);
}
Modified: trunk/src/mail/org/jboss/seam/mail/ui/UIMessage.java
===================================================================
--- trunk/src/mail/org/jboss/seam/mail/ui/UIMessage.java 2008-05-22 11:43:38 UTC (rev 8263)
+++ trunk/src/mail/org/jboss/seam/mail/ui/UIMessage.java 2008-05-22 12:31:15 UTC (rev 8264)
@@ -3,6 +3,8 @@
import static org.jboss.seam.util.Strings.isEmpty;
import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
import javax.faces.FacesException;
import javax.faces.context.FacesContext;
@@ -10,6 +12,7 @@
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
+import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
@@ -35,6 +38,8 @@
}
private MimeMessage mimeMessage;
+
+ List<MimeBodyPart> attachments = new ArrayList<MimeBodyPart>();
private Session session;
@@ -297,4 +302,14 @@
this.messageId = messageId;
}
+ public List<MimeBodyPart> getAttachments()
+ {
+ return attachments;
+ }
+
+ public void setAttachments(List<MimeBodyPart> attachments)
+ {
+ this.attachments = attachments;
+ }
+
}
16 years, 6 months
Seam SVN: r8263 - trunk/src/mail/org/jboss/seam/mail/ui.
by seam-commits@lists.jboss.org
Author: pete.muir(a)jboss.org
Date: 2008-05-22 07:43:38 -0400 (Thu, 22 May 2008)
New Revision: 8263
Modified:
trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java
Log:
Message needs to come first for Thunderbird to read it as the main part
Modified: trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java
===================================================================
--- trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java 2008-05-22 11:00:11 UTC (rev 8262)
+++ trunk/src/mail/org/jboss/seam/mail/ui/UIBody.java 2008-05-22 11:43:38 UTC (rev 8263)
@@ -59,7 +59,7 @@
bodyPart = getHtmlBody(facesContext, body);
}
}
- getRootMultipart().addBodyPart(bodyPart);
+ getRootMultipart().addBodyPart(bodyPart, 0);
}
catch (MessagingException e)
{
16 years, 6 months
Seam SVN: r8262 - in trunk/examples/wiki: src/main/org/jboss/seam/wiki/core/action and 19 other directories.
by seam-commits@lists.jboss.org
Author: christian.bauer(a)jboss.com
Date: 2008-05-22 07:00:11 -0400 (Thu, 22 May 2008)
New Revision: 8262
Modified:
trunk/examples/wiki/src/etc/WEB-INF/pages.xml
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiRequestResolver.java
trunk/examples/wiki/view/docEdit_d.xhtml
trunk/examples/wiki/view/themes/default/css/template.css
trunk/examples/wiki/view/themes/default/js/lacewiki.js
trunk/examples/wiki/view/themes/default/m/css/template.css
trunk/examples/wiki/view/themes/default/m/template.xhtml
trunk/examples/wiki/view/themes/default/mailtemplates/confirmationRegistration.xhtml
trunk/examples/wiki/view/themes/default/mailtemplates/resetPassword.xhtml
trunk/examples/wiki/view/themes/default/template.xhtml
trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css
trunk/examples/wiki/view/themes/inrelationto/js/lacewiki.js
trunk/examples/wiki/view/themes/inrelationto/m/css/template.css
trunk/examples/wiki/view/themes/inrelationto/m/template.xhtml
trunk/examples/wiki/view/themes/inrelationto/mailtemplates/confirmationRegistration.xhtml
trunk/examples/wiki/view/themes/inrelationto/mailtemplates/resetPassword.xhtml
trunk/examples/wiki/view/themes/inrelationto/template.xhtml
trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css
trunk/examples/wiki/view/themes/sfwkorg/js/lacewiki.js
trunk/examples/wiki/view/themes/sfwkorg/m/css/template.css
trunk/examples/wiki/view/themes/sfwkorg/m/template.xhtml
trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/confirmationRegistration.xhtml
trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/resetPassword.xhtml
trunk/examples/wiki/view/themes/sfwkorg/template.xhtml
Log:
Some minor bugfixes
Modified: trunk/examples/wiki/src/etc/WEB-INF/pages.xml
===================================================================
--- trunk/examples/wiki/src/etc/WEB-INF/pages.xml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/src/etc/WEB-INF/pages.xml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -7,7 +7,8 @@
<param name="nodeId" value="#{wikiRequestResolver.nodeId}"/>
<param name="areaName" value="#{wikiRequestResolver.areaName}"/>
<param name="nodeName" value="#{wikiRequestResolver.nodeName}"/>
- <param name="message" value="#{wikiRequestResolver.message}"/>
+ <param name="messageKey" value="#{wikiRequestResolver.messageKey}"/>
+ <param name="messageSeverity" value="#{wikiRequestResolver.messageSeverity}"/>
<action execute="#{wikiRequestResolver.resolve}"/>
<navigation>
<rule if-outcome="docDisplay">
@@ -37,7 +38,7 @@
<end-conversation before-redirect="true"/>
<redirect view-id="/wiki.xhtml">
<param name="nodeId" value="#{documentHistory.currentFile.id}"/>
- <param name="message" value="lacewiki.msg.docHistory.PurgedHistory"/>
+ <param name="messageKey" value="lacewiki.msg.docHistory.PurgedHistory"/>
</redirect>
</rule>
@@ -189,7 +190,7 @@
<rule if-outcome="persisted">
<end-conversation before-redirect="true"/>
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.AccountCreatedConfirmationSent"/>
+ <param name="messageKey" value="lacewiki.msg.AccountCreatedConfirmationSent"/>
</redirect>
</rule>
</navigation>
@@ -203,7 +204,7 @@
<rule if-outcome="updatedCurrentCredentials">
<end-conversation before-redirect="true"/>
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.UpdatedCurrentCredentials"/>
+ <param name="messageKey" value="lacewiki.msg.UpdatedCurrentCredentials"/>
</redirect>
</rule>
<rule if-outcome="removed">
@@ -227,12 +228,13 @@
<navigation>
<rule if-outcome="activated">
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.AccountActivatedPleaseLogin"/>
+ <param name="messageKey" value="lacewiki.msg.AccountActivatedPleaseLogin"/>
</redirect>
</rule>
<rule if-outcome="notFound">
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.InvalidActivationCode"/>
+ <param name="messageKey" value="lacewiki.msg.InvalidActivationCode"/>
+ <param name="messageSeverity" value="WARN"/>
</redirect>
</rule>
</navigation>
@@ -243,12 +245,13 @@
<navigation>
<rule if-outcome="prepared">
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.resetPassword.PasswordResetPrepared"/>
+ <param name="messageKey" value="lacewiki.msg.resetPassword.PasswordResetPrepared"/>
</redirect>
</rule>
<rule if-outcome="notFound">
<redirect view-id="/wiki.xhtml">
- <param name="message" value="lacewiki.msg.InvalidActivationCode"/>
+ <param name="messageKey" value="lacewiki.msg.InvalidActivationCode"/>
+ <param name="messageSeverity" value="WARN"/>
</redirect>
</rule>
</navigation>
@@ -269,11 +272,6 @@
<redirect url="#{wikiURLRenderer.renderSearchURL(wikiSearch.simpleQuery)}"/>
</rule>
- <rule if-outcome="error">
- <redirect view-id="/message.xhtml">
- <message severity="ERROR">#{messages['lacewiki.msg.FatalError']}</message>
- </redirect>
- </rule>
</navigation>
</page>
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/UserHome.java 2008-05-22 11:00:11 UTC (rev 8262)
@@ -171,29 +171,25 @@
// Set activation code (unique user in time)
String seed = getInstance().getUsername() + System.currentTimeMillis() + prefs.getActivationCodeSalt();
getInstance().setActivationCode( ((Hash)Component.getInstance(Hash.class)).hash(seed) );
+ getLog().debug("setting activation code of newly registered user: " + getInstance().getActivationCode());
String outcome = super.persist();
if (outcome != null) {
- try {
+ getLog().debug("sending activation e-mail to registered user");
- // Send confirmation email
- renderer.render("/themes/"
- + Preferences.instance().get(WikiPreferences.class).getThemeName()
- + "/mailtemplates/confirmationRegistration.xhtml");
+ // Send confirmation email
+ renderer.render("/themes/"
+ + Preferences.instance().get(WikiPreferences.class).getThemeName()
+ + "/mailtemplates/confirmationRegistration.xhtml");
- /* For debugging
- statusMessages.addFromResourceBundleOrDefault(
- INFO,
- getMessageKeyPrefix() + "confirmationEmailSent",
- "Activiate account: /confirmRegistration.seam?activationCode=" + getInstance().getActivationCode());
- */
+ /* For debugging
+ statusMessages.addFromResourceBundleOrDefault(
+ INFO,
+ getMessageKeyPrefix() + "confirmationEmailSent",
+ "Activiate account: /confirmRegistration.seam?activationCode=" + getInstance().getActivationCode());
+ */
- } catch (Exception ex) {
- statusMessages.add(ERROR, "Couldn't send confirmation email: " + ex.getMessage());
- return "error";
- }
-
org.jboss.seam.core.Events.instance().raiseEvent("User.persisted", getInstance());
}
return outcome;
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiRequestResolver.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiRequestResolver.java 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiRequestResolver.java 2008-05-22 11:00:11 UTC (rev 8262)
@@ -17,8 +17,8 @@
import org.jboss.seam.wiki.core.model.WikiDocument;
import org.jboss.seam.wiki.core.search.WikiSearch;
-import static org.jboss.seam.international.StatusMessage.Severity.INFO;
import org.jboss.seam.international.StatusMessages;
+import org.jboss.seam.international.StatusMessage;
/**
* Returns <tt>docDisplay</tt>, <tt>dirDisplay</tt>, or <tt>search</tt> for the resolved <tt>nodeId</tt>.
@@ -87,11 +87,15 @@
public String getNodeName() { return nodeName; }
public void setNodeName(String nodeName) { this.nodeName = nodeName != null && nodeName.length() > 0 ? nodeName : null; }
- protected String message;
+ protected String messageKey;
+ protected String messageSeverity;
- public String getMessage() { return message; }
- public void setMessage(String message) { this.message = message; }
+ public String getMessageKey() { return messageKey; }
+ public void setMessageKey(String messageKey) { this.messageKey = messageKey; }
+ public String getMessageSeverity() { return messageSeverity; }
+ public void setMessageSeverity(String messageSeverity) { this.messageSeverity = messageSeverity;}
+
protected WikiDocument currentDocument = null;
protected WikiDirectory currentDirectory = null;
@@ -102,12 +106,17 @@
resolveRequestParameters();
// Queue a message if requested (for message passing across session invalidations and conversations)
- if (message != null) {
- log.debug("wiki request contained message: " + message);
- StatusMessages.instance().addFromResourceBundle(
- INFO,
- message
- );
+ if (getMessageKey() != null) {
+ log.debug("wiki request contained message: " + getMessageKey());
+ StatusMessage.Severity msgSeverity = StatusMessage.Severity.INFO;
+ if (getMessageSeverity() != null && getMessageSeverity().length() > 0) {
+ try {
+ msgSeverity = StatusMessage.Severity.valueOf(getMessageSeverity().trim());
+ } catch (IllegalArgumentException ex) {
+ // Swallow
+ }
+ }
+ StatusMessages.instance().addFromResourceBundle(msgSeverity, getMessageKey());
}
// Have we been called with a nodeId request parameter, must be a document
Modified: trunk/examples/wiki/view/docEdit_d.xhtml
===================================================================
--- trunk/examples/wiki/view/docEdit_d.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/docEdit_d.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -125,7 +125,7 @@
</div>
</s:div>
<s:div id="pushOnSiteFeedSwitchUnmanaged">
- <s:fragment rendered="#{s:hasPermission('Feed','write',wikiRoot.feed)}">
+ <s:fragment rendered="#{s:hasPermission('Feed','write',wikiRoot.feed) and s:hasPermission('User','isAdmin',currentUser)}">
<s:div styleClass="entry">
<div class="label"> </div>
<div class="input">
@@ -158,7 +158,7 @@
</div>
</s:div>
<s:div id="pushOnSiteFeedSwitch">
- <s:fragment rendered="#{s:hasPermission('Feed','write',wikiRoot.feed)}">
+ <s:fragment rendered="#{s:hasPermission('Feed','write',wikiRoot.feed) and s:hasPermission('User','isAdmin',currentUser)}">
<s:div styleClass="entry">
<div class="label"> </div>
<div class="input">
Modified: trunk/examples/wiki/view/themes/default/css/template.css
===================================================================
--- trunk/examples/wiki/view/themes/default/css/template.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/css/template.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -354,6 +354,12 @@
font-weight: bold;
}
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
+
/* General
----------------------------------------------- */
Modified: trunk/examples/wiki/view/themes/default/js/lacewiki.js
===================================================================
--- trunk/examples/wiki/view/themes/default/js/lacewiki.js 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/js/lacewiki.js 2008-05-22 11:00:11 UTC (rev 8262)
@@ -1,5 +1,19 @@
/* Cachable global scripts */
+// ###################### COOKIE SUPPORT #################################
+
+function checkCookieSupport() {
+ if(!document.cookie) {
+ jQuery("body")
+ .prepend("<div class='cookieJavaScriptWarning'>" +
+ "Please enable cookie support in your browser, otherwise " +
+ "some features of this website will not work. Cookies are " +
+ "used only for temporary client identification and destroyed " +
+ "when you quit the browser." +
+ "</div>");
+ }
+}
+
// ###################### Log #################################
function log(message) {
Modified: trunk/examples/wiki/view/themes/default/m/css/template.css
===================================================================
--- trunk/examples/wiki/view/themes/default/m/css/template.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/m/css/template.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -144,4 +144,10 @@
.commentAuthorDate {
font-style: italic;
padding: 5px;
-}
\ No newline at end of file
+}
+
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
Modified: trunk/examples/wiki/view/themes/default/m/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/default/m/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/m/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -17,6 +17,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<s:div id="screen">
<s:div id="header">
@@ -28,12 +35,12 @@
</s:div>
<s:div rendered="#{!empty facesMessages.currentGlobalMessages}">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0" columnClasses="messageBoxCell">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
</ui:repeat>
</s:div>
Modified: trunk/examples/wiki/view/themes/default/mailtemplates/confirmationRegistration.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/default/mailtemplates/confirmationRegistration.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/mailtemplates/confirmationRegistration.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,7 +16,7 @@
you registered an account on the LaceWiki. You need to click the following link to confirm the
validity of your e-mail address and to activate your account:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</a>
<p>
Regards,<br/>
Modified: trunk/examples/wiki/view/themes/default/mailtemplates/resetPassword.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/default/mailtemplates/resetPassword.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/mailtemplates/resetPassword.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,7 +16,7 @@
you (or someone else) requested a password reset on LaceWiki. You need to click the following link to confirm the
validity of your e-mail address and to enter a new password:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</a>
<p>
If you did not request a password reset, or if you do not reset your password, your account will still be active
Modified: trunk/examples/wiki/view/themes/default/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/default/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/default/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -195,6 +195,7 @@
}
function initPage() {
+ checkCookieSupport();
wrapBoxes();
}
@@ -207,6 +208,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<ui:include src="../../includes/helpPopup.xhtml"/>
<s:div id="screen">
@@ -281,25 +289,23 @@
<s:div id="messageBoxContainer"><j4j:idProxy id="messageBoxContainer_"/>
<s:div styleClass="box" rendered="#{!empty facesMessages.currentGlobalMessages}">
<div id="messageBox" class="messageBox">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
-
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal == 0}">
+ rendered="#{msg.severity.ordinal == 0}">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal > 0}">
+ rendered="#{msg.severity.ordinal > 0}">
<h:graphicImage value="#{imagePath}/attention.gif"
- rendered="#{message.severity.ordinal > 0}"
+ rendered="#{msg.severity.ordinal > 0}"
width="18" height="18"
styleClass="attentionImage"/>
- <h:outputText styleClass="attentionMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="attentionMessage" value="#{msg.summary}"/>
</h:panelGrid>
-
</ui:repeat>
<script type="text/javascript">jQuery(function() {
Modified: trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -352,7 +352,13 @@
.messageBox .infoMessage {
}
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
+
/* General
----------------------------------------------- */
Modified: trunk/examples/wiki/view/themes/inrelationto/js/lacewiki.js
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/js/lacewiki.js 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/js/lacewiki.js 2008-05-22 11:00:11 UTC (rev 8262)
@@ -1,5 +1,19 @@
/* Cachable global scripts */
+// ###################### COOKIE SUPPORT #################################
+
+function checkCookieSupport() {
+ if(!document.cookie) {
+ jQuery("body")
+ .prepend("<div class='cookieJavaScriptWarning'>" +
+ "Please enable cookie support in your browser, otherwise " +
+ "some features of this website will not work. Cookies are " +
+ "used only for temporary client identification and destroyed " +
+ "when you quit the browser." +
+ "</div>");
+ }
+}
+
// ###################### Log #################################
function log(message) {
Modified: trunk/examples/wiki/view/themes/inrelationto/m/css/template.css
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/m/css/template.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/m/css/template.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -145,4 +145,10 @@
.commentAuthorDate {
font-style: italic;
padding: 5px;
-}
\ No newline at end of file
+}
+
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
Modified: trunk/examples/wiki/view/themes/inrelationto/m/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/m/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/m/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,6 +16,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<s:div id="screen">
<s:div id="header">
@@ -29,12 +36,12 @@
</s:div>
<s:div rendered="#{!empty facesMessages.currentGlobalMessages}">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0" columnClasses="messageBoxCell">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
</ui:repeat>
</s:div>
Modified: trunk/examples/wiki/view/themes/inrelationto/mailtemplates/confirmationRegistration.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/mailtemplates/confirmationRegistration.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/mailtemplates/confirmationRegistration.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -15,7 +15,7 @@
you registered an account on the LaceWiki. You need to click the following link to confirm the
validity of your e-mail address and to activate your account:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</a>
<p>
Regards,<br/>
Modified: trunk/examples/wiki/view/themes/inrelationto/mailtemplates/resetPassword.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/mailtemplates/resetPassword.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/mailtemplates/resetPassword.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,7 +16,7 @@
you (or someone else) requested a password reset on LaceWiki. You need to click the following link to confirm the
validity of your e-mail address and to enter a new password:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</a>
<p>
If you did not request a password reset, or if you do not reset your password, your account will still be active
Modified: trunk/examples/wiki/view/themes/inrelationto/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/inrelationto/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -202,6 +202,7 @@
}
function initPage() {
+ checkCookieSupport();
wrapBoxes();
}
@@ -214,6 +215,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<ui:include src="../../includes/helpPopup.xhtml"/>
<s:div id="screen">
@@ -285,23 +293,23 @@
<!-- Status messages -->
<s:div id="messageBoxContainer">
<s:div id="messageBox" styleClass="messageBox" rendered="#{!empty facesMessages.currentGlobalMessages}">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal == 0}">
+ rendered="#{msg.severity.ordinal == 0}">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="messageBoxImage infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal > 0}">
+ rendered="#{msg.severity.ordinal > 0}">
<h:graphicImage value="#{imagePath}/attention.gif"
- rendered="#{message.severity.ordinal > 0}"
+ rendered="#{msg.severity.ordinal > 0}"
width="18" height="18"
styleClass="messageBoxImage attentionImage"/>
- <h:outputText styleClass="attentionMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="attentionMessage" value="#{msg.summary}"/>
</h:panelGrid>
</ui:repeat>
Modified: trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -469,6 +469,12 @@
color: #666;
}
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
+
/* General
----------------------------------------------- */
Modified: trunk/examples/wiki/view/themes/sfwkorg/js/lacewiki.js
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/js/lacewiki.js 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/js/lacewiki.js 2008-05-22 11:00:11 UTC (rev 8262)
@@ -1,5 +1,19 @@
/* Cachable global scripts */
+// ###################### COOKIE SUPPORT #################################
+
+function checkCookieSupport() {
+ if(!document.cookie) {
+ jQuery("body")
+ .prepend("<div class='cookieJavaScriptWarning'>" +
+ "Please enable cookie support in your browser, otherwise " +
+ "some features of this website will not work. Cookies are " +
+ "used only for temporary client identification and destroyed " +
+ "when you quit the browser." +
+ "</div>");
+ }
+}
+
// ###################### Log #################################
function log(message) {
Modified: trunk/examples/wiki/view/themes/sfwkorg/m/css/template.css
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/m/css/template.css 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/m/css/template.css 2008-05-22 11:00:11 UTC (rev 8262)
@@ -140,4 +140,10 @@
.commentText {
padding: 10px;
-}
\ No newline at end of file
+}
+
+.cookieJavaScriptWarning {
+ margin: 10px;
+ color: red;
+ text-align: center;
+}
Modified: trunk/examples/wiki/view/themes/sfwkorg/m/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/m/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/m/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -15,6 +15,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<s:div id="screen">
<h:outputText value="Seam Framework - "/><ui:insert name="screenname"/>
@@ -24,12 +31,12 @@
</s:div>
<s:div rendered="#{!empty facesMessages.currentGlobalMessages}">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0" columnClasses="messageBoxCell">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
</ui:repeat>
</s:div>
Modified: trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/confirmationRegistration.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/confirmationRegistration.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/confirmationRegistration.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,7 +16,7 @@
you registered an account on the Seam community website. You need to click the following link to confirm the
validity of your e-mail address and to activate your account:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/confirmRegistration.seam?activationCode=#{userHome.instance.activationCode}">Click this link to activate the account '#{userHome.instance.username}'</a>
</body>
</html>
Modified: trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/resetPassword.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/resetPassword.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/mailtemplates/resetPassword.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -16,7 +16,7 @@
you (or someone else) requested a password reset on the Seam community website. You need to click the following link to confirm the
validity of your e-mail address and to enter a new password:</p>
- <h:outputLink value="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</h:outputLink>
+ <a href="#{preferences.get('Wiki').baseUrl}/resetPassword.seam?activationCode=#{resetPasswordOfUser.activationCode}">Click this link to reset the password of the account '#{resetPasswordOfUser.username}'</a>
<p>
If you did not request a password reset, or if you do not reset your password, your account will still be active
Modified: trunk/examples/wiki/view/themes/sfwkorg/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/template.xhtml 2008-05-22 10:48:01 UTC (rev 8261)
+++ trunk/examples/wiki/view/themes/sfwkorg/template.xhtml 2008-05-22 11:00:11 UTC (rev 8262)
@@ -196,6 +196,7 @@
}
function initPage() {
+ checkCookieSupport();
wrapBoxes();
}
@@ -209,6 +210,13 @@
<body>
+<noscript>
+ <div class="cookieJavaScriptWarning">
+ Please activate JavaScript in your browser. Without it, you will only be able to browse this website
+ but clicking on any advanced feature (any forms or submit buttons) will not work.
+ </div>
+</noscript>
+
<ui:include src="../../includes/helpPopup.xhtml"/>
<div id="wrapper">
@@ -337,23 +345,23 @@
<!-- Status messages -->
<s:div id="messageBoxContainer">
<s:div id="messageBox" styleClass="messageBox" rendered="#{!empty facesMessages.currentGlobalMessages}">
- <ui:repeat var="message" value="#{facesMessages.currentGlobalMessages}">
+ <ui:repeat var="msg" value="#{facesMessages.currentGlobalMessages}">
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal == 0}">
+ rendered="#{msg.severity.ordinal == 0}">
<h:graphicImage value="#{imagePath}/info.gif"
width="18" height="18"
styleClass="messageBoxImage infoImage"/>
- <h:outputText styleClass="infoMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="infoMessage" value="#{msg.summary}"/>
</h:panelGrid>
<h:panelGrid styleClass="messageBoxTable" columns="2" cellpadding="0" cellspacing="0" border="0"
- rendered="#{message.severity.ordinal > 0}">
+ rendered="#{msg.severity.ordinal > 0}">
<h:graphicImage value="#{imagePath}/attention.gif"
- rendered="#{message.severity.ordinal > 0}"
+ rendered="#{msg.severity.ordinal > 0}"
width="18" height="18"
styleClass="messageBoxImage attentionImage"/>
- <h:outputText styleClass="attentionMessage" value="#{message.summary}"/>
+ <h:outputText styleClass="attentionMessage" value="#{msg.summary}"/>
</h:panelGrid>
</ui:repeat>
16 years, 6 months