Compare commits

..

135 Commits

Author SHA1 Message Date
Ted Nathan Husted cb580fe614 WW-1685 Tag r503710 as Struts 2.0.5
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/tags/STRUTS_2_0_5@503722 13f79535-47bb-0310-9956-ffa450edef68
2007-02-05 15:33:40 +00:00
Ted Nathan Husted 6489ffdafb WW-1685 Update POMs for 2.0.5 tag.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@503710 13f79535-47bb-0310-9956-ffa450edef68
2007-02-05 14:57:11 +00:00
Ted Nathan Husted ae58ad2a2d WW-1680 Undo move pending a refactoring of the StrutsObjectFactory.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@502453 13f79535-47bb-0310-9956-ffa450edef68
2007-02-02 02:49:11 +00:00
Ted Nathan Husted aafaf20539 WW-1680 Move "new API" into the sandbox for the time being. The "new API" may be revisited for 2.1 and refined to utilize the latest version of Guice.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@502436 13f79535-47bb-0310-9956-ffa450edef68
2007-02-02 01:38:43 +00:00
Niall Kegan Pemberton fcbdb848f2 WW-1698 - Add missing License Headers (and a few missing "svn" properties)
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@502296 13f79535-47bb-0310-9956-ffa450edef68
2007-02-01 17:33:39 +00:00
Niall Kegan Pemberton 47403b9e22 add missing svn properties - no actual changes
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@502294 13f79535-47bb-0310-9956-ffa450edef68
2007-02-01 17:28:00 +00:00
René Gielen f31faacc4a WW-1696:
Refactored PrincipalProxy to interface and provided a servlet and a portlet based implementation

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@502196 13f79535-47bb-0310-9956-ffa450edef68
2007-02-01 11:28:57 +00:00
Donald J. Brown 41786a83eb Changed plexus dep to not be optional
WW-1685


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501930 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 18:09:20 +00:00
Donald J. Brown 307669fdde Added rendering of submit button body within tag rather than before
WW-1677


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501762 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 08:25:24 +00:00
Donald J. Brown 88df0924af Used id instead of name for Javascript method prefixes
WW-1618


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501758 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 07:56:28 +00:00
Donald J. Brown 8d22794130 Fixed wrong name for freemarker datetimepicker tag
WW-1684


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501750 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 07:06:47 +00:00
Donald J. Brown 9ebc53c4f0 Fixed missing type attribute from script elements
WW-1627


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501749 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 06:59:58 +00:00
Donald J. Brown 8d4d13147d Fixed optgroup throwing NPE, added file missing from commit fixing servlet action redirect
WW-1670 WW-1662


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501746 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 06:22:43 +00:00
Donald J. Brown 4a55d03e9a Fixing servlet action redirect not passing injected mapper to super class
WW-1662

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501736 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 05:38:02 +00:00
Donald J. Brown 508bd982c2 Added control header and footer to datetimepicker in css_xhtml theme
WW-1689

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501734 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 05:14:16 +00:00
Donald J. Brown 7187a6d04b Fixed custom parent packages not inherited properly with namespace annotation, fixed problem report when single exception
WW-1679 WW-1687

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501717 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 03:51:11 +00:00
Donald J. Brown 8dc11480ef Fixed class name
WW-1692


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501683 13f79535-47bb-0310-9956-ffa450edef68
2007-01-31 01:34:42 +00:00
Donald J. Brown 43ed192645 Fixed embarrasing lack of faith in the "if" statement
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501618 13f79535-47bb-0310-9956-ffa450edef68
2007-01-30 22:46:48 +00:00
Joseph Lad Germuska 723a14798c switch Tiles dependency to new TLP location
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501513 13f79535-47bb-0310-9956-ffa450edef68
2007-01-30 18:47:55 +00:00
Ted Nathan Husted 4e4376535b WW-1686 Update Freemarker dependency to 2.3.8.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501048 13f79535-47bb-0310-9956-ffa450edef68
2007-01-29 13:48:56 +00:00
Ted Nathan Husted 47f1e838f0 WW-1650 Update site for 2.0.5-SNAPSHOT.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@501047 13f79535-47bb-0310-9956-ffa450edef68
2007-01-29 13:47:05 +00:00
Ted Nathan Husted ac8b7404f1 Update POMs for Struts 2.0.5 SNAPSHOT.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@500934 13f79535-47bb-0310-9956-ffa450edef68
2007-01-29 03:51:53 +00:00
Ted Nathan Husted 238abc3d12 WW-1650 Update POMs for 2.0.4 release.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@500931 13f79535-47bb-0310-9956-ffa450edef68
2007-01-29 03:38:40 +00:00
Donald J. Brown 543095e202 Fixed sitegraph not working due to new default properties provider
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@500925 13f79535-47bb-0310-9956-ffa450edef68
2007-01-29 02:41:07 +00:00
Donald J. Brown 8622e46762 Adding notice and license files to all artifacts that will go into Maven
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@500893 13f79535-47bb-0310-9956-ffa450edef68
2007-01-28 21:36:41 +00:00
Donald J. Brown 981c80147b Exposed several freemarker tag model methods to subclasses
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@500745 13f79535-47bb-0310-9956-ffa450edef68
2007-01-28 05:38:24 +00:00
Ted Nathan Husted 152fe60914 WW-1650 Update retrotranslator
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499748 13f79535-47bb-0310-9956-ffa450edef68
2007-01-25 11:43:04 +00:00
Ted Nathan Husted 84d7f4628b WW-1650 Update retrotranslator
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499747 13f79535-47bb-0310-9956-ffa450edef68
2007-01-25 11:42:28 +00:00
Donald J. Brown 2818f9218b Added interceptor for portlet apps that injects the portlet preferences.
A simple stub for servlet environment testing will be used if needed.
WW-1676


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499708 13f79535-47bb-0310-9956-ffa450edef68
2007-01-25 09:23:21 +00:00
Donald J. Brown 3f96219877 Fixed classpath configuration parameters not able to be defined
in files other than struts.properties
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499707 13f79535-47bb-0310-9956-ffa450edef68
2007-01-25 09:17:38 +00:00
Donald J. Brown 35d43292cd Fixed when custom i18n props not specified
WW-1668


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499704 13f79535-47bb-0310-9956-ffa450edef68
2007-01-25 08:57:59 +00:00
Donald J. Brown bc6d851439 Moved processing of localization files from struts.properties to any usual properties setting
technique (web.xml, struts.properties, struts.xml)
WW-1668


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@499294 13f79535-47bb-0310-9956-ffa450edef68
2007-01-24 07:33:24 +00:00
Ted Nathan Husted c3cf9d5ec8 WW-1650 Add link to migration guide and restore AJAX bullet, since they are becoming FAQs.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498588 13f79535-47bb-0310-9956-ffa450edef68
2007-01-22 11:46:20 +00:00
René Gielen f13f6186cf WW-1392:
As discussed, add a struts-annotations profile for local development similar to xwork profile. Works fine AFAIK.
I assumed a directory organization like we have in the svn repository, so that we have the maven repository checked out besides struts2 repository, which means the reference in pom.xml goes to ../maven/struts-aanotations. Another solution would be to just assume the struts annotations module is found besides struts2 repo. So that point might to be discussed.

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498262 13f79535-47bb-0310-9956-ffa450edef68
2007-01-21 10:03:52 +00:00
Donald J. Brown 03745a49ae Split properties loading so that struts.properties can override plugin properties
WW-1666


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498215 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 23:59:10 +00:00
Donald J. Brown 4449472577 Adding @SkipValidation annotation and associated interceptor
WW-1664


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498203 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 22:55:16 +00:00
Donald J. Brown efcdc32d9b Removing unused properties
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498186 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 21:59:04 +00:00
Wendy Smoak 9fa46b3e20 Revert r498071 and put struts-annotations back in compile scope, but mark it optional to exclude it from transitive dependency resolution. Thanks to Musachy Barroso for catching this.
WW-1650

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498147 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 18:07:15 +00:00
Ted Nathan Husted 026ac13cd7 WW-1650 Update release notes for Struts 2.0.4
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498115 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 14:49:03 +00:00
Donald J. Brown ed9b875afc Improved the portlet dispatching to use the configured action mapper. This means
that the special prefixes like method: will now work for submitted forms among other
things
WW-1653


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498097 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 10:15:15 +00:00
Donald J. Brown 3951b6833c Fixed parsing of name for ognl when no id is specified and using name value
WW-1617


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498091 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 08:44:14 +00:00
Donald J. Brown c0513c0e07 Fixed double slash when portlet namespace is defined
WW-1641


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498090 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 08:33:19 +00:00
Donald J. Brown 4cf46d99a9 Fixed problem in error report when error occurs deeper than action level
WW-1660


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498088 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 08:24:28 +00:00
Donald J. Brown 9ed7fce11a Fixed NPE when action mapper for current request is null
WW-1662


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498087 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 08:21:22 +00:00
Donald J. Brown 02424af910 Adding support for selecting unknown namespaces for codebehind plugin
WW-1663


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498085 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 08:13:11 +00:00
Wendy Smoak bb29a91df7 Eliminate the compile-time dependency on struts-annotations. It is only required at build time, so configure it as a build extension.
WW-1650

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498071 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 05:08:12 +00:00
Ted Nathan Husted bce0209ecc WW-1588 Update POMs for 2.0.4-SNAPSHOT (once again).
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498062 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 03:49:06 +00:00
Ted Nathan Husted 8bf687db8f WW-1588 Update POMs for 2.0.3 (third try).
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@498041 13f79535-47bb-0310-9956-ffa450edef68
2007-01-20 01:50:47 +00:00
Donald J. Brown e57be3468a Adding back the generated tld file
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497939 13f79535-47bb-0310-9956-ffa450edef68
2007-01-19 20:23:52 +00:00
Ted Nathan Husted a97043519c WW-1588 Update POMs for 2.0.4-SNAPSHOT (as discussed).
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497807 13f79535-47bb-0310-9956-ffa450edef68
2007-01-19 13:26:15 +00:00
Ted Nathan Husted c66b4ed34a WW-1588 Update POMs for 2.0.3 (second try).
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497787 13f79535-47bb-0310-9956-ffa450edef68
2007-01-19 12:10:42 +00:00
René Gielen 621accb683 WW-1392:
- Move annotation definitions back to core, due to making the taglib extensible and removing the runtime deps on struts-annotations
- Set annotation retention to RUNTIME to enable external taglib extensions

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497663 13f79535-47bb-0310-9956-ffa450edef68
2007-01-19 00:44:43 +00:00
René Gielen 8f9b9df1f8 WW-1392:
- Move annotation definitions back to core, due to making the taglib extensible and removing the runtime deps on struts-annotations
- Set annotation retention to RUNTIME to enable external taglib extensions

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497654 13f79535-47bb-0310-9956-ffa450edef68
2007-01-19 00:21:57 +00:00
Donald J. Brown 34d7c589ad No need to exclude commons-logging
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497636 13f79535-47bb-0310-9956-ffa450edef68
2007-01-18 23:26:50 +00:00
Donald J. Brown e72f299033 Removed unnecessary Commons Lang usage in portlet classes
WW-1652


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497293 13f79535-47bb-0310-9956-ffa450edef68
2007-01-18 03:13:27 +00:00
Donald J. Brown 6265c55f3f Fixed portlet example to work on Liferay (ajax examples still broken)
WW-1650


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497194 13f79535-47bb-0310-9956-ffa450edef68
2007-01-17 21:54:13 +00:00
Wendy Smoak 5ea33eec93 Add a 'release' profile with maven-gpg-plugin configuration.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@497046 13f79535-47bb-0310-9956-ffa450edef68
2007-01-17 15:45:06 +00:00
Donald J. Brown 8d6db00a11 Fixed id attribute for tabbed panel
WW-1646


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496933 13f79535-47bb-0310-9956-ffa450edef68
2007-01-17 04:19:13 +00:00
Donald J. Brown d30c2b02e2 Better handling case where action mapping cannot be found when using restful2
WW-1648


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496932 13f79535-47bb-0310-9956-ffa450edef68
2007-01-17 04:12:46 +00:00
Ted Nathan Husted 2573b581c9 WW-1588 Update POMs for 2.1.0-SNAPSHOT.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496766 13f79535-47bb-0310-9956-ffa450edef68
2007-01-16 17:01:40 +00:00
Ted Nathan Husted 6fa2de7b14 WW-1588 Update translate.bat for Struts 2.0.3 build.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496749 13f79535-47bb-0310-9956-ffa450edef68
2007-01-16 16:26:26 +00:00
Ted Nathan Husted e563bd0e15 WW-1588 Update POMs for Struts 2.0.3 build.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496715 13f79535-47bb-0310-9956-ffa450edef68
2007-01-16 14:55:03 +00:00
Ted Nathan Husted 4286181668 WW-1588 Change feature list to active voice. Tweak mailreader tour.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496687 13f79535-47bb-0310-9956-ffa450edef68
2007-01-16 13:48:36 +00:00
Ted Nathan Husted 236e897568 WW-1588 Update feature list.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496573 13f79535-47bb-0310-9956-ffa450edef68
2007-01-16 02:11:12 +00:00
Ted Nathan Husted 9f0b61b716 WW-1588 - Fix second filedownload example. Add Ajax back to menu bar, since only remove form is broken. now.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496318 13f79535-47bb-0310-9956-ffa450edef68
2007-01-15 13:58:24 +00:00
Ted Nathan Husted 35ca3085a0 WW-1588. Add link to Plugin registry. Comment out experimental features.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496222 13f79535-47bb-0310-9956-ffa450edef68
2007-01-15 03:51:57 +00:00
Ted Nathan Husted f67d33a5d7 WW-1588 - Update showcase remarks. Start to add second use case to file upload.
WW-1598 - Apply updates per Dariusz Wojtas



git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@496221 13f79535-47bb-0310-9956-ffa450edef68
2007-01-15 03:50:06 +00:00
Donald J. Brown 056ad9bdc0 Added returning of object in setter
WW-1628



git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495509 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 07:50:25 +00:00
Donald J. Brown 7effcebbc4 Fixed wrong named plugin default
WW-1638


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495504 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 07:26:44 +00:00
Donald J. Brown 20eada0259 Renamed xwork.xml to struts.xml on portlet example
WW-1638


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495503 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 07:25:05 +00:00
Donald J. Brown 53733757b4 Fixing getActionForMode on portlet context
WW-1636


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495502 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 07:15:43 +00:00
Donald J. Brown d568ae3b9b Renamed datepicker to datetimepicker
WW-1538


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495498 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 06:51:24 +00:00
Donald J. Brown 813659899c Removed duplicate resources in java tree, moved over missing files
WW-1538


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495496 13f79535-47bb-0310-9956-ffa450edef68
2007-01-12 06:47:54 +00:00
David H. DeWolf cac4fcef2d Adding license headers to files
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495341 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 19:25:30 +00:00
David H. DeWolf a95f9e4ccc First draft of an inputtransfer select component; Allows text --> select; Similar to OptionTransferSelect
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495339 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 19:20:51 +00:00
David H. DeWolf a7370c2f18 adding default param for stream result so that it can be used with auto-config annotated results
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495228 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 13:57:55 +00:00
Donald J. Brown 24b2a90fe8 Added support for treenode tag in Freemarker
WW-1383


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495098 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 03:02:32 +00:00
Donald J. Brown e22fb0f0fc Changed dummy null object to be serializable
WW-1621


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495097 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 02:57:59 +00:00
Donald J. Brown 7a398f6658 Fixed unused message lookup
WW-1631


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495094 13f79535-47bb-0310-9956-ffa450edef68
2007-01-11 02:51:40 +00:00
Donald J. Brown 1d0102d83e Fixed restful action mapper (switched role of put/get)
WW-1475


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495026 13f79535-47bb-0310-9956-ffa450edef68
2007-01-10 22:55:44 +00:00
Donald J. Brown bf9abaa708 Changing list attribute on autocomplete component to optional
WW-1611


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@495010 13f79535-47bb-0310-9956-ffa450edef68
2007-01-10 22:21:54 +00:00
David H. DeWolf ade8ee2974 Adding up down attributes to optiontransferselect
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@494210 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 21:55:49 +00:00
Donald J. Brown 39cd58cdae Added test for byte key in select tag
WW-1601


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@494155 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 19:05:40 +00:00
Donald J. Brown d8c80fdcfe Removed invalid widgets from dojo import
WW-1538


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@494150 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 18:45:42 +00:00
Donald J. Brown 7928ea7792 Fixing Struts 2 build for OSX
WW-1588


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@494148 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 18:41:13 +00:00
Donald J. Brown 8c9106addb Set default date parsing to the RFC 3399 standard
WW-1588


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493965 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 06:43:35 +00:00
Donald J. Brown 4c92aff5d5 Fixed showcase examples of datetimepicker tags
WW-1588


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493964 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 06:43:02 +00:00
Ted Nathan Husted 1002d5f2b2 WW-1588 - showcase tweaks.
Move datepicker and timepicker examples to tags/ui




git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493922 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 03:11:59 +00:00
Ted Nathan Husted e4f2a73d1d WW-1588 - showcase tweaks.
Move datepicker and timepicker examples to tags/ui




git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493915 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 02:42:58 +00:00
Donald J. Brown 5cef33a393 Adding missing datetimepicker template
WW-1596


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493908 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 02:17:16 +00:00
Ted Nathan Husted 5478ca7558 WW-1588 - showcase tweaks.
Move datepicker and timepicker examples to tags/ui




git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493907 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 02:16:42 +00:00
Ted Nathan Husted 532a03b9e0 WW-1588 - showcase tweaks.
Add back datepicker and timepicker examples 



git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493903 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 02:04:37 +00:00
Ted Nathan Husted a7740aff49 example8 - swap buttons to make use case more obvious.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493884 13f79535-47bb-0310-9956-ffa450edef68
2007-01-08 00:22:13 +00:00
Donald J. Brown 149328321c Renamed DropDownDateTimePicker to DateTimePicker and got rid of DatePicker and
TimePicker, better aligning Struts 2 with WebWork 2 offerings.
WW-1596



git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493867 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 22:26:23 +00:00
Donald J. Brown 2840e87cd2 Fixing dropdowndatetimepicker in xhtml theme, changed to use correct input id,
changed showcase to use the drop down date picker, added lexical ordering to
tld
WW-1358


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493848 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 21:26:00 +00:00
Donald J. Brown 32bc45dc42 Fixed execute and wait interceptor
WW-1593


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493827 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 20:37:06 +00:00
Donald J. Brown 65ca4e5780 Fixing date picker tests and adding dojo import for non-ajax themes
WW-1596


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493716 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 13:14:02 +00:00
Donald J. Brown ed131f4f0e Adding the debug tag to the tld docs
WW-1600


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493680 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 07:51:33 +00:00
Donald J. Brown 0cb5ae0ca1 Adding taglib annotations to JSP iterator tags
WW-1599


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493679 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 07:48:32 +00:00
Donald J. Brown 6c63702c75 Removing old generated tag docs and xdoclet templates
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493666 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 06:31:35 +00:00
Donald J. Brown 3204bffdd2 Better emphasis for required attributes, fixed if tag
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493665 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 06:28:54 +00:00
Donald J. Brown d7dd9f4d66 Added bean tag to taglib
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493661 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 06:16:04 +00:00
Donald J. Brown 57765bd9e0 Fixing anchor tag javadoc
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493660 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 06:10:10 +00:00
Donald J. Brown a34c6d37ca Ok, last clean of div javadocs...
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493659 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:56:19 +00:00
Donald J. Brown 9b78008d68 Trying again to clean div javadocs
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493658 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:55:26 +00:00
Donald J. Brown 62b4f23fe6 Cleaning up div javadocs
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493657 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:52:27 +00:00
Donald J. Brown 59c12d8477 Adding updownselect docs
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493656 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:48:53 +00:00
Donald J. Brown f979c8f0aa Adding updownselect tag to taglib
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493655 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:48:17 +00:00
Donald J. Brown 3167fd35e2 Adding missing timepicker tag
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493654 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:43:03 +00:00
Donald J. Brown 48dff9b7b4 Changed tag docs so that attributes are sorted by name
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493650 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:25:33 +00:00
Donald J. Brown 6d1cf66ec7 Moving tag docs to Java 5 annotations and APT, storing generated html
in src/site/resources for possible use in site
WW-1392


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493648 13f79535-47bb-0310-9956-ffa450edef68
2007-01-07 05:18:49 +00:00
Donald J. Brown f3583fd38b Upping xwork dep to 2.0.0
WW-1588


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493554 13f79535-47bb-0310-9956-ffa450edef68
2007-01-06 19:59:42 +00:00
Donald J. Brown 3945930d11 Better handling of nulls for select tag, injected object factory into bean component
WW-1567


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493436 13f79535-47bb-0310-9956-ffa450edef68
2007-01-06 09:15:15 +00:00
Donald J. Brown 89c6a27785 Changed to use constructor injection since two injections depended on each other
WW-1595


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@493148 13f79535-47bb-0310-9956-ffa450edef68
2007-01-05 19:20:09 +00:00
David H. DeWolf aec83eae92 WW-1596 Fixing DatePicker and TimePicker. Thanks Musachy
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492987 13f79535-47bb-0310-9956-ffa450edef68
2007-01-05 11:27:27 +00:00
Donald J. Brown 3fcfcad103 Added ability to customize template path prefix
WW-1595


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492788 13f79535-47bb-0310-9956-ffa450edef68
2007-01-04 22:43:10 +00:00
Donald J. Brown 8fa10b63d8 Moving back to surefire 2.1.3 due to http://jira.codehaus.org/browse/MSUREFIRE-114
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492286 13f79535-47bb-0310-9956-ffa450edef68
2007-01-03 20:31:05 +00:00
Donald J. Brown 4d304db99b Fixing unused sun import
WW-1592


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492272 13f79535-47bb-0310-9956-ffa450edef68
2007-01-03 19:53:44 +00:00
David H. DeWolf 5e3b8b0e3f WW-1557, Example of how to use the select value with multiple=true
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492030 13f79535-47bb-0310-9956-ffa450edef68
2007-01-03 02:55:43 +00:00
David H. DeWolf 2610fec870 WW-1591 OptionTransferSelect doubleSize not used
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@492007 13f79535-47bb-0310-9956-ffa450edef68
2007-01-03 02:03:33 +00:00
Donald J. Brown b758b9ff10 Added ability to discover new tag libraries and template engines automatically
WW-1590


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491656 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 22:10:12 +00:00
Donald J. Brown fbcd87e5be Adding generation of javadocs and sources jars when profile
"alljars" is activated
WW-1587


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491633 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 21:19:27 +00:00
Donald J. Brown af34058f45 Integrating xwork docs with struts docs
WW-1395


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491622 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 20:22:54 +00:00
Donald J. Brown 923f1cdde1 Fixing url to not be built automatically in href tag on submit component
WW-1547


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491599 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 17:28:37 +00:00
Wendy Smoak 2db280d3be Remove the deleted 'all' module from the build.
WW-1586

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491597 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 16:57:44 +00:00
Donald J. Brown 129530efc3 Temporary fix for threadlocal cleanup on request context impl,
in lieu of Bob's proper resolution
WW-1543


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491550 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 09:18:30 +00:00
Donald J. Brown c464a84845 Removed the all module
WW-1586


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491549 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 09:03:03 +00:00
Donald J. Brown 22b4ce3deb Added exclusion of dojo parameters
WW-1551


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491548 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 09:01:28 +00:00
Donald J. Brown 8342d3e697 Fixing namespace slash check in such a way it doesn't break half the tests
WW-1523


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491547 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 08:54:16 +00:00
Donald J. Brown 6b94787f9b Added better detection of existing namespaces by requiring an ending slash on the match
WW-1523


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491545 13f79535-47bb-0310-9956-ffa450edef68
2007-01-01 08:49:14 +00:00
Wendy Smoak b35ac5150d Download, unzip, and include the Confluence wiki docs in the -all release assembly.
WW-1585

git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491483 13f79535-47bb-0310-9956-ffa450edef68
2006-12-31 20:58:16 +00:00
Donald J. Brown de072a889b Applied against the wrong ComboBox.js
WW-1583


git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491470 13f79535-47bb-0310-9956-ffa450edef68
2006-12-31 19:26:44 +00:00
Ted Nathan Husted b4c0159f22 WW-1588 Update Release Notes and XWork references.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491467 13f79535-47bb-0310-9956-ffa450edef68
2006-12-31 19:13:40 +00:00
Ted Nathan Husted 4c643130bf WW-1588 Update Retotranslater utilities for backporting to J4.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491462 13f79535-47bb-0310-9956-ffa450edef68
2006-12-31 18:20:43 +00:00
Ted Nathan Husted ef999fe8fc WW-1483 Update POM versions for Struts 2.0.3-SNAPSHOT.
git-svn-id: https://svn.apache.org/repos/asf/struts/struts2/trunk@491460 13f79535-47bb-0310-9956-ffa450edef68
2006-12-31 18:09:12 +00:00
451 changed files with 33119 additions and 44816 deletions
-118
View File
@@ -1,118 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
<version>2.0.2</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-all</artifactId>
<packaging>jar</packaging>
<name>Combined Struts 2 Jar</name>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>dependency-maven-plugin</artifactId>
<executions>
<execution>
<id>unjar-deps</id>
<phase>compile</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-api</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-config-browser-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-jasperreports-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-jfreechart-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-jsf-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-pell-multipart-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-plexus-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-sitegraph-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-sitemesh-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-struts1-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
<artifactItem>
<groupId>org.apache.struts</groupId>
<artifactId>
struts2-tiles-plugin
</artifactId>
<version>${version}</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-api</artifactId>
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2;
/**
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2;
/**
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2;
import java.util.List;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2;
/**
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2;
import org.apache.struts2.MessageAware;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.servlet;
import java.util.Map;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.servlet;
import javax.servlet.http.HttpServletRequest;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.servlet;
import javax.servlet.http.HttpServletResponse;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
import java.lang.reflect.Method;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
/**
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
import org.apache.struts2.Messages;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
import org.apache.struts2.spi.RequestContext;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
import org.apache.struts2.spi.RequestContext;
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.spi;
/**
+174
View File
@@ -0,0 +1,174 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+5
View File
@@ -0,0 +1,5 @@
Apache Struts
Copyright 2000-2007 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-blank</artifactId>
+174
View File
@@ -0,0 +1,174 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
+5
View File
@@ -0,0 +1,5 @@
Apache Struts
Copyright 2000-2007 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-mailreader</artifactId>
@@ -0,0 +1,174 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
@@ -0,0 +1,5 @@
Apache Struts
Copyright 2000-2007 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
+32 -32
View File
@@ -15,12 +15,12 @@
<p>
<i>
This article is meant to introduce a new user to Apache Struts 2 by
This article is meant to introduce a new user to Apache Struts 2 by
"walking through" a simple, but functional, application.
The article includes code snippets, but for the best result, you might
want to install the MailReader application on your own development
The article includes code snippets, but for the best result, you might
want to install the MailReader application on your own development
workstation and follow along.
Of course, the full source code to the MailReader is included in the
Of course, the full source code to the MailReader is included in the
distribution.
</i>
</p>
@@ -28,7 +28,7 @@
<p>
<i>
The tour assumes the reader has a basic understanding of the Java
language, JavaBeans, web applications, and JavaServer Pages. For
language, JavaBeans, web applications, and JavaServer Pages. For
background on these technologies, see the
<a href="http://struts.apache.org/primer.html">
Key Technologies Primer</a>.
@@ -215,7 +215,7 @@
<hr/>
<p>
You might note taht the web.xml configuration does not specify which file extension
You might note that the web.xml configuration does not specify which file extension
to use with actions.
The default extension for Struts 2 is ".action",
but the extension can be changed in the struts.properties file.
@@ -255,10 +255,10 @@
<p>
The actions are listed in one or more XML configuration files,
the default configuration file being named "struts.xml".
When the application loads, the struts.xml, and any other files
it includes, are parsed, and the framework creates a set of
configuration objects.
Among other things, the configuration maps a request for a certain
When the application loads, the struts.xml, and any other files
it includes, are parsed, and the framework creates a set of
configuration objects.
Among other things, the configuration maps a request for a certain
page to a certain action mapping.
</p>
@@ -301,7 +301,7 @@
<p>
When the client requests "Welcome.do", the request is passed to the "struts2"
FilterDispatcher (that we registered in the web.xml file).
The FilterDispatcher retrieves the appropriate action mapping from the
The FilterDispatcher retrieves the appropriate action mapping from the
configuration.
If we just wanted to forward to the Welcome page, we could use a simple
configuration element.
@@ -367,8 +367,8 @@
<blockquote>
<p>
The Struts configuration lets us separate concerns and "say it once".
The configuration helps us "normalize" an application,
in much the same way we normalize a database schema.
The configuration helps us "normalize" an application,
in much the same way we normalize a database schema.
</p>
</blockquote>
<hr/>
@@ -429,7 +429,7 @@ public class Welcome extends MailreaderSupport {
<hr/>
<p>
Several common result names are predefined,
Several common result names are predefined,
including ERROR, SUCCESS, LOGIN, NONE, and INPUT,
so that these tokens can be used consistently across Struts 2 applications.
</p>
@@ -541,7 +541,7 @@ public class Welcome extends MailreaderSupport {
<hr/>
<p>
If you change a message in the resource, and then rebuild and reload the
If you change a message in the resource, and then rebuild and reload the
application, the change will appear throughout the application.
If you provide message resources for additional locales, you can
localize your application.
@@ -944,12 +944,12 @@ public class Welcome extends MailreaderSupport {
<hr/>
<p>
You may note that the DTD refers to "XWork".
You may note that the DTD refers to "XWork".
<a href="http://www.opensymphony.com/xwork/">
Open Symphony XWork
</a> is a generic command-pattern framework that can be used outside of a
web environment. In practice, Struts 2 is a web-based extension of the
XWork framework.
</a> is a generic command-pattern framework that can be used outside of a
web environment. Essentially, Struts 2 is a web-based extension of the
XWork framework.
</p>
<p>
@@ -959,7 +959,7 @@ public class Welcome extends MailreaderSupport {
If the username is blank or absent, validation will fail and an error
message is generated.
The messages would be based on the "error.username.required" or
"error.password.required" message templates, from the resource bundle.
"error.password.required" message templates from the resource bundle.
</p>
<!--
@@ -1014,7 +1014,7 @@ public String <strong>execute()</strong> throws ExpiredPasswordException {
<p>
Let's look at the relevant properties and methods from MailreaderSupport
and another base class, <strong>ActionSupport</strong>, namely
and another base class, <strong>ActionSupport</strong>, namely
"getUsername", "getPassword", "findUser", "setUser", and "hasErrors".
</p>
@@ -1101,7 +1101,7 @@ public void setPassword(String password) {
When "findUser" returns,
the Login Action looks to see if a valid (non-null) User object is returned.
A valid User is passed to the <strong>User property</strong>.
Although it is still a JavaBean property,
Although it is still a JavaBean property,
the User property is not implemented in quite the same way as Username and Password.
</p>
@@ -1310,7 +1310,7 @@ public void <strong>setSession(Map value)</strong> {
<p>
Within the Login action element, the first result element is named "input".
If validation or authentification fail,
the Action class will return "input" and the framework will transfer control to the
the Action class will return "input" and the framework will transfer control to the
"Login.jsp" page.
</p>
@@ -1473,7 +1473,7 @@ public class <strong>AuthenticationInterceptor</strong> implements Interceptor {
<hr/>
<p>
The <strong>user</strong> stacks require that the client be authenticated.
The <strong>user</strong> stacks require that the client be authenticated.
In other words, that a User object is present in the session.
The actions using a <strong>guest</strong> stack can be accessed by any client.
The <strong>-submit</strong> versions of each can be used with actions
@@ -1483,7 +1483,7 @@ public class <strong>AuthenticationInterceptor</strong> implements Interceptor {
<h5>Double Submits</h5>
<p>
A common problem with designing web applications is that users are impatient
A common problem with designing web applications is that users are impatient
and response times can vary.
Sometimes, people will press a submit button a second time.
When this happens, the browser submits the request again,
@@ -1518,11 +1518,11 @@ public class <strong>AuthenticationInterceptor</strong> implements Interceptor {
<p>
Because the default interceptor stack will now authenticate the client,
we need to specify the standard "defaultStack" for the three
we need to specify the standard "defaultStack" for the three
"guest actions", Welcome, Login, and Register.
Requiring authentification by default is the better practice, since it
means that we won't forget to enable it when creating new actions.
Meanwhile, those pesky users will ensure that we don't forget to disable
Requiring authentification by default is the better practice, since it
means that we won't forget to enable it when creating new actions.
Meanwhile, those pesky users will ensure that we don't forget to disable
authentification for "guest" services.
</p>
@@ -1654,7 +1654,7 @@ public class <strong>AuthenticationInterceptor</strong> implements Interceptor {
The "test" tag is a convenient way to express presentation
logic within your pages.
Customized pages help to prevent user error,
and dynamic customization reduces the number of server pages your
and dynamic customization reduces the number of server pages your
application needs to maintain, among other benefits.
</font></p>
</blockquote>
@@ -1892,7 +1892,7 @@ public class <strong>AuthenticationInterceptor</strong> implements Interceptor {
the value for the field is pushed onto the value stack.
As a result, if the client enters text into an Integer field,
the framework can still redisplay whatever was entered.
An invalid input value is not stored in the field (even if it could be).
An invalid input value is not stored in the field (even if it could be).
The invalid input is pushed onto the stack for the scope of the request.
</p>
@@ -2076,7 +2076,7 @@ public Subscription findSubscription(String host) {
<p>
By keeping routine safety precautions out of the Action class,
the all-important Actions becomes smaller and easier to maintain.
the all-important Action becomes smaller and easier to maintain.
</p>
<p>
+1 -1
View File
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
+24 -5
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-portlet</artifactId>
@@ -25,14 +25,33 @@
<version>1.0</version>
<scope>provided</scope>
</dependency>
<!--
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${pom.version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-portlet-plugin</artifactId>
<artifactId>struts2-core</artifactId>
<version>${pom.version}</version>
</dependency>
-->
<dependency>
<groupId>velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>velocity-tools</groupId>
<artifactId>velocity-tools</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
+174
View File
@@ -0,0 +1,174 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
@@ -0,0 +1,5 @@
Apache Struts
Copyright 2000-2007 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
@@ -1,2 +0,0 @@
org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.Log4jFactory
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JCategoryLog
@@ -11,7 +11,7 @@
<s:textfield name="tt2" label="Test Text2" />
</s:form>
</s:div>
<s:div href="/view/ajaxData.action" id="ryh1" theme="ajax" label="remote one" />
<s:div href="<s:url action="ajaxData"/>" id="ryh1" theme="ajax" label="remote one" />
<s:div id="middle" label="middle" theme="ajax">
middle tab<br/>
<s:form >
@@ -19,7 +19,7 @@
<s:textfield name="tt2" label="Test Text442" />
</s:form>
</s:div>
<s:div href="/view/ajaxData.action" id="ryh21" theme="ajax" label="remote right" />
<s:div href="<s:url action="ajaxData"/>" id="ryh21" theme="ajax" label="remote right" />
</s:tabbedPanel>
<p/>
@@ -28,7 +28,7 @@ A DIV that waits for 5 seconds before loading the contents
id="once"
theme="ajax"
cssStyle="border: 1px solid yellow;"
href="/view/ajaxData.action"
href="<s:url action="ajaxData"/>"
delay="5000"
loadingText="loading...">
Waiting for data</s:div>
@@ -37,10 +37,10 @@ A DIV that is updated every 2 seconds
<s:div
id="twoseconds"
cssStyle="border: 1px solid yellow;"
href="/view/ajaxData.action"
href="<s:url action="ajaxData"/>"
theme="ajax"
delay="2000"
updateInterval="2000"
updateFreq="2000"
errorText="There was an error"
loadingText="loading...">Initial Content
</s:div>
@@ -1 +1,4 @@
Hello World from velocity!
<p />
#surl ("id=url" "action=index")
<a href="${url}">Back to the front page</a>
+1 -1
View File
@@ -5,7 +5,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-apps</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-showcase</artifactId>
@@ -1 +0,0 @@
struts.date.format=yyyy/MM/dd hh:mm:ss
@@ -23,6 +23,7 @@ package org.apache.struts2.showcase;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import com.opensymphony.xwork2.ActionSupport;
@@ -42,6 +43,11 @@ public class LotsOfOptiontransferselectAction extends ActionSupport {
private List _favouriteCountriesKeys;
private List _notFavouriteCountriesKeys;
private List _favouriteSportsKeys;
private List _nonFavouriteSportsKeys;
private List _favouriteCities;
private List _prioritisedFavouriteCartoonCharacters;
private List _prioritisedFavouriteCars;
private List _prioritisedFavouriteCountries;
@@ -188,6 +194,37 @@ public class LotsOfOptiontransferselectAction extends ActionSupport {
_notFavouriteCountriesKeys = notFavouriteCountries;
}
// Sports
public Map getDefaultNonFavoriteSports() {
Map m = new LinkedHashMap();
m.put("basketball", "Basketball");
m.put("football", "Football");
m.put("baseball", "Baseball");
return m;
}
public Map getDefaultFavoriteSports() {
return new LinkedHashMap();
}
public List getFavouriteSports() {
return _favouriteSportsKeys;
}
public void setFavouriteSports(List favouriteSportsKeys) {
this._favouriteSportsKeys = favouriteSportsKeys;
}
public List getNonFavouriteSports() {
return _nonFavouriteSportsKeys;
}
public void setNonFavouriteSports(List notFavouriteSportsKeys) {
this._nonFavouriteSportsKeys = notFavouriteSportsKeys;
}
public List getPrioritisedFavouriteCartoonCharacters() {
return _prioritisedFavouriteCartoonCharacters;
@@ -213,6 +250,29 @@ public class LotsOfOptiontransferselectAction extends ActionSupport {
public Map getAvailableCities() {
Map map = new LinkedHashMap();
map.put("boston", "Boston");
map.put("new york", "New York");
map.put("london", "London");
map.put("rome", "Rome");
return map;
}
public List getDefaultFavouriteCities() {
List list = new ArrayList();
list.add("boston");
list.add("rome");
return list;
}
public List getFavouriteCities() {
return _favouriteCities;
}
public void setFavouriteCities(List favouriteCities) {
this._favouriteCities = favouriteCities;
}
// actions
@@ -1,30 +0,0 @@
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="description1">
<field-validator type="requiredstring">
<message>Description1 Is Required !!!</message>
</field-validator>
</field>
<field name="description2">
<field-validator type="requiredstring">
<message>Description2 Is Required !!!</message>
</field-validator>
</field>
<field name="description3">
<field-validator type="requiredstring">
<message>Description3 Is Required !!!</message>
</field-validator>
</field>
<field name="description4">
<field-validator type="requiredstring">
<message>Description4 Is Required !!!</message>
</field-validator>
</field>
</validators>
@@ -0,0 +1,135 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.showcase;
import com.opensymphony.xwork2.ActionSupport;
import java.util.List;
import java.util.Map;
import java.util.LinkedHashMap;
import java.util.ArrayList;
/**
*/
public class MoreSelectsAction extends ActionSupport {
private List _prioritisedFavouriteCartoonCharacters;
private List _prioritisedFavouriteCars;
private List _prioritisedFavouriteCountries;
private List favouriteNumbers;
// Cartoon Characters
public Map getDefaultFavouriteCartoonCharacters() {
Map m = new LinkedHashMap();
m.put("heMan", "He-Man");
m.put("popeye", "Popeye");
m.put("mockeyMouse", "Mickey Mouse");
return m;
}
// Cars
public Map getDefaultFavouriteCars() {
Map m = new LinkedHashMap();
m.put("alfaRomeo", "Alfa Romeo");
m.put("Toyota", "Toyota");
m.put("Mitsubitshi", "Mitsubitshi");
return m;
}
// Countries
public Map getDefaultFavouriteCountries() {
Map m = new LinkedHashMap();
m.put("england", "England");
m.put("america", "America");
m.put("brazil", "Brazil");
return m;
}
public List getDefaultFavouriteNumbers() {
List list = new ArrayList();
list.add("Three");
list.add("Seven");
return list;
}
public List getPrioritisedFavouriteCartoonCharacters() {
return _prioritisedFavouriteCartoonCharacters;
}
public void setPrioritisedFavouriteCartoonCharacters(List prioritisedFavouriteCartoonCharacters) {
_prioritisedFavouriteCartoonCharacters = prioritisedFavouriteCartoonCharacters;
}
public List getPrioritisedFavouriteCars() {
return _prioritisedFavouriteCars;
}
public void setPrioritisedFavouriteCars(List prioritisedFavouriteCars) {
_prioritisedFavouriteCars = prioritisedFavouriteCars;
}
public List getPrioritisedFavouriteCountries() {
return _prioritisedFavouriteCountries;
}
public void setPrioritisedFavouriteCountries(List prioritisedFavouriteCountries) {
_prioritisedFavouriteCountries = prioritisedFavouriteCountries;
}
public List getFavouriteNumbers() {
return favouriteNumbers;
}
public void setFavouriteNumbers(List favouriteNumbers) {
this.favouriteNumbers = favouriteNumbers;
}
public Map getAvailableCities() {
Map map = new LinkedHashMap();
map.put("boston", "Boston");
map.put("new york", "New York");
map.put("london", "London");
map.put("rome", "Rome");
return map;
}
public List getDefaultFavouriteCities() {
List list = new ArrayList();
list.add("boston");
list.add("rome");
return list;
}
// actions
public String input() throws Exception {
return SUCCESS;
}
public String submit() throws Exception {
return SUCCESS;
}
}
@@ -1 +0,0 @@
Element_friends = java.lang.String
@@ -1 +0,0 @@
Element_selectedSkills=java.lang.String
@@ -1,21 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<!-- Field-Validator Syntax -->
<field name="currentEmployee.empId">
<field-validator type="required">
<message key="employee.id.required"/>
</field-validator>
</field>
<field name="currentEmployee.lastName">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="employee.lastName.required"/>
</field-validator>
</field>
<field name="currentEmployee.birthDate">
<field-validator type="required">
<message key="employee.birthDate.required"/>
</field-validator>
</field>
</validators>
@@ -1,9 +0,0 @@
employee=Employee
employee.firstName=First Name
employee.lastName=Last Name
employee.description=Description
employee.id.required=Id is required
employee.lastName.required=Last Name is required
employee.birthDate.required=Birthdate is required
employee.backtolist=Back to Employee List
@@ -1,9 +0,0 @@
employee=Mitarbeiter
employee.firstName=Vorname
employee.lastName=Nachname
employee.description=Beschreibung
employee.id.required=ID muß angegeben werden
employee.lastName.required=Nachname wird benötigt
employee.birthDate.required=Geburtsdatum wird benötigt
employee.backtolist=Zurück zur Mitarbeiterliste
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
<validators>
<!-- Field-Validator Syntax -->
<field name="currentSkill.name">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="skill.name.required"/>
</field-validator>
</field>
</validators>
@@ -1,6 +0,0 @@
skill=Skill
skill.name=Name
skill.description=Description
skill.name.required=Name is required
skill.backtolist=Back to Skill List
@@ -1,6 +0,0 @@
skill=Kenntnis
skill.name=Name
skill.description=Beschreibung
skill.name.required=Name muss angegeben werden
skill.backtolist=Zurück zur Kenntnis Liste
@@ -1 +0,0 @@
Element_persons=org.apache.struts2.showcase.conversion.Person
@@ -27,15 +27,20 @@ import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.Action;
/**
* Action to demonstrate how to use file download.
* <p/>
* This action is used to download a jpeg file from the image folder.
* Demonstrates file resource download.
* Set filePath to the local file resource to download,
* relative to the application root ("/images/struts.gif").
*
*/
public class FileDownloadAction implements Action {
public InputStream getImageStream() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream("/images/struts.gif");
private String inputPath;
public void setInputPath(String value) {
inputPath = value;
}
public InputStream getInputStream() throws Exception {
return ServletActionContext.getServletContext().getResourceAsStream(inputPath);
}
public String execute() throws Exception {
@@ -1,3 +1,23 @@
/*
* $Id$
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.struts2.showcase.freemarker;
import com.opensymphony.xwork2.ActionSupport;
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="value">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message>Value must not be empty</message>
</field-validator>
</field>
<field name="count">
<field-validator type="int">
<message>Count must be an integer</message>
</field-validator>
</field>
</validators>
@@ -1,74 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- START SNIPPET: fieldValidatorsExample -->
<validators>
<field name="requiredValidatorField">
<field-validator type="required">
<message><![CDATA[ required ]]></message>
</field-validator>
</field>
<field name="requiredStringValidatorField">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="i18n.nothing.here"><![CDATA[ required and must be string ]]></message>
</field-validator>
</field>
<field name="requiredStringValidatorField">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message key="i18n.requiredstring"><![CDATA[ required and must be string ]]></message>
</field-validator>
</field>
<field name="integerValidatorField">
<field-validator type="int">
<param name="min">1</param>
<param name="max">10</param>
<message><![CDATA[ must be integer min 1 max 10 if supplied ]]></message>
</field-validator>
</field>
<field name="dateValidatorField">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message><![CDATA[ must be a min 01-01-1990 max 01-01-2000 if supplied ]]></message>
</field-validator>
</field>
<field name="emailValidatorField">
<field-validator type="email">
<message><![CDATA[ must be a valid email if supplied ]]></message>
</field-validator>
</field>
<field name="urlValidatorField">
<field-validator type="url">
<message><![CDATA[ must be a valid url if supplied ]]></message>
</field-validator>
</field>
<field name="stringLengthValidatorField">
<field-validator type="stringlength">
<param name="maxLength">4</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message><![CDATA[ must be a String of a specific greater than 1 less than 5 if specified ]]></message>
</field-validator>
</field>
<field name="regexValidatorField">
<field-validator type="regex">
<param name="expression">.*\.txt</param>
<message><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></message>
</field-validator>
</field>
<field name="fieldExpressionValidatorField">
<field-validator type="fieldexpression">
<param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
<message><![CDATA[ must be the same as the Required Validator Field if specified ]]></message>
</field-validator>
</field>
</validators>
<!-- END SNIPPET: fieldValidatorsExample -->
@@ -1,68 +0,0 @@
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- START SNIPPET: fieldValidatorsExample -->
<validators>
<field name="requiredValidatorField">
<field-validator type="required">
<message><![CDATA[ required ]]></message>
</field-validator>
</field>
<field name="requiredStringValidatorField">
<field-validator type="requiredstring">
<param name="trim">true</param>
<message><![CDATA[ required and must be string ]]></message>
</field-validator>
</field>
<field name="integerValidatorField">
<field-validator type="int">
<param name="min">1</param>
<param name="max">10</param>
<message><![CDATA[ must be integer min 1 max 10 if supplied ]]></message>
</field-validator>
</field>
<field name="dateValidatorField">
<field-validator type="date">
<param name="min">01/01/1990</param>
<param name="max">01/01/2000</param>
<message><![CDATA[ must be a min 01-01-1990 max 01-01-2000 if supplied ]]></message>
</field-validator>
</field>
<field name="emailValidatorField">
<field-validator type="email">
<message><![CDATA[ must be a valid email if supplied ]]></message>
</field-validator>
</field>
<field name="urlValidatorField">
<field-validator type="url">
<message><![CDATA[ must be a valid url if supplied ]]></message>
</field-validator>
</field>
<field name="stringLengthValidatorField">
<field-validator type="stringlength">
<param name="maxLength">4</param>
<param name="minLength">2</param>
<param name="trim">true</param>
<message><![CDATA[ must be a String of a specific greater than 1 less than 5 if specified ]]></message>
</field-validator>
</field>
<field name="regexValidatorField">
<field-validator type="regex">
<param name="expression">.*\.txt</param>
<message><![CDATA[ regexValidatorField must match a regexp (.*\.txt) if specified ]]></message>
</field-validator>
</field>
<field name="fieldExpressionValidatorField">
<field-validator type="fieldexpression">
<param name="expression">(fieldExpressionValidatorField == requiredValidatorField)</param>
<message><![CDATA[ must be the same as the Required Validator Field if specified ]]></message>
</field-validator>
</field>
</validators>
<!-- END SNIPPET: fieldValidatorsExample -->
@@ -1 +0,0 @@
i18n.requiredstring=Test String for required Strings...
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- START SNIPPET: nonFieldValidatorsExample -->
<validators>
<validator type="expression">
<param name="expression"><![CDATA[ ( (someText == someTextRetype) && (someTextRetype == someTextRetypeAgain) ) ]]></param>
<message><![CDATA[ all three text must be exactly the same ]]></message>
</validator>
</validators>
<!-- END SNIPPET: nonFieldValidatorsExample -->
@@ -1,23 +0,0 @@
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- START SNIPPET: quizValidators -->
<!--
Add the following DOCTYPE declaration as first line of your XXX-validation.xml file:
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
-->
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>You must enter a name</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">13</param>
<param name="max">19</param>
<message>Only people ages 13 to 19 may take this quiz</message>
</field-validator>
</field>
</validators>
<!-- END SNIPPET: quizValidators -->
@@ -1,27 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<validators>
<field name="name">
<field-validator type="requiredstring">
<message>Name Required</message>
</field-validator>
</field>
<field name="age">
<field-validator type="int">
<param name="min">1</param>
<param name="max">100</param>
<message>Age Required (1-100)</message>
</field-validator>
</field>
<field name="birthday">
<field-validator type="date">
<message>Birthday Required</message>
</field-validator>
</field>
</validators>
@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE validators PUBLIC
"-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
<!-- START SNIPPET: visitorValidatorsExample -->
<validators>
<field name="user">
<field-validator type="visitor">
<param name="context">userContext</param>
<param name="appendPrefix">true</param>
<message>User:</message>
</field-validator>
</field>
</validators>
<!-- END SNIPPET: visitorValidatorExample -->
@@ -0,0 +1,174 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
@@ -0,0 +1,5 @@
Apache Struts
Copyright 2000-2007 The Apache Software Foundation
This product includes software developed by
The Apache Software Foundation (http://www.apache.org/).
@@ -10,15 +10,24 @@
<default-action-ref name="download"/>
<action name="download" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">
<param name="inputPath">\images\struts.gif</param>
<result name="success" type="stream">
<param name="contentType">image/jpeg</param>
<param name="inputName">imageStream</param>
<param name="contentDisposition">filename="logo.png"</param>
<param name="contentType">image/gif</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">filename="struts.gif"</param>
<param name="bufferSize">4096</param>
</result>
</action>
<action name="download2" class="org.apache.struts2.showcase.filedownload.FileDownloadAction">
<param name="inputPath">\images\struts-gif.zip</param>
<result name="success" type="stream">
<param name="contentType">application/zip</param>
<param name="inputName">inputStream</param>
<param name="contentDisposition">filename="struts-gif.zip"</param>
<param name="bufferSize">4096</param>
</result>
</action>
</package>
</struts>
@@ -22,6 +22,7 @@
<result type="velocity">exampleSubmited.vm</result>
<result name="input" type="velocity">example.vm</result>
</action>
<action name="lotsOfOptiontransferselect" class="org.apache.struts2.showcase.LotsOfOptiontransferselectAction" method="input">
<result>lotsOfOptiontransferselect.jsp</result>
</action>
@@ -29,7 +30,15 @@
<result name="input">lotsOfOptiontransferselect.jsp</result>
<result>lotsOfOptiontransferselectSubmit.jsp</result>
</action>
<action name="moreSelects" class="org.apache.struts2.showcase.MoreSelectsAction" method="input">
<result>moreSelects.jsp</result>
</action>
<action name="moreSelectsSubmit" class="org.apache.struts2.showcase.MoreSelectsAction" method="submit">
<result name="input">moreSelects.jsp</result>
<result>moreSelectsSubmit.jsp</result>
</action>
<!-- START SNIPPET: treeExampleDynamicXWorkXml -->
<action name="showDynamicTreeAction" class="org.apache.struts2.showcase.ShowDynamicTreeAction">
@@ -77,24 +77,25 @@
<div class="wrapper">
<h2 class="accessibility">Navigation</h2>
<ul class="clearfix">
<li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
<li><a href="<s:url value="/ajax/index.jsp"/>">AJAX</a></li>
<li><a href="<s:url action="actionChain1!input" namespace="/actionchaining" includeParams="none" />">Action Chaining</a></li>
<li><a href="<s:url action="index" namespace="/config-browser" includeParams="none" />">Config Browser</a></li>
<li><a href="<s:url value="/conversion/index.jsp"/>">Conversion</a></li>
<li><a href="<s:url value="/empmanager/index.jsp"/>">CRUD</a></li>
<li><a href="<s:url value="/wait/index.jsp"/>">Execute & Wait</a></li>
<li><a href="<s:url value="/filedownload/index.jsp"/>">File Download</a></li>
<li><a href="<s:url value="/fileupload" />">File Upload</a></li>
<li><a href="<s:url value="/freemarker/index.jsp"/>">Freemarker</a>
<li><a href="<s:url action="hangmanMenu" namespace="/hangman"/>">Hangman</a></li>
<li><a href="<s:url value="/jsf/index.jsp"/>">JavaServer Faces</a></li>
<li><a href="<s:url value="/person/index.jsp"/>">Person Manager</a></li>
<li><a href="<s:url value="/tags/index.jsp"/>">Tags</a></li>
<li><a href="<s:url value="/tiles/index.action" />">Tiles</a></li>
<li><a href="<s:url value="/token/index.jsp"/>">Token</a></li>
<li><a href="<s:url value="/validation/index.jsp"/>">Validation</a></li>
<li class="last"><a href="<s:url value="/help.jsp"/>">Help</a></li>
<li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
<li><a href="<s:url value="/ajax/index.jsp"/>">Ajax</a></li>
<li><a href="<s:url value="/chat/index.jsp"/>">Ajax Chat</a></li>
<li><a href="<s:url action="actionChain1!input" namespace="/actionchaining" includeParams="none" />">Action Chaining</a></li>
<li><a href="<s:url action="index" namespace="/config-browser" includeParams="none" />">Config Browser</a></li>
<li><a href="<s:url value="/conversion/index.jsp"/>">Conversion</a></li>
<li><a href="<s:url value="/empmanager/index.jsp"/>">CRUD</a></li>
<li><a href="<s:url value="/wait/index.jsp"/>">Execute & Wait</a></li>
<li><a href="<s:url value="/filedownload/index.jsp"/>">File Download</a></li>
<li><a href="<s:url value="/fileupload" />">File Upload</a></li>
<li><a href="<s:url value="/freemarker/index.jsp"/>">Freemarker</a>
<li><a href="<s:url action="hangmanMenu" namespace="/hangman"/>">Hangman</a></li>
<li><a href="<s:url value="/jsf/index.jsp"/>">JavaServer Faces</a></li>
<li><a href="<s:url value="/person/index.jsp"/>">Person Manager</a></li>
<li><a href="<s:url value="/tags/index.jsp"/>">Tags</a></li>
<li><a href="<s:url value="/tiles/index.action" />">Tiles</a></li>
<li><a href="<s:url value="/token/index.jsp"/>">Token</a></li>
<li><a href="<s:url value="/validation/index.jsp"/>">Validation</a></li>
<li class="last"><a href="<s:url value="/help.jsp"/>">Help</a></li>
</ul>
</div>
<hr/>
@@ -1,62 +0,0 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Ajax Examples</title>
<!--// START SNIPPET: common-include-->
<jsp:include page="/ajax/commonInclude.jsp"/>
<!--// END SNIPPET: common-include-->
</head>
<body>
This should have the month label all on one line (problem in IE) appears fine in FF though.
<s:paneldatepicker id="foo" language="en-us" displayWeeks="1" staticDisplay="true"/>
<p>A calendar in your locale, or the closest thing to it we currently provide</p>
<s:datepicker id="test" cssStyle="border:1px solid red;padding:1px;"/>
<p>Same as above, but Friday is the first day of the week. WOOHOO! value="today"</p>
<s:datepicker value="today" weekStartsOn="5"/>
<p>Same as first, but with only 3 weeks displayed</p>
<s:datepicker displayWeeks="3"/>
<p>Same as first, but with adjustWeeks="true"</p>
<s:datepicker adjustWeeks="true"/>
<p>Same as first, with startDate of 10 September 2006</p>
<s:datepicker startDate="2006-09-10"/>
<p>Same as first, with endDate of 10 September 2006</p>
<s:datepicker endDate="2006-09-10"/>
<p>Same as first, with startDate of 1 January 2006 and endDate of 31 December 2006</p>
<s:datepicker startDate="2006-01-01" endDate="2006-12-31"/>
<p>Same as first, with startDate of 10 September 2006 and endDate of 24 September 2006 (note how the controls<br/>
are disabled). This is considered a static display, because the range of startDate and endDate is less than the displayWeeks.</p>
<s:datepicker startDate="2006-09-10" endDate="2006-09-24"/>
<p>Same as first, with startDate of 23 September 2006 and endDate of 10 October 2006 (note where the calendar<br/>
display starts since the range overlaps the end of a month and the beginning of a month and how the controls are disabled).<br/>
This is considered a static display, because the range of startDate and endDate is less than the displayWeeks.</p>
<s:datepicker startDate="2006-09-23" endDate="2006-10-10"/>
<p>Same as first with staticDisplay=true and an initial of value="2005-12-25" (Sunday, December 25, 2005)</p>
<s:datepicker staticDisplay="true" value="2005-12-25"/>
<p>now on to the locale stuff...</p>
<p>en-us locale</p>
<s:datepicker language="en-us" />
<p>nl-nl locale</p>
<s:datepicker language="nl-nl" />
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,39 +0,0 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Ajax Examples</title>
<!--// START SNIPPET: common-include-->
<jsp:include page="/ajax/commonInclude.jsp"/>
<!--// END SNIPPET: common-include-->
</head>
<body>
<p>toggleTye="wipe":</p>
<s:dropdowndatetimepicker value="2006-10-31" toggleType="wipe" toggleDuration="300" name="test"/>
<p>toggleTye="explode":</p>
<s:dropdowndatetimepicker value="2006-07-22" toggleType="explode" toggleDuration="500"/>
<p>toggleTye="fade":</p>
<s:dropdowndatetimepicker value="2006-06-30" toggleType="fade" toggleDuration="500"/>
<p>With value="today"</p>
<s:dropdowndatetimepicker name="dddp1" value="today" />
<p>US format, empty</p>
<s:dropdowndatetimepicker name="dddp2" language="en-us" />
<p>US format with initial date of 2006-06-26</p>
<s:dropdowndatetimepicker name="dddp3" value="2006-06-26" language="en-us" />
<p>With initial date of 1969-04-25 and a custom format dd/MM/yyyy</p>
<s:dropdowndatetimepicker name="dddp5" value="1969-04-25" displayFormat="dd/MM/yyyy" />
<p>In German:</p>
<s:dropdowndatetimepicker name="dddp7" value="2006-06-28" language="de" />
<p>In Dutch:</p>
<s:dropdowndatetimepicker name="dddp8" value="2006-06-28" language="nl" />
<p>US format with initial date of 2006-06-26 and long formatting (parse not supported)</p>
<s:dropdowndatetimepicker name="dddp12" value="2006-06-26" formatLength="long" language="en-us" />
<p>German format with initial date of 2006-06-26 and long formatting (parse not supported)</p>
<s:dropdowndatetimepicker name="dddp13" value="2006-06-26" formatLength="long" language="de" />
<br/>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -1,45 +0,0 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Ajax Examples</title>
<!--// START SNIPPET: common-include-->
<jsp:include page="/ajax/commonInclude.jsp"/>
<!--// END SNIPPET: common-include-->
</head>
<body>
toggleTye="wipe":
<s:dropdowndatetimepicker type="time" value="10:30" toggleType="wipe" toggleDuration="300"/>
<br/>
toggleTye="explode":
<s:dropdowndatetimepicker type="time" value="13:00" toggleType="explode" toggleDuration="500"/>
<br/>
toggleTye="fade":
<s:dropdowndatetimepicker type="time" value="13:00" toggleType="fade" toggleDuration="500"/>
<br/>
With value="today":
<s:dropdowndatetimepicker type="time" name="dddp1" value="today" />
<br/>
US format, empty
<s:dropdowndatetimepicker type="time" name="dddp2" language="en-us" />
<br/>
In German:
<s:dropdowndatetimepicker type="time" name="dddp7" language="de" />
<br/>
In Dutch:
<s:dropdowndatetimepicker type="time" name="dddp8" language="nl" />
<br/>
<br/>
<s:include value="../footer.jsp"/>
</body>
</html>
+7 -9
View File
@@ -5,21 +5,19 @@
<h1>AJAX Example</h1>
Note: these examples have only been tested under FireFox 1.5 and IE 6.
<p>
Note: The Ajax tags are experimental. These examples have only been tested under FireFox 1.5 and IE 6.
</p>
<ul>
<li><a href="remotediv">Remote div tag</a></li>
<li><a href="autocompleter">Autocompleter combobox tag</a></li>
<li><a href="remotebutton">Remote button tag</a></li>
<li><a href="remotediv">Remote div tag</a></li>
<li><a href="remotelink">Remote link tag</a></li>
<li><a href="remotebutton">Remote button tag</a></li>
<li><a href="tabbedpanel">Tabbed panel</a></li>
<li><a href="datepicker">DatePicker</a></li>
<li><a href="dropdowndatepicker">Dropdown DatePicker</a></li>
<li><a href="timepicker">TimePicker</a></li>
<li><a href="dropdowntimepicker">Dropdown TimePicker</a></li>
<li><a href="remoteforms">Remote forms</a></li>
<li><a href="widgets">Widgets </a> (experimental - may not work in all browsers
<li><a href="widgets">Widgets </a> (may not work in all browsers!)
see the <a href="http://www.dojotoolkit.org">dojo website</a> for more information</li>
<li>(broken) <a href="remoteforms">Remote forms</a></li>
</ul>
</body>
</html>
@@ -30,8 +30,8 @@
<br/><br/>
<input type=button value="refresh" onclick="controller.refresh()">
<input type=button value="start timer" onclick="controller.start()">
<input type=button value="stop timer" onclick="controller.stop()">
<input type=button value="start timer" onclick="controller.start()">
<s:url id="ajaxTest" value="/AjaxTest.action" />
@@ -4,7 +4,7 @@
<html>
<head>
<title>Ajax Examples</title>
<jsp:include page="/ajax/commonInclude.jsp"/>
<s:head theme="ajax"/>
<script language="JavaScript" type="text/javascript">
function doSomething() {
@@ -59,7 +59,7 @@ Remote form evaluating suplied JS on completion:<br/>
<input type='text' name='data' value='Struts User'>
<s:submit value="GO4" theme="ajax" afterLoading="alert('form submitted');"/>
<s:submit value="GO4" theme="ajax"/>
</s:form>
@@ -73,7 +73,7 @@ Remote form replacing the forms content after confirming results:<br/>
<input type='text' name='data' value='Struts User'>
<s:submit value="GO3" theme="ajax" targets="theForm5" beforeLoading="confirm('sure?');"/>
<s:submit value="GO3" theme="ajax" targets="theForm5" />
</s:form>
@@ -87,7 +87,7 @@ Remote form replacing the forms content after running a function:<br/>
<input type='text' name='data' value='Struts User'>
<s:submit value="GO3" theme="ajax" targets="theForm6" beforeLoading="doSomething();"/>
<s:submit value="GO3" theme="ajax" targets="theForm6" />
</s:form>
@@ -105,7 +105,5 @@ A form with no remote submit (so should not be ajaxified):<br/>
</s:form>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -12,10 +12,10 @@
<p>
<ol>
<li><a href="example2.jsp">A local tabbed panel width fixed size (doLayout="true")</a></li>
<li><a href="example3.jsp">A remote(href != "") and local tabbed panel</a></li>
<li><a href="example3.jsp">A remote (href != "") and local tabbed panel</a></li>
<li><a href="example1.jsp">Various remote and local tabbed panels (with enclosed tabbed pannels) with layout (doLayout="false")</a></li>
<li><a href="example4.jsp">A local tabbed panel width fixed size (doLayout="true") with close button on tabs(closeButton="tab"), and tabs on the right (labelposition="righ")</a></li>
<li><a href="example5.jsp">A local tabbed panel width fixed size (doLayout="true") with close button on the tab pane(closeButton="pane"), and tabs on the bottom (labelposition="bottom")</a></li>
<li><a href="example4.jsp">A local tabbed panel width fixed size (doLayout="true") with close button on tabs(closeButton="tab"), and tabs on the right (labelposition="right")</a></li>
<li><a href="example5.jsp">A local tabbed panel width fixed size (doLayout="true") with close button on the tab pane (closeButton="pane"), and tabs on the bottom (labelposition="bottom")</a></li>
</ol>
@@ -1,35 +0,0 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>TimePicker tag</title>
<%@ include file="/ajax/commonInclude.jsp" %>
</head>
<body>
<h2>Examples</h2>
Normal English-US timepicker:
<s:timepicker language="en-us"/>
<br>
Set time to current time (useDefaultTime="true")
<s:timepicker id="tp0" useDefaultTime="true"/>
<br>
Set minutes to current time (useDefaultTime="true" and useDefaultMinutes="true")
<s:timepicker id="tp1" useDefaultTime="true" useDefaultMinutes="true"/>
<br>
Set time to 9:43(value="9:43")
<s:timepicker id="tp2" value="9:43"/>
<br>
Set time to 1:00PM(value="13:00")
<s:timepicker id="tp3" value="13:00"/>
<br>
<s:include value="../footer.jsp"/>
</body>
</html>
@@ -23,7 +23,7 @@
<s:textfield label="Employee Id" name="currentEmployee.empId"/>
<s:textfield label="%{getText('employee.firstName')}" name="currentEmployee.firstName"/>
<s:textfield label="%{getText('employee.lastName')}" name="currentEmployee.lastName"/>
<s:datepicker label="Birthdate" name="currentEmployee.birthDate"/>
<s:datetimepicker label="Birthdate" name="currentEmployee.birthDate"/>
<s:textfield label="Salary" name="currentEmployee.salary"/>
<s:checkbox fieldValue="true" label="Married" name="currentEmployee.married"/>
<s:combobox list="availablePositions" label="Position" name="currentEmployee.position"/>
@@ -1,13 +1,22 @@
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Showcase</title>
<title>Showcase - Fileupload</title>
</head>
<body>
<h1>File Download Example</h1>
Click this <s:url id="url" action="download"/><s:a href="%{url}">link</s:a> to download Struts logo.
<ul>
<li>
<s:url id="url" action="download"/><s:a href="%{url}">Download image file.</s:a>
The browser should display the Struts logo.
</li>
<li>
<s:url id="url" action="download2"/><s:a href="%{url}">Download ZIP file.</s:a>
The browser should prompt for a location to save the ZIP file.
</li>
</ul>
</body>
</html>
@@ -5,14 +5,14 @@
</head>
<body>
<ul>
<li>
<@s.url id="url" action="hangmanAjax" namespace="/hangman" />
<@s.a href="%{#url}">Hangman (Ajax)</@s.a>
</li>
<li>
<@s.url id="url" action="hangmanNonAjax" namespace="/hangman" />
<@s.a href="%{#url}">Hangman (Non Ajax)</@s.a>
</li>
<li>
<@s.url id="url" action="hangmanAjax" namespace="/hangman" />
<@s.a href="%{#url}">Hangman (Ajax - Experimental)</@s.a>
</li>
</ul>
</body>
</html>
Binary file not shown.
+21 -37
View File
@@ -12,33 +12,36 @@
</head>
<body>
<p>
The Struts Showcase demonstrates a variety of use cases and tag usages.
Essentially, the application exercises various framework features in isolation.
<em>The Showcase is <strong>not</strong> meant as a "best practices" example.</em>
</p>
<ul>
<li>
For more "by example" solutions,
see the <a href="http://struts.apache.org/2.x/docs/cookbook.html">Struts Cookbook</a> pages.
</li>
<li>
For a "best practices" example, see the
<a href="http://planetstruts.org/struts2-mailreader/">MailReader application</a> Tour and source code.
</li>
</ul>
<blockquote>
<p>
The Struts Showcase demonstrates a variety of use cases and tag usages.
Essentially, the application exercises various framework features in isolation.
<em>The Showcase is <strong>not</strong> meant as a "best practices" example.</em>
</p>
<ul>
<li>
For more "by example" solutions,
see the <a href="http://struts.apache.org/2.x/docs/cookbook.html">Struts Cookbook</a> pages.
</li>
<li>
For a "best practices" example, see the
<a href="http://planetstruts.org/struts2-mailreader/">MailReader application</a> Tour and source code.
</li>
</ul>
</blockquote>
<p>
<%-- THIS LIST IS MAINTAINED IN WEB-INF/decorators/main.jsp TO CREATE THE MENU BAR -- EDIT THERE AND COPY HERE --%>
<ul>
<li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
<li><a href="<s:url value="/ajax/index.jsp"/>">AJAX</a></li>
<li><a href="<s:url value="/showcase.jsp"/>">Home</a></li>
<li><a href="<s:url value="/ajax/index.jsp" />">Ajax Theme for Struts Tags</a></li>
<li><a href="<s:url value="/chat/index.jsp"/>">Ajax Chat</a>
<li><a href="<s:url action="actionChain1!input" namespace="/actionchaining" includeParams="none" />">Action Chaining</a></li>
<li><a href="<s:url action="index" namespace="/config-browser" includeParams="none" />">Config Browser</a></li>
<li><a href="<s:url value="/conversion/index.jsp"/>">Conversion</a></li>
<li><a href="<s:url value="/empmanager/index.jsp"/>">CRUD</a></li>
<li><a href="<s:url value="/wait/index.jsp"/>">Execute & Wait</a></li>
<li><a href="<s:url value="/filedownload/index.jsp"/>">File Download</a></li>
<li><a href="<s:url value="/fileupload" />">File Upload</a></li>
<li><a href="<s:url value="/fileupload/index.jsp" />">File Upload</a></li>
<li><a href="<s:url value="/freemarker/index.jsp"/>">Freemarker</a>
<li><a href="<s:url action="hangmanMenu" namespace="/hangman"/>">Hangman</a></li>
<li><a href="<s:url value="/jsf/index.jsp"/>">JavaServer Faces</a></li>
@@ -55,26 +58,7 @@
These examples are under development and may not be fully operational.
</p>
<ul>
<li>AJAX / Remote Forms</li>
<li><a href="<s:url value="/chat/index.jsp"/>">Chat (AJAX)</a>
<li><a href="<s:url action="guess" namespace="/continuations" />">Continuations</a></li>
<li>Conversion<ul>
<li>Address</li>
<li>Java 5 Enum</li>
</ul>
</li>
<li>Tabs / Non-UI Tags<ul>
<li>
Action Prefix / Redirect Action
</li>
</ul>
</li>
<li>Tags / UI Tags<ul>
<li>UI Example</li>
<li>UI Example (Velocity)</li>
</ul>
</li>
</ul>
</p>
@@ -0,0 +1,23 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>UI Tags Example</title>
<s:head />
</head>
<body>
<table>
<s:datetimepicker label="toggleType='wipe'" value="2006-10-31" toggleType="wipe" toggleDuration="300" name="test"/>
<s:datetimepicker label="toggleType='explode'" value="2006-07-22" toggleType="explode" toggleDuration="500"/>
<s:datetimepicker label="toggleType='fade'" value="2006-06-30" toggleType="fade" toggleDuration="500"/>
<s:datetimepicker label="With value='today'" name="dddp1" value="today" />
<s:datetimepicker label="US format, empty" name="dddp2" language="en-us" />
<s:datetimepicker label="US format with initial date of 2006-06-26" name="dddp3" value="2006-06-26" language="en-us" />
<s:datetimepicker label="With initial date of 1969-04-25 and a custom format dd/MM/yyyy" name="dddp5" value="25/04/1969" displayFormat="dd/MM/yyyy" />
<s:datetimepicker label="In German" name="dddp7" value="2006-06-28" language="de" />
<s:datetimepicker label="In Dutch" name="dddp8" value="2006-06-28" language="nl" />
<s:datetimepicker label="US format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp12" value="2006-06-26" formatLength="long" language="en-us" />
<s:datetimepicker label="German format with initial date of 2006-06-26 and long formatting (parse not supported)" name="dddp13" value="2006-06-26" formatLength="long" language="de" />
</table>
</body>
</html>
@@ -19,14 +19,14 @@
name="name"
tooltip="Enter your Name here" />
<s:datepicker
<s:datetimepicker
tooltip="Select Your Birthday"
label="Birthday"
name="birthday" />
<s:textarea
tooltip="Enter your Biography"
label="Biograph"
label="Biography"
name="bio"
cols="20"
rows="3"/>
@@ -12,8 +12,8 @@
#sform ("action=exampleSubmitVelocity" "method=post" "enctype=multipart/form-data")
#stextfield ("label=Name" "name=name")
#sdatepicker ("label=Birthday" "name=birthday")
#stextarea ("label=Biograph" "name=bio" "cols=20" "rows=3")
#sdatetimepicker ("label=Birthday" "name=birthday")
#stextarea ("label=Biography" "name=bio" "cols=20" "rows=3")
#sselect ("label=Favourite Color" "list={'Red', 'Blue', 'Green'}" "name=favouriteColor" "emptyOption=true" "headerKey=None" "headerValue=None")
#sselect ("label=Favourite Language" "list=favouriteLanguages" "name=favouriteLanguage" "listKey=key" "listValue=description" "emptyOption=true" "headerKey=None" "headerValue=None")
#scheckboxlist ("label=Friends" "list={'Patrick', 'Jason', 'Jay', 'Toby', 'Rene'}" "name=friends")
@@ -11,9 +11,12 @@
<li><s:url id="url" namespace="/tags/ui" action="example" method="input" /><s:a href="%{url}">UI Example</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="exampleVelocity" method="input" /><s:a href="%{url}">UI Example (Velocity)</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="lotsOfOptiontransferselect" method="input" /><s:a href="%{url}">Option Transfer Select UI Example</s:a></li>
<li><s:url id="url" namespace="/tags/ui" action="moreSelects" method="input" /><s:a href="%{url}">More Select Box UI Examples</s:a></li>
<li><s:url id="url" namespace="/tags/ui" value="treeExampleStatic.jsp" /><s:a href="%{url}">Tree Example (static)</s:a>
<li><s:url id="url" namespace="/tags/ui" action="showDynamicTreeAction"/><s:a href="%{url}">Tree Example (dynamic)</s:a>
<li><s:url id="url" value="componentTagExample.jsp"/><s:a href="%{#url}">Component Tag Example</s:a>
<li><a href="datepicker">DateTime picker tag - Pick a date</a></li>
<li><a href="timepicker">DateTime picker tag - Pick a time</a></li>
<%--li><s:url id="url" namespace="/tags/ui" action="populateUsingIterator" method="input" /><s:a href="%{url}">UI population using iterator tag</s:a></li--%>
</ul>
</body>
@@ -68,42 +68,26 @@
/>
<br/>
<s:updownselect
tooltip="Prioritized Your Favourite Cartoon Characters"
label="Prioritised Favourite Cartoon Characters"
list="defaultFavouriteCartoonCharacters"
name="prioritisedFavouriteCartoonCharacters"
headerKey="-1"
headerValue="--- Please Order ---"
emptyOption="true" />
<br/>
<s:updownselect
tooltip="Prioritise Your Favourite Cars"
label="Prioritised Favourite Cars"
list="defaultFavouriteCars"
name="prioritisedFavouriteCars"
headerKey="-10"
headerValue="--- Please Order ---" />
<br/>
<s:updownselect
tooltip="Prioritised Your Favourite Countries"
label="Prioritised Favourite Countries"
list="defaultFavouriteCountries"
name="prioritisedFavouriteCountries"
emptyOption="true"
value="{'england', 'brazil'}" />
<s:optiontransferselect
tooltip="Pick One at a Time"
label="Favourite Sport"
leftTitle="Non Favourite Sports"
rightTitle="Favourite Sports"
name="nonFavouriteSports"
list="defaultNonFavoriteSports"
doubleName="favouriteSports"
doubleList="defaultFavouriteSports"
size="1" multiple="false"
doubleSize="5" doubleMultiple="true"
allowAddAllToLeft="false"
allowAddAllToRight="false"
allowSelectAll="false"
/>
<br/>
<s:submit value="Submit It" />
<br/>
</s:form>
</body>
</html>
@@ -71,26 +71,19 @@
</s:iterator>
</td>
</tr>
<tr>
<td>Prioritised Favourite Cartoon Characters:</td>
<tr>
<td>Favourite Sports:</td>
<td>
<s:iterator value="prioritisedFavouriteCartoonCharacters" status="stat">
<s:iterator value="favouriteSports" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Prioritised Favourite Cars:</td>
<tr>
<td>Non Favourite Sports:</td>
<td>
<s:iterator value="prioritisedFavouriteCars" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Prioritised Favourite Countries</td>
<td>
<s:iterator value="prioritisedFavouriteCountries" status="stat">
<s:iterator value="nonfavouriteSports" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
@@ -0,0 +1,61 @@
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Show Case - Tags - UI Tags - Optiontransferselect</title>
<s:head />
</head>
<body>
<s:form action="moreSelectsSubmit" namespace="/tags/ui" method="post">
<s:updownselect
tooltip="Prioritized Your Favourite Cartoon Characters"
label="Prioritised Favourite Cartoon Characters"
list="defaultFavouriteCartoonCharacters"
name="prioritisedFavouriteCartoonCharacters"
headerKey="-1"
headerValue="--- Please Order ---"
emptyOption="true" />
<br/>
<s:updownselect
tooltip="Prioritise Your Favourite Cars"
label="Prioritised Favourite Cars"
list="defaultFavouriteCars"
name="prioritisedFavouriteCars"
headerKey="-10"
headerValue="--- Please Order ---" />
<br/>
<s:updownselect
tooltip="Prioritised Your Favourite Countries"
label="Prioritised Favourite Countries"
list="defaultFavouriteCountries"
name="prioritisedFavouriteCountries"
emptyOption="true"
value="{'england', 'brazil'}" />
<br/>
<s:inputtransferselect
list="defaultFavouriteNumbers"
name="favouriteNumbers"
label="Numbers"/>
<s:select label="Favourite Cities"
list="availableCities"
name="favouriteCities"
value="%{defaultFavouriteCities}"
multiple="true" size="4"/>
<s:submit value="Submit It" />
<br/>
</s:form>
</body>
</html>
@@ -0,0 +1,53 @@
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Showcase - Tags - UI Tags - Select Boxes Result</title>
</head>
<body>
<table>
<tr>
<td>Prioritised Favourite Cartoon Characters:</td>
<td>
<s:iterator value="prioritisedFavouriteCartoonCharacters" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Prioritised Favourite Cars:</td>
<td>
<s:iterator value="prioritisedFavouriteCars" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Prioritised Favourite Countries</td>
<td>
<s:iterator value="prioritisedFavouriteCountries" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Favourite Cities</td>
<td>
<s:iterator value="favouriteCities" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
<tr>
<td>Favourite Numbers</td>
<td>
<s:iterator value="favouriteNumbers" status="stat">
<s:property value="%{#stat.count}" />.<s:property />&nbsp;
</s:iterator>
</td>
</tr>
</table>
</body>
</html>
@@ -0,0 +1,20 @@
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>UI Tags Example</title>
<s:head />
</head>
<body>
<table>
<s:datetimepicker label="toggleType='wipe'" type="time" value="10:30" toggleType="wipe" toggleDuration="300"/>
<s:datetimepicker label="toggleType='explode'" type="time" value="13:00" toggleType="explode" toggleDuration="500"/>
<s:datetimepicker label="toggleType='fade'" type="time" value="13:00" toggleType="fade" toggleDuration="500"/>
<s:datetimepicker label="With value='today'" name="dddp4" type="time" value="today" />
<s:datetimepicker label="US format, empty" name="dddp5" type="time" language="en-us" />
<s:datetimepicker label="US format, 13:00 hours" name="dddp6" type="time" value="13:00" language="en-us" />
<s:datetimepicker label="In German" name="dddp7" type="time" value="13:00" language="de" />
<s:datetimepicker label="In Dutch" name="dddp8" type="time" value="13:00" language="nl" />
</table>
</body>
</html>
@@ -26,15 +26,15 @@
<s:url id="storeMessageAcrossRequestExample" value="/validation/storeErrorsAcrossRequestExample.jsp" />
<ul>
<li><s:a href="%{fieldValidatorUrl}">Field Validators</s:a></li>
<li><s:a href="%{clientSideValidationUrl}">Field Validators with client-side JavaScript</s:a></li>
<li><s:a href="%{nonFieldValidatorUrl}">Non Field Validator</s:a></li>
<li><s:a href="%{storeMessageAcrossRequestExample}">Store across request using MessageStoreInterceptor (Example)</s:a></li>
<li>(broken) <s:a href="%{quizAjax}">Validation (ajax)</s:a></li>
<li><s:a href="%{quizBasic}">Validation (basic)</s:a></li>
<li><s:a href="%{quizClient}">Validation (client)</s:a></li>
<li><s:a href="%{quizClientCss}">Validation (client using css_xhtml theme)</s:a></li>
<li><s:a href="%{quizAjax}">Validation (ajax)</s:a></li>
<li><s:a href="%{fieldValidatorUrl}">Field Validators</s:a></li>
<li><s:a href="%{nonFieldValidatorUrl}">Non Field Validator</s:a></li>
<li><s:a href="%{visitorValidatorUrl}">Visitor Validator</s:a></li>
<li><s:a href="%{clientSideValidationUrl}">Client side validation using JavaScript</s:a></li>
<li><s:a href="%{storeMessageAcrossRequestExample}">Store across request using MessageStoreInterceptor (Example)</s:a></li>
<li><s:a href="%{backToShowcase}">Back To Showcase</s:a>
</ul>
</body>
+24 -8
View File
@@ -33,7 +33,7 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<scm>
@@ -103,7 +103,7 @@
<groupId>opensymphony</groupId>
<artifactId>xwork</artifactId>
<classifier>javadoc</classifier>
<version>2.0-RC1</version>
<version>2.0.0</version>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/xwork-apidocs</outputDirectory>
@@ -111,6 +111,28 @@
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<id>cwiki-docs</id>
<phase>process-resources</phase>
<configuration>
<tasks>
<mkdir dir="${project.build.directory}/cwiki"/>
<get src="http://struts.apache.org/2.x/docs.zip"
dest="${project.build.directory}/docs.zip"
ignoreerrors="false"/>
<unzip src="${project.build.directory}/docs.zip"
dest="${project.build.directory}/cwiki"/>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.0.1</version>
@@ -142,12 +164,6 @@
<version>${version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-all</artifactId>
<version>${version}</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
+6
View File
@@ -67,6 +67,12 @@
<outputDirectory>docs/struts2-core</outputDirectory>
</fileSet>
<!-- Include the Confluence docs in the assembly -->
<fileSet>
<directory>target/cwiki</directory>
<outputDirectory>docs</outputDirectory>
</fileSet>
<!-- Plugins -->
<!--
<fileSet>
+1 -1
View File
@@ -1,7 +1,7 @@
Retrotranslator: a Java bytecode transformer that translates Java classes
compiled with JDK 5.0 into classes that can be run on JVM 1.4.
Copyright (c) 2005, 2006 Taras Puchko
Copyright (c) 2005 - 2007 Taras Puchko
All rights reserved.
Redistribution and use in source and binary forms, with or without
+278 -171
View File
@@ -48,6 +48,7 @@ and concurrency utilities
<li>Enhanced for loop (for-each loop)</li>
<li>Varargs (variable arguments)</li>
<li>Covariant return types</li>
<li>Formatted output</li>
<li>Static import</li>
<li>Concurrency utilities</li>
<li>Collections framework enhancements</li>
@@ -63,19 +64,19 @@ and concurrency utilities
Compile your classes with JDK 5.0 and put them into some directory, e.g. <code>myclasses</code>.
</li>
<li>
Go to the unzipped directory <code>Retrotranslator-<i>n.n.n</i>-bin</code> and execute:<br>
Go to the unzipped directory and execute:<br>
<code>java -jar retrotranslator-transformer-<i>n.n.n</i>.jar -srcdir myclasses</code>
</li>
<li>
If you use Java 5 API put <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code> and
<code>backport-util-concurrent.jar</code> into the classpath of your application.
<code>backport-util-concurrent-<i>n.n</i>.jar</code> into the classpath of your application.
</li>
<li>
Run or debug the application as usual on any JVM 1.4, preferably JRE 1.4.2.
Run or debug the application as usual on J2SE 1.4.x, preferably 1.4.2.
</li>
</ol>
<p>The full command line syntax:<br>
<p><a name="syntax">The full command line syntax:</a><br>
<code>java -jar retrotranslator-transformer-<i>n.n.n</i>.jar &lt;options&gt;</code>
<br>or<br>
<code>java -cp retrotranslator-transformer-<i>n.n.n</i>.jar net.sf.retrotranslator.transformer.Retrotranslator &lt;options&gt;</code></p>
@@ -83,24 +84,74 @@ and concurrency utilities
<tr><th>Option</th><th>Description</th><th>Default</th></tr>
<tr>
<td nowrap><code>-srcdir</code></td>
<td>Directory with classes compiled using JDK 5.0 (may be specified several times).</td>
<td>The directory with classes that should be translated (may be specified several times).</td>
<td>-</td>
</tr>
<tr>
<td nowrap><code>-srcjar</code></td>
<td>JAR file with classes compiled using JDK 5.0 (may be specified several times).</td>
<td>The directory with classes that should be translated (may be specified several times).</td>
<td>-</td>
</tr>
<tr>
<td nowrap><code>-destdir</code></td>
<td>Directory to place classes compatible with J2SE 1.4.</td>
<td>The directory to place translated classes.</td>
<td>Location of sources</td>
</tr>
<tr>
<td nowrap><code>-destjar</code></td>
<td>JAR file to place classes compatible with J2SE 1.4.</td>
<td>The JAR file to place translated classes.</td>
<td>Location of sources</td>
</tr>
<tr>
<td nowrap><a name="option_advanced"><code>-advanced</code></a></td>
<td>Whether to use alternative implementations of Java 1.4 classes and methods for better Java 5 compatibility.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-verify</code></td>
<td>Asks the translator to examine translated bytecode for references to classes, methods, or fields
that cannot be found in the provided classpath.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-classpath</code></td>
<td>The classpath for verification including <code>rt.jar</code>, <code>jce.jar</code>,
<code>jsse.jar</code> (from JRE 1.4), <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code>,
and <code>backport-util-concurrent-<i>n.n</i>.jar</code>.</td>
<td>Current classpath</td>
</tr>
<tr>
<td nowrap><code>-srcmask</code></td>
<td>The wildcard pattern specifying files that should be translated (either bytecode or UTF-8 text),
e.g. "<code>*.class;*.tld</code>". There are three special characters: "<code>*?;</code>".
</td>
<td>*.class</td>
</tr>
<tr>
<td nowrap><code>-embed</code></td>
<td>Package name for a private copy of <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code> and
<code>backport-util-concurrent-<i>n.n</i>.jar</code> to be put into <code>-destdir</code> or <code>-destjar</code>.
This makes your application independent of other versions of Retrotranslator present in the classpath.
</td>
<td>-</td>
</tr>
<tr>
<td nowrap><a name="option_backport"><code>-backport</code></a></td>
<td>Informs the translator about <a href="#extension">user-defined</a> backport packages.
Package names should be separated by semicolons.</td>
<td>-</td>
</tr>
<tr>
<td nowrap><code>-target</code></td>
<td>To make Java 6 classes compatible with Java 5 set this option to 1.5 and supply
<a href="#extension">user-defined</a> backport packages via the <code>backport</code> option.</td>
<td>1.4</td>
</tr>
<tr>
<td nowrap><code>-lazy</code></td>
<td>Asks the translator to only transform classes compiled with a <code>target</code> greater than the current one.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-stripsign</code></td>
<td>Asks the translator to strip signature (generics) information.</td>
@@ -111,42 +162,6 @@ and concurrency utilities
<td>Asks the translator for verbose output.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-lazy</code></td>
<td>Asks the translator to transform only Java 5 classes.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-advanced</code></td>
<td>Allows to override Java 1.4 methods for better Java 5 compatibility.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-verify</code></td>
<td>Asks the translator for warnings when references to unknown classes, methods, or fields are found.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-classpath</code></td>
<td>The classpath to use for verification including <code>rt.jar</code>, <code>jce.jar</code>,
<code>jsse.jar</code> (from JRE 1.4), <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code>,
and <code>backport-util-concurrent.jar</code>.</td>
<td>Current classpath</td>
</tr>
<tr>
<td nowrap><code>-srcmask</code></td>
<td>Files to translate (either bytecode or UTF-8 text) , e.g. "<code>*.class;*.tld</code>".
Only three special characters are supported: "<code>*?;</code>".</td>
<td>*.class</td>
</tr>
<tr>
<td nowrap><code>-embed</code></td>
<td>Package name for a private copy of <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code> and
<code>backport-util-concurrent.jar</code> to be put into <code>-destdir</code> or <code>-destjar</code>.
This makes your application independent of other versions of Retrotranslator present in the classpath.
</td>
<td>-</td>
</tr>
<tr>
<td nowrap><code>-retainapi</code></td>
<td>Asks the translator to modify classes for JVM 1.4 compatibility but keep use of Java 5 API.
@@ -155,6 +170,11 @@ and concurrency utilities
or the implicit <code>valueOf</code> method call for autoboxing.</td>
<td>Off</td>
</tr>
<tr>
<td nowrap><code>-retainflags</code></td>
<td>Asks the translator to keep Java 5 specific access modifiers.</td>
<td>Off</td>
</tr>
</table>
<p>
For example, if you have a Java 5 application <code>myapplication5.jar</code> you can use the following command
@@ -174,24 +194,81 @@ and concurrency utilities
<tr><th>Attribute</th><th>Description</th><th>Default</th></tr>
<tr>
<td><code>srcdir</code></td>
<td>Directory with classes compiled using JDK 5.0.</td>
<td>The directory with classes that should be translated.</td>
<td>-</td>
</tr>
<tr>
<td><code>srcjar</code></td>
<td>JAR file with classes compiled using JDK 5.0.</td>
<td>The directory with classes that should be translated.</td>
<td>-</td>
</tr>
<tr>
<td><code>destdir</code></td>
<td>Directory to place classes compatible with J2SE 1.4.</td>
<td>The directory to place translated classes.</td>
<td>Location of sources</td>
</tr>
<tr>
<td><code>destjar</code></td>
<td>JAR file to place classes compatible with J2SE 1.4.</td>
<td>The JAR file to place translated classes.</td>
<td>Location of sources</td>
</tr>
<tr>
<td><code>advanced</code></td>
<td>Whether to use alternative implementations of Java 1.4 classes and methods for better Java 5 compatibility.</td>
<td>Off</td>
</tr>
<tr>
<td><code>verify</code></td>
<td>Asks the translator to examine translated bytecode for references to classes, methods, or fields
that cannot be found in the provided classpath.</td>
<td>Off</td>
</tr>
<tr>
<td><code>classpath</code></td>
<td>The classpath for the verification, including <code>rt.jar</code>, <code>jce.jar</code>,
<code>jsse.jar</code> (from JRE 1.4), <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code>,
and <code>backport-util-concurrent-<i>n.n</i>.jar</code>.
</td>
<td>Current classpath</td>
</tr>
<tr>
<td><code>classpathref</code></td>
<td>The classpath for the verification, given as a reference to a path defined elsewhere.
</td>
<td>Current classpath</td>
</tr>
<tr>
<td><code>srcmask</code></td>
<td>The wildcard pattern specifying files that should be translated (either bytecode or UTF-8 text),
e.g. "<code>*.class;*.tld</code>". There are three special characters: "<code>*?;</code>".
</td>
<td>*.class</td>
</tr>
<tr>
<td><code>embed</code></td>
<td>Package name for a private copy of <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code> and
<code>backport-util-concurrent-<i>n.n</i>.jar</code> to be put into <code>-destdir</code> or <code>-destjar</code>.
This makes your application independent of other versions of Retrotranslator present in the classpath.
</td>
<td>-</td>
</tr>
<tr>
<td><code>backport</code></td>
<td>Informs the translator about <a href="#extension">user-defined</a> backport packages.
Package names should be separated by semicolons.</td>
<td>-</td>
</tr>
<tr>
<td><code>target</code></td>
<td>Set this option to 1.5 and supply <a href="#extension">user-defined</a> backport packages via
the <code>backport</code> option to make Java 6 classes compatible with Java 5.</td>
<td>1.4</td>
</tr>
<tr>
<td><code>lazy</code></td>
<td>Asks the translator to only transform classes compiled with a <code>target</code> greater than the current one.</td>
<td>Off</td>
</tr>
<tr>
<td><code>stripsign</code></td>
<td>Asks the translator to strip signature (generics) information.</td>
@@ -202,43 +279,6 @@ and concurrency utilities
<td>Asks the translator for verbose output.</td>
<td>Off</td>
</tr>
<tr>
<td><code>lazy</code></td>
<td>Asks the translator to transform only Java 5 classes.</td>
<td>Off</td>
</tr>
<tr>
<td><code>advanced</code></td>
<td>Allows to override Java 1.4 methods for better Java 5 compatibility.</td>
<td>Off</td>
</tr>
<tr>
<td><code>verify</code></td>
<td>Asks the translator for warnings when references to unknown classes, methods, or fields are found.</td>
<td>Off</td>
</tr>
<tr>
<td><code>classpath</code></td>
<td>The classpath to use for verification including <code>rt.jar</code>, <code>jce.jar</code>,
<code>jsse.jar</code> (from JRE 1.4), <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code>,
and <code>backport-util-concurrent.jar</code>.
</td>
<td>Current classpath</td>
</tr>
<tr>
<td><code>srcmask</code></td>
<td>Files to translate (either bytecode or UTF-8 text) , e.g. "<code>*.class;*.tld</code>".
Only three special characters are supported: "<code>*?;</code>".</td>
<td>*.class</td>
</tr>
<tr>
<td><code>embed</code></td>
<td>Package name for a private copy of <code>retrotranslator-runtime-<i>n.n.n</i>.jar</code> and
<code>backport-util-concurrent.jar</code> to be put into <code>-destdir</code> or <code>-destjar</code>.
This makes your application independent of other versions of Retrotranslator present in the classpath.
</td>
<td>-</td>
</tr>
<tr>
<td><code>retainapi</code></td>
<td>Asks the translator to modify classes for JVM 1.4 compatibility but keep use of Java 5 API.
@@ -247,6 +287,11 @@ and concurrency utilities
or the implicit <code>valueOf</code> method call for autoboxing.</td>
<td>Off</td>
</tr>
<tr>
<td><code>retainflags</code></td>
<td>Asks the translator to keep Java 5 specific access modifiers.</td>
<td>Off</td>
</tr>
<tr>
<td><code>failonwarning</code></td>
<td>Indicates whether the build will fail when there are verification warnings.</td>
@@ -254,8 +299,8 @@ and concurrency utilities
</tr>
</table>
<p>
You may use nested <code>src</code> elements to specify source directories or JAR files, and nested
<code>classpath</code> elements to specify classpath for verification. For example:
You may use nested <code>fileset</code>, <code>jarfileset</code>, and <code>dirset</code> elements to specify
source files and <code>classpath</code> elements to specify classpath. For example:
</p>
<pre>
&lt;path id="classpath"&gt;
@@ -264,7 +309,8 @@ and concurrency utilities
&lt;taskdef name="retrotranslator" classpathref="classpath"
classname="net.sf.retrotranslator.transformer.RetrotranslatorTask" /&gt;
&lt;retrotranslator destdir="build/classes14" verify="true"&gt;
&lt;src path="build/classes15"/&gt;
&lt;fileset dir="build/classes15" includes="**/*.class"&gt;
&lt;jarfileset dir="build/lib15" includes="**/*.jar"&gt;
&lt;classpath location="${java14_home}/jre/lib/rt.jar"/&gt;
&lt;classpath refid="classpath"/&gt;
&lt;/retrotranslator&gt;
@@ -276,16 +322,16 @@ and concurrency utilities
</p>
<h4><a name="idea">How to use Retrotranslator from IntelliJ IDEA?</a></h4>
<p>
To automatically translate and verify classes compiled by <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a>
you may <a href="http://plugins.intellij.net/plugin/?id=145">download a plugin</a>
that generates classes compatible with 1.4 virtual machines from your Java 5 source code.
There is a <a href="http://plugins.intellij.net/plugin/?id=145">plugin</a> to automatically translate and verify
classes compiled by <a href="http://www.jetbrains.com/idea/">IntelliJ IDEA</a>, so you can develop in Java 5 but
run and debug on JRE 1.4.
</p>
<h4><a name="jit">How to use Just-in-Time Retrotranslator?</a></h4>
<p>
JIT Retrotranslator is able to translate at runtime Java classes loaded with any classloader.
It works on J2SE 1.4 from Sun, IBM, BEA, and Apple, but does nothing on J2SE 5.0 and other platforms.
It works on J2SE 1.4 from most JVM vendors like Sun, IBM, BEA, and Apple, but does nothing on J2SE 5.0.
However translation at runtime consumes additional memory and processing resources and it will not
work if your classes make use of Java 5 API but were compiled with "<code>-target 1.4</code>".
</p>
@@ -293,57 +339,62 @@ and concurrency utilities
<li>
If you want to run a JAR file with the JIT, execute:<br>
<code>java -cp retrotranslator-transformer-<i>n.n.n</i>.jar
net.sf.retrotranslator.transformer.JITRetrotranslator -jar &lt;jarfile&gt; [&lt;args...&gt;]</code>
net.sf.retrotranslator.transformer.JITRetrotranslator &lt;options&gt; -jar &lt;jarfile&gt; [&lt;args...&gt;]</code>
</li>
<li>
When the first option does not work or if you just want to run a class from your classpath, execute:<br>
<code>java -cp retrotranslator-transformer-<i>n.n.n</i>.jar:&lt;classpath&gt;
net.sf.retrotranslator.transformer.JITRetrotranslator &lt;class&gt; [&lt;args...&gt;]</code>
net.sf.retrotranslator.transformer.JITRetrotranslator &lt;options&gt; &lt;class&gt; [&lt;args...&gt;]</code>
</li>
<li>
Alternatively you may simply call <code>JITRetrotranslator.install()</code> from some JVM 1.4 compatible class
Alternatively you may simply call <code>JITRetrotranslator.run()</code> from some JVM 1.4 compatible class
before Java 5 classes are loaded.
</li>
</ul>
<p>
JIT Retrotranslator can accept the <code><a href="#option_advanced">advanced</a></code>
and <code><a href="#option_backport">backport</a></code> options.
</p>
<h4><a name="supported">What Java 5 classes and methods are supported?</a></h4>
<table border="1" cellspacing="0" cellpadding="5">
<tr><th>Package</th><th>Class</th><th>Methods and fields</th><th>Compatibility notes</th></tr>
<tr><td><code>java.lang.annotation</code></td><td>* (all classes)</td><td>* (all methods)</td><td>&nbsp;</td></tr>
<tr><td><code>java.lang.instrument</code></td><td>* (all classes)</td><td>* (all methods)</td><td>
Bytecode instrumentation is not implemented.</td></tr>
<tr><td><code>java.util.concurrent,<br>java.util.concurrent.atomic,<br>java.util.concurrent.locks</code></td>
<td>almost all classes</td><td>almost all methods</td>
<td>
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/index.php"> Backport of JSR 166</a><br>
<code>Condition.awaitNanos(long)</code> method is supported but with
<td>almost all classes<sup><a href="#1">1</a></sup></td><td>almost all methods</td>
<td>The <code>LockSupport</code> class may be unusable due to poor efficiency.
The <code>Condition.awaitNanos(long)</code> method has
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/doc/api/edu/emory/mathcs/backport/java/util/concurrent/helpers/Utils.html#awaitNanos(edu.emory.mathcs.backport.java.util.concurrent.locks.Condition, long)">
very little</a> accuracy guarantees.
</td></tr>
<tr><td rowspan="6"><code>java.io</code></td><td><code>Closeable</code></td><td><code>*</code></td><td>
<code>new Closeable[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>Flushable</code></td><td><code>*</code></td><td>
<code>new Flushable[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
little</a> accuracy guarantees.</td></tr>
<tr><td rowspan="6"><code>java.io</code></td><td><code>Closeable<sup><a href="#2">2</a></sup></code>
</td><td><code>*</code></td><td>&nbsp;</td></tr>
<tr><td><code>Flushable<sup><a href="#2">2</a></sup></code></td><td><code>*</code></td><td>&nbsp;</td></tr>
<tr><td><code>PrintStream</code></td><td>
<code>append(CharSequence), append(CharSequence, int, int), append(char)</code>
* (11 new methods and constructors)
</td><td>&nbsp;</td></tr>
<tr><td><code>PrintWriter</code></td><td>
<code>PrintWriter(File), PrintWriter(File, String), PrintWriter(String), PrintWriter(String, String)</code>
</td><td>&nbsp;</td></tr>
* (11 new methods and constructors)
</td><td>
The <code>PrintWriter.format</code> and <code>PrintWriter.printf</code> methods always flush the output buffer.
</td></tr>
<tr><td><code>Reader</code></td><td><code>read(CharBuffer)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Writer</code></td><td>
<code>append(CharSequence), append(CharSequence, int, int), append(char)</code>
<code>append(CharSequence),<br>
append(CharSequence, int, int),<br>
append(char)</code>
</td><td>&nbsp;</td></tr>
<tr><td rowspan="24"><code>java.lang</code></td><td><code>Appendable</code></td><td>*
</td><td>
<code>new Appendable[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>Boolean</code></td><td><code>parseBoolean(String), compareTo(Boolean)</code></td><td>&nbsp;</td></tr>
<tr><td rowspan="26"><code>java.lang</code></td><td><code>Appendable<sup><a href="#2">2</a></sup></code></td><td>*
</td><td>&nbsp;</td></tr>
<tr><td><code>Boolean</code></td><td><code>parseBoolean(String),<br>
compareTo(Boolean)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Byte</code></td><td><code>valueOf(byte)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Character</code></td><td><code>valueOf(char)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Class</code></td><td>* (21 new methods)</td><td>
<code>Class.getMethod(String, Class...)</code> and <code>Class.getDeclaredMethod(String, Class...)</code> are
intercepted in advanced mode to better support generics and covariant return types on several JVM implementations.
<code>Class.getMethod(String, Class...)</code> and <code>Class.getDeclaredMethod(String, Class...)</code>
are intercepted to better support generics and covariant return types
on several platforms<sup><a href="#3">3</a></sup>.
</td></tr>
<tr><td><code>Deprecated</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Double</code></td><td><code>valueOf(double)</code></td><td>&nbsp;</td></tr>
@@ -353,90 +404,127 @@ and concurrency utilities
IllegalArgumentException(Throwable)</code></td><td>&nbsp;</td></tr>
<tr><td><code>IllegalStateException</code></td><td><code>IllegalStateException(String, Throwable),<br>
IllegalStateException(Throwable)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Integer</code></td><td><code>valueOf(int)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Iterable</code></td><td>*</td><td>
<code>new Iterable[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>Long</code></td><td><code>valueOf(long)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Integer</code></td><td><code>valueOf(int), signum(int)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Iterable<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Long</code></td><td><code>valueOf(long), signum(long)</code></td><td>&nbsp;</td></tr>
<tr><td><code>Package</code></td><td>* (4 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>Readable</code></td><td>*</td><td>
<code>new Readable[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>Readable<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Short</code></td><td><code>valueOf(short)</code></td><td>&nbsp;</td></tr>
<tr><td><code>String</code></td><td><code>contains(CharSequence),<br> contentEquals(CharSequence),<br>
replace(CharSequence, CharSequence)</code></td><td>&nbsp;</td></tr>
<tr><td><code>String</code></td><td><code>contains(CharSequence),<br>
contentEquals(CharSequence),<br>
format(Locale, String, Object...),<br>
format(String, Object...),<br>
replace(CharSequence, CharSequence),<br>
isEmpty()<sup><a href="#4">4</a></sup>
</code></td><td>&nbsp;</td></tr>
<tr><td><code>StringBuffer</code></td><td><code>
StringBuffer(CharSequence), append(CharSequence), append(CharSequence, int, int),
insert(int, CharSequence), insert(int, CharSequence, int, int)
StringBuffer(CharSequence),<br>
append(CharSequence),<br>
append(CharSequence, int, int),<br>
insert(int, CharSequence),<br>
insert(int, CharSequence, int, int)
</code></td><td>&nbsp;</td></tr>
<tr><td><code>StringBuilder</code></td><td>
All methods supported in <code>StringBuffer</code>
</td><td><code>StringBuilder</code> is replaced with <code>StringBuffer</code></td></tr>
</td><td><code>StringBuilder</code> is replaced with <code>StringBuffer</code>.</td></tr>
<tr><td><code>SuppressWarnings</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>System</code></td><td><code>nanoTime(), clearProperty(String)</code></td><td>
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/index.php"> Backport of JSR 166</a><br>
<code>System.nanoTime()</code> method precision
<tr><td><code>System</code></td><td><code>nanoTime()<sup><a href="#1">1</a></sup>,<br> clearProperty(String)</code></td><td>
The <code>System.nanoTime()</code> method precision
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/doc/api/edu/emory/mathcs/backport/java/util/concurrent/helpers/Utils.html#nanoTime()">
may vary</a> on different platforms.
</td></tr>
<tr><td><code>Thread</code></td><td><code>getStackTrace(), getId()
</code></td><td><code>Thread.getStackTrace()</code> returns non-empty stack trace only for the current thread;<br>
<code>Thread.getId()</code> does not reflect the order in which threads are created.</td></tr>
<tr><td><code>Thread</code></td><td><code>getStackTrace(),<br> getId()
</code></td><td>The <code>Thread.getStackTrace()</code>
method returns non-empty stack trace only for the current thread.<br>
The <code>Thread.getId()</code> method does not reflect the order in which threads are created.</td></tr>
<tr><td><code>Thread.State</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>ThreadLocal</code></td><td><code>remove()<sup><a href="#3">3</a></sup></code></td>
<td><code>ThreadLocal</code> and <code>InheritableThreadLocal</code>
are replaced by corresponding classes from the runtime library.<sup><a href="#3">3</a></sup>.</td></tr>
<tr><td><code>TypeNotPresentException</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td rowspan="2"><code>java.lang.ref</code></td>
<td><code>SoftReference</code></td><td>*</td><td>
<code>SoftReference(Object,ReferenceQueue)</code>
supports <code>null</code> for the second parameter
on all platforms<sup><a href="#3">3</a></sup>.
</td></tr>
<tr><td><code>WeakReference</code></td><td>*</td><td>
<code>WeakReference(Object,ReferenceQueue)</code>
supports <code>null</code> for the second parameter
on all platforms<sup><a href="#3">3</a></sup>.
</td></tr>
<tr><td rowspan="12"><code>java.lang.reflect</code></td><td><code>AnnotatedElement</code></td><td>*</td><td>
<code>new AnnotatedElement[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td rowspan="13"><code>java.lang.reflect</code></td>
<td><code>AccessibleObject</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>AnnotatedElement<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Constructor</code></td><td>* (11 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>Field</code></td><td>* (8 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>GenericArrayType</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>GenericDeclaration</code></td><td>*</td><td>
<code>new GenericDeclaration[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>GenericDeclaration<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>GenericSignatureFormatError</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>MalformedParameterizedTypeException</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Method</code></td><td>* (14 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>ParameterizedType</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Type</code></td><td>*</td><td>
<code>new Type[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>Type<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>TypeVariable</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>WildcardType</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td ><code>java.math</code></td><td><code>BigDecimal</code></td><td>
<code>BigDecimal(int), BigDecimal(long), ZERO, ONE, TEN, divideAndRemainder(BigDecimal),
divideToIntegralValue(BigDecimal), pow(int), remainder(BigDecimal), toPlainString(), valueOf(double),
valueOf(long)</code></td><td><code>BigDecimal.setScale(int, int)</code> supports negative scales in advanced mode.</td></tr>
<code>BigDecimal(int),<br> BigDecimal(long),<br> ZERO, ONE, TEN,<br> divideAndRemainder(BigDecimal),<br>
divideToIntegralValue(BigDecimal),<br> pow(int),<br> remainder(BigDecimal),<br>
toPlainString(),<br> valueOf(double),<br>
valueOf(long)</code></td><td>The <code>BigDecimal.setScale(int, int)</code>
method supports negative scales<sup><a href="#3">3</a></sup>.</td></tr>
<tr><td rowspan="3"><code>java.net</code></td><td><code>URL</code></td>
<td><code>openConnection(Proxy)</code>,<br>
<code>toURI()</code>
</td><td>The <code>Proxy</code> is ignored by the <code>openConnection(Proxy)</code> method.</td></tr>
<tr><td><code>Proxy</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>ProxySelector</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td ><code>java.rmi.server</code></td><td><code>RemoteObjectInvocationHandler</code></td>
<td>*</td><td>&nbsp;</td></tr>
<tr><td ><code>java.text</code></td><td><code>DecimalFormat</code></td>
<td><code>isParseBigDecimal()<sup><a href="#3">3</a></sup>,<br>
setParseBigDecimal(boolean)<sup><a href="#3">3</a></sup></code></td><td>
<code>BigDecimal</code> parsing and formatting precision is limited by
<code>java.lang.Double</code> or <code>java.lang.Long</code> precision.
</td></tr>
<tr><td><code>java.util.nio</code></td><td><code>CharBuffer</code></td><td>
<code>append(CharSequence), append(CharSequence, int, int), append(char), read(CharBuffer)</code>
<code>append(CharSequence),<br> append(CharSequence, int, int),<br> append(char),<br> read(CharBuffer)</code>
</td><td>&nbsp;</td></tr>
<tr><td rowspan="9"><code>java.util</code></td><td><code>AbstractQueue</code></td><td>*</td><td>
&nbsp;</td></tr>
<tr><td rowspan="10"><code>java.util</code></td><td><code>AbstractQueue<sup><a href="#1">1</a></sup></code></td>
<td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Arrays</code></td><td>* (21 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>Collections</code></td><td>* (13 new methods)</td><td>
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/index.php"> Backport of JSR 166</a>
</td></tr>
<tr><td><code>Collections<sup><a href="#1">1</a></sup></code></td><td>* (13 new methods)<br>
newSetFromMap(Map)<sup><a href="#4">4</a></sup>
</td><td>&nbsp;</td></tr>
<tr><td><code>EnumMap</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>EnumSet</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Formatter</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>LinkedList</code></td><td>* (5 new methods)</td><td>&nbsp;</td></tr>
<tr><td><code>PriorityQueue</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Queue</code></td><td>*</td><td>
<code>new Queue[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<tr><td><code>PriorityQueue<sup><a href="#1">1</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Queue<sup><a href="#1">1</a>,<a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>UUID</code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td rowspan="3"><code>java.util.regex</code></td><td><code>Matcher</code></td><td>
<code>quoteReplacement(String), toMatchResult()</code></td><td>&nbsp;</td></tr>
<tr><td><code>MatchResult</code></td><td>*</td><td>
<code>new MatchResult[...]</code> is replaced with <code>new Object[...]</code>
</td></tr>
<code>quoteReplacement(String),<br> toMatchResult()</code></td><td>&nbsp;</td></tr>
<tr><td><code>MatchResult<sup><a href="#2">2</a></sup></code></td><td>*</td><td>&nbsp;</td></tr>
<tr><td><code>Pattern</code></td><td><code>quote(String)</code></td><td>&nbsp;</td></tr>
</table>
<p>
<a name="1"><sup>1</sup></a> Supported via the
<a href="http://dcl.mathcs.emory.edu/util/backport-util-concurrent/index.php"> Backport of JSR 166</a>.<br>
<a name="2"><sup>2</sup></a> In most cases this type is being replaced with it's base type.<br>
<a name="3"><sup>3</sup></a> Supported only in advanced mode, i.e. when
the <code><a href="#option_advanced">advanced</a></code> option is specified.<br>
<a name="4"><sup>4</sup></a> Introduced in Java 6, but available only for 1.4 target.<br>
</p>
<h4><a name="extension">How to write an extension for Retrotranslator?</a></h4>
@@ -446,23 +534,33 @@ and concurrency utilities
For example, all references to
<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/util/EnumSet.html"><code>java.util.EnumSet</code></a>
are replaced with references to
<a href="http://cvs.sourceforge.net/viewcvs.py/retrotranslator/Retrotranslator/src/net/sf/retrotranslator/runtime/java/util/EnumSet_.java?view=markup">
<code>net.sf.retrotranslator.runtime.java.util.EnumSet<b>_</b></code></a> (trailing underscore) if the latter can be found.
<a href="http://retrotranslator.cvs.sourceforge.net/retrotranslator/Retrotranslator/src/net/sf/retrotranslator/runtime/java/util/EnumSet_.java?view=markup">
<code>net.sf.retrotranslator.runtime.java.util.EnumSet<b>_</b></code></a> (optional trailing underscore) if the latter can be found.
But if you replace a whole class that exists in J2SE 1.4 you may encounter interoperability issues with other libraries.
So, for example, support for Java 5 fields, methods, and constructors of
<a href="http://java.sun.com/j2se/1.5.0/docs/api/java/math/BigDecimal.html"><code>java.math.BigDecimal</code></a> is placed into
<a href="http://cvs.sourceforge.net/viewcvs.py/retrotranslator/Retrotranslator/src/net/sf/retrotranslator/runtime/java/math/_BigDecimal.java?view=markup">
<a href="http://retrotranslator.cvs.sourceforge.net/retrotranslator/Retrotranslator/src/net/sf/retrotranslator/runtime/java/math/_BigDecimal.java?view=markup">
<code>net.sf.retrotranslator.runtime.java.math.<b>_</b>BigDecimal</code></a> (leading underscore):
</p>
<ul>
<li>For a static field there is a public static field with the same name and type.</li>
<li>For a static method there is a public static method with the same signature.</li>
<li>For an instance method there is a public static method with the same signature
but with an additional first parameter representing an instance.</li>
but with an additional first parameter representing the instance.</li>
<li>For a constructor there is a public static <code>convertConstructorArguments</code> method that
accepts constructor's arguments an returns an argument for a Java 1.4 constuctor.</li>
</ul>
<p>
Another approach for constructor backporting is used by
<a href="http://retrotranslator.cvs.sourceforge.net/retrotranslator/Retrotranslator/src/net/sf/retrotranslator/runtime/java/io/_PrintStream.java?view=markup">
<code>net.sf.retrotranslator.runtime.java.io.<b>_</b>PrintStream</code></a>. There is a public static
<code>createInstanceBuilder</code> method that accepts constructor's arguments an returns an object with public
<code>argument1</code>...<code>argumentN</code> methods and optional public void <code>initialize</code> method.
All <code>argumentX</code> methods provide arguments for a Java 1.4 constuctor and should not have any parameters.
The <code>initialize</code> method has a single parameter for the created instance and may be used for postprocessing.
</p>
<p>
However, if the backported methods require access
to non-public methods or fields of the instance, they cannot be fully handled by Retrotranslator.
@@ -471,6 +569,13 @@ and concurrency utilities
and <code>setSource()</code> of <code>java.beans.PropertyEditorSupport</code> that will work in any environment.
Also this approach cannot be used to replace instance field references.
</p>
<p>
You can put your extensions into packages other than <code>net.sf.retrotranslator.runtime</code>.
For example, specify the following at the command line to make Retrotranslator use
<code>com.mycompany.internal.java.lang._String</code> and to rewrite all references to
<code>com.sun.org.apache.xerces.internal.*</code> with <code>org.apache.xerces.*</code>:<br>
<code>-backport&nbsp;com.mycompany.internal;com.sun.org.apache.xerces.internal:org.apache.xerces</code>
</p>
<p>
If you have written an extension that does not contain copyrighted code, you may send
a <a href="http://sourceforge.net/tracker/?group_id=153566&atid=788281">patch</a>
@@ -481,14 +586,16 @@ and concurrency utilities
<p>
Basically, only classes, methods, and fields listed <a href="#supported">above</a> should work, and other features,
like formatted input/output, are not supported. Known issues:
like formatted input, are not supported. Known issues:
</p>
<ul>
<li>Reflection-based tools may be unable to discover additional classes and methods introduced in Java 5 when running on JRE 1.4.</li>
<li>Some applications enable all features only if they detect Java 5, so you may need to override system properties:<br>
<code>&nbsp;java -Djava.version=1.5.0 -Djava.specification.version=1.5 -Djava.class.version=49.0 ...</code></li>
<li>Translated code running on JRE 5.0 may be incompatible with other Java 5 code when Java 5 API is used.</li>
<li>Reflection on generics and metadata may return incomplete information for dynamically generated classes.</li>
<li>Access modifiers and constants inlined by a compiler are ignored during the verification.</li>
<li>Upcasting may help to translate invocations of inherited methods introduced in Java 5: <br>
<li>Constants inlined by a compiler and access modifiers are ignored during the verification.</li>
<li>Inherited methods introduced in Java 5 may not work, however upcasting may help in some cases:<br>
<code>&nbsp;((Writer) new FileWriter("file.tmp")).append("Hello").close();</code></li>
<li>Serialized objects produced by translated code may be incompatible with JRE 5.0.</li>
</ul>
@@ -518,7 +625,7 @@ and concurrency utilities
Retrotranslator: a Java bytecode transformer that translates Java classes
compiled with JDK 5.0 into classes that can be run on JVM 1.4.
Copyright (c) 2005, 2006 Taras Puchko
Copyright (c) 2005 - 2007 Taras Puchko
All rights reserved.
Redistribution and use in source and binary forms, with or without
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+3 -4
View File
@@ -1,4 +1,3 @@
java -jar retrotranslator-transformer-1.0.8.jar -srcjar ../lib/struts2-core-2.0.0.jar -destjar struts2-core-j4-2.0.0.jar
java -jar retrotranslator-transformer-1.0.8.jar -srcjar ../lib/struts2-api-2.0.0.jar -destjar struts2-api-j4-2.0.0.jar
java -jar retrotranslator-transformer-1.0.8.jar -srcjar ../lib/struts2-extras-2.0.0.jar -destjar struts2-extras-j4-2.0.0.jar
java -jar retrotranslator-transformer-1.0.8.jar -srcjar ../lib/xwork-2.0-SNAPSHOT.jar -destjar xwork-j4-2.0-SNAPSHOT.jar
java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-core-2.0.4.jar -destjar struts2-core-j4-2.0.4.jar
java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/struts2-api-2.0.4.jar -destjar struts2-api-j4-2.0.4.jar
java -jar retrotranslator-transformer-1.2.0.jar -advanced -srcjar ../lib/xwork-2.0.0.jar -destjar xwork-j4-2.0.0.jar
+157 -40
View File
@@ -5,13 +5,13 @@
<parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-parent</artifactId>
<version>2.0.2</version>
<version>2.0.5</version>
</parent>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<packaging>jar</packaging>
<name>Struts 2 Core</name>
<scm>
<connection>scm:svn:http://svn.apache.org/repos/asf/struts/struts2/trunk/core/</connection>
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/struts/struts2/trunk/core/</developerConnection>
@@ -20,29 +20,42 @@
<build>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.0</version>
<configuration>
<sourcepath>src/main/java;../../xwork/src/java</sourcepath>
<groups>
<group>
<title>Struts Packages</title>
<packages>org.apache.struts2*</packages>
</group>
<group>
<title>XWork Packages</title>
<packages>com.opensymphony.xwork2*</packages>
</group>
</groups>
</configuration>
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.0-alpha-1-SNAPSHOT</version>
<executions>
<execution>
<id>unpack-xwork</id>
<phase>generate-sources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>opensymphony</groupId>
<artifactId>xwork</artifactId>
<version>2.0.0</version>
<classifier>sources</classifier>
</artifactItem>
</artifactItems>
<outputDirectory>${project.build.directory}/xwork-sources</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
<!--
<plugin>
<groupId>org.apache.myfaces.tobago</groupId>
<artifactId>maven-apt-plugin</artifactId>
<configuration>
<A>uri=/struts-tags,tlibVersion=2.2.3,jspVersion=1.2,shortName=s,displayName="Struts Tags",outFile=${basedir}/src/main/resources/META-INF/struts-tags.tld, description="To make it easier to access dynamic data; the Apache Struts framework includes a library of custom tags. The tags interact with the framework's validation and internationalization features; to ensure that input is correct and output is localized. The Struts Tags can be used with JSP FreeMarker or Velocity."
<A>uri=/struts-tags,tlibVersion=2.2.3,jspVersion=1.2,shortName=s,displayName="Struts Tags",
outFile=${basedir}/src/main/resources/META-INF/struts-tags.tld,
description="To make it easier to access dynamic data;
the Apache Struts framework includes a library of custom tags.
The tags interact with the framework's validation and internationalization features;
to ensure that input is correct and output is localized.
The Struts Tags can be used with JSP FreeMarker or Velocity.",
outTemplatesDir=${basedir}/src/site/resources/tags
</A>
<resourceTargetPath>target</resourceTargetPath>
<fork>false</fork>
@@ -64,19 +77,48 @@
</execution>
</executions>
</plugin>
-->
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.2</version>
<configuration>
<sourcepath>${basedir}/src/main/java;${basedir}/target/xwork-sources</sourcepath>
<encoding>UTF-8</encoding>
<groups>
<group>
<title>Struts Packages</title>
<packages>org.apache.struts2*</packages>
</group>
<group>
<title>XWork Packages</title>
<packages>com.opensymphony.xwork2*</packages>
</group>
</groups>
<show>private</show>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api</link>
<link>http://java.sun.com/javaee/5/docs/api/</link>
<link>http://jakarta.apache.org/commons/logging/apidocs/</link>
<link>http://logging.apache.org/log4j/docs/api/</link>
</links>
</configuration>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<!--
<!--
Run the translator for Java 1.4 compatiblity
Sample:
$ cd struts/struts2/
$ mvn clean install -Papps,j4 -Djava14.jar=$JAVA_HOME/../Classes/classes.jar
-->
<id>j4</id>
<build>
@@ -131,15 +173,86 @@
</dependency>
</dependencies>
</profile>
<profile>
<id>alljars</id>
<build>
<plugins>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<id>attach-source</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<sourcepath>${basedir}/src/main/java;${basedir}/target/xwork-sources</sourcepath>
<encoding>UTF-8</encoding>
<groups>
<group>
<title>Struts Packages</title>
<packages>org.apache.struts2*</packages>
</group>
<group>
<title>XWork Packages</title>
<packages>com.opensymphony.xwork2*</packages>
</group>
</groups>
<show>private</show>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api</link>
<link>http://java.sun.com/javaee/5/docs/api/</link>
<link>http://jakarta.apache.org/commons/logging/apidocs/</link>
<link>http://logging.apache.org/log4j/docs/api/</link>
</links>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-source</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>default-tools.jar</id>
<activation>
<property>
<name>java.vendor</name>
<value>Sun Microsystems Inc.</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>com.sun</groupId>
<artifactId>tools</artifactId>
<version>1.5.0</version>
<scope>system</scope>
<systemPath>${java.home}/../lib/tools.jar</systemPath>
</dependency>
</dependencies>
</profile>
</profiles>
<dependencies>
<dependency>
<groupId>opensymphony</groupId>
<artifactId>xwork</artifactId>
<version>2.0-RC1</version>
<version>2.0.0</version>
</dependency>
<dependency>
@@ -147,11 +260,11 @@
<artifactId>struts2-api</artifactId>
<version>${pom.version}</version>
</dependency>
<dependency>
<groupId>freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.4</version>
<version>2.3.8</version>
</dependency>
<dependency>
@@ -173,20 +286,13 @@
<artifactId>ognl</artifactId>
<version>2.6.9</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.0.4</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.0</version>
<optional>true</optional>
</dependency>
<!-- Ajax -->
<dependency>
<groupId>uk.ltd.getahead</groupId>
@@ -305,7 +411,7 @@
</exclusion>
</exclusions>
</dependency-->
<dependency>
<groupId>jmock</groupId>
<artifactId>jmock-cglib</artifactId>
@@ -355,5 +461,16 @@
<scope>test</scope>
</dependency>
<!-- struts-annotations must be in compile scope for maven-apt-plugin to
function correctly. Marking it optional to exclude it from transitive
dependency resolution -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts-annotations</artifactId>
<version>1.0-SNAPSHOT</version>
<optional>true</optional>
</dependency>
</dependencies>
</project>

Some files were not shown because too many files have changed in this diff Show More