Skip to content

Commit

Permalink
Final changes for 2.1 release
Browse files Browse the repository at this point in the history
  • Loading branch information
farkas committed Jul 22, 2004
1 parent ddcd44e commit 238e498
Show file tree
Hide file tree
Showing 5 changed files with 156 additions and 149 deletions.
151 changes: 151 additions & 0 deletions CHANGES.txt
@@ -0,0 +1,151 @@
--------------------------
-- Changes in 2.1 --
--------------------------
This release fixes a number of major bugs, and no code changes are required
from 2.0.1. We recommend all users upgrade.

This release mainly contains application server compatibilty changes.
Sitemesh is now compatible with more servers than ever before, and this
release fixes the number one bug which was decoration of static pages under
Tomcat.

- The URI's for the SiteMesh tag libraries have changed:

sitemesh-decorator becomes http://www.opensymphony.com/sitemesh/decorator
sitemesh-page becomes http://www.opensymphony.com/sitemesh/page

There have been no other changes to the tag library descriptors (.tld) files from
the previous version, so you don't need to replace you existing ones.

- Added VelocityDecoratorServlet (SIM-62; see 'Velocity Decorators' in the documentation and the example webapp).
- The example webapp and blank webapp use Packaged Tag Libraries (specifying the URI of the taglib).
- Hardened ConfigLoader to ignore whitespace inserted by XMLBuddy.
- A new method, isPathExcluded(), has been added to the Factory interface (SIM-98)
- There is no longer the concept of a default parser for unknown content types.

JIRA issues fixed:
- SIM-82 IllegalStateException when decorating static pages in Tomcat 4 & 5
- SIM-114 Sitemesh truncates content on non-decorated pages.
- SIM-73 PageFilter is not final and you can now subclass the newly protected applyDecorator and parsePage methods
- SIM-83 RequestDispatcher.forward() support
- SIM-91 Remove singleton configuration
- SIM-55 applyDecorator tag doesn't work on resin
- SIM-73 Make PageFilter subclassable
- SIM-89 <url-pattern> mapping on deployment descriptor
- SIM-97 Sitemesh captures the response even for non-parseable content
- SIM-98 Add the ability to exclude content from being decorated

--------------------------
-- Changes from 2.0 --
--------------------------

Chris Miller has been working like a demon on FastPageParser, and it's now as
fast and efficient as it can get. To give you a rough idea, 2.0 is about 3 times
faster than 1.5. 2.0.1 is about 5 times faster than 1.5.

With regards to memory usage, it's basically been knocked down to be negligible.
Previously (1.5), a 50k page parsed 250 times (separate instances strongly
referenced, with an explicit gc call to remove temporary objects) used up 37mb.
Currently, it uses 25mb (and it's no coincidence that 50k * 250 * 2 bytes per
char == 25mb).

- Minor DTD fix.
- Updates to documentation and build process.
- Added ParserGrinder to load test FastPageParser.

--------------------------
-- Changes from 1.5 --
--------------------------
- SiteMesh now hosted at http://sitemesh.dev.java.net.
- FastPageParser performance improvements.
- DTD location has changed; now http://www.opensymphony.com/sitemesh/dtd/sitemesh_1_5_decorators.dtd
- API change in Decorator (check your custom written Decorator classes):
Added new method getRole() to enable role based decorators.
- Updated documentation to align with new Opensymphony website.

JIRA issues fixed:
SIM-16 Tomcat IllegalStateException
SIM-41 NoSuchMethodException with Orion
SIM-2 Response bug on WebLogic 6.1
SIM-13 Tomcat4 throws IOException after response.sendRedirect()
SIM-29 WebLogic 7 doesn't work
SIM-40 Let properties be retrieved programatically
SIM-27 Example apps don't work in Pramati
SIM-17 Can't set headers from decorator page.
SIM-8 body tag not correctly parsed
SIM-56 Decorator taglibs allowed to contain body
SIM-37 role based decorators
SIM-46 Place TLDs in Jar file.

--------------------------
-- Changes from 1.4.1 --
--------------------------
- API change in DecoratorMapper (check your custom written DecoratorMappers):
before
Decorator getNamedDecorator(String name);
after
Decorator getNamedDecorator(HttpServletRequest request, String name);

- API change in Decorator (check your custom written Decorator classes):
Added new method getURIPath() to enable cross web-app support for decorators.

- New (shorter!) decorator xml format (backward compability is maintained),
check above or the decorators.xml file in the /example/WEB-INF directory for an example.
DTD: http://www.opensymphony.com/sitemesh/dtd/sitemesh_1_5_decorators.dtd
- Default SiteMesh configuration if sitemesh.xml is not present.
- When the request contains a Page object (under the key RequestConstants.PAGE)
use this one (supports SiteMesh aware applications) so we don't need to parse.
- EnvEntryDecoratorMapper: allows the reference to a web-app environment entry for the
decorator name, and falls back to ConfigDecoratorMapper's behavior if no matching
environment entry is found.
- Cross web-app support for decorators by specifying <decorator ... webapp="anotherwebapp"/>.
This will first try to get the decorator from anotherwebapp and fall back if not found.
- Small performance improvements in RobotDecoratorMapper.
- Some improvements to get SiteMesh working on different web containers.
If you need to detect on which container your application is running,
have a look at the com.opensymphony.module.sitemesh.util.Container class.

- BUGFIX: DefaultDecorator returned bad init param
- BUGFIX: small fixes to make SiteMesh work better on Tomcat
- BUGFIX: javadoc fixes

JIRA issues fixed:
SIM-1 Finalize RE support in PathMapper
SIM-3 Page filter strips <xmp> tags
SIM-4 PathMapper order is incorrect
SIM-5 Add a mapper that uses environment entries
SIM-6 When using the EnvEntryDecoratorMapper, decorations fail for html
SIM-7 Parsing of body should strip doctype
SIM-8 body tag not correctly parsed
SIM-11 Parsing the text "<>" causes problems
SIM-16 Define how charsets should work
SIM-20 Cross web-app support for decorators
SIM-21 FactoryException thrown when starting testsuite on WebLogic
SIM-22 Create template web-app
SIM-23 Distribution bundle
SIM-32 A smaller than sign (<) in javascript fails

--------------------------
-- Changes from 1.4 --
--------------------------

- complete support for WebLogic 6.1 / 7
- complete support for Jetty 4
- internal optimizations to filter

- BUGFIX: StringIndexOutOfBoundsException in RobotDecoratorMapper

--------------------------
-- Changes from 1.3 --
--------------------------

- changed package structure from com.sitemesh to com.opensymphony.module.sitemesh
- many performance optimizations in FastPageParser
- various bug fixes and small performance improvements

- BUGFIX: memory leak in PageFilter
- BUGFIX: meta http-equiv tags are now added as properties with prefix meta.http-equiv.x where x
is the value of the http-equiv attribute (eg refresh)
- BUGFIX: the configuration files are not case-sensitive anymore


148 changes: 1 addition & 147 deletions README.txt
Expand Up @@ -151,11 +151,6 @@ Mailing list subscription info and archives can be found at:
-- Known bugs --
--------------------------

* On some containers, static pages (.html) may cause problems. A workaround is to
either rename these to pages that are dynamically processed (such as .shtml or
.jsp), or setup a servlet-mapping so dynamic servlets process these pages (i.e.
map .html to the SSIServlet).

* When working with charsets that aren't the default ones, issues may occur.
Consult mailing list for help.

Expand All @@ -173,147 +168,6 @@ PQ80592 to your WebSphere installation.

Please report bugs here: http://jira.opensymphony.com

--------------------------
-- Changes from 2.0.1 --
--------------------------

- The URI's for the SiteMesh tag libraries have changed:

sitemesh-decorator becomes http://www.opensymphony.com/sitemesh/decorator
sitemesh-page becomes http://www.opensymphony.com/sitemesh/page

There have been no other changes to the tag library descriptors (.tld) files from
the previous version, so you don't need to replace you existing ones.

- Added VelocityDecoratorServlet (SIM-62; see 'Velocity Decorators' in the documentation and the example webapp).
- The example webapp and blank webapp use Packaged Tag Libraries (specifying the URI of the taglib).
- Hardened ConfigLoader to ignore whitespace inserted by XMLBuddy.
- A new method, isPathExcluded(), has been added to the Factory interface.
- There is no longer the concept of a default parser for unknown content types.

JIRA issues fixed:
- SIM-73 PageFilter is not final and you can now subclass the newly protected applyDecorator and parsePage methods
- SIM-83 RequestDispatcher.forward() support
- SIM-91 Remove singleton configuration
- SIM-55 applyDecorator tag doesn't work on resin
- SIM-73 Make PageFilter subclassable
- SIM-89 <url-pattern> mapping on deployment descriptor
- SIM-97 Sitemesh captures the response even for non-parseable content
- SIM-98 Add the ability to exclude content from being decorated

--------------------------
-- Changes from 2.0 --
--------------------------

Chris Miller has been working like a demon on FastPageParser, and it's now as
fast and efficient as it can get. To give you a rough idea, 2.0 is about 3 times
faster than 1.5. 2.0.1 is about 5 times faster than 1.5.

With regards to memory usage, it's basically been knocked down to be negligible.
Previously (1.5), a 50k page parsed 250 times (separate instances strongly
referenced, with an explicit gc call to remove temporary objects) used up 37mb.
Currently, it uses 25mb (and it's no coincidence that 50k * 250 * 2 bytes per
char == 25mb).

- Minor DTD fix.
- Updates to documentation and build process.
- Added ParserGrinder to load test FastPageParser.

--------------------------
-- Changes from 1.5 --
--------------------------
- SiteMesh now hosted at http://sitemesh.dev.java.net.
- FastPageParser performance improvements.
- DTD location has changed; now http://www.opensymphony.com/sitemesh/dtd/sitemesh_1_5_decorators.dtd
- API change in Decorator (check your custom written Decorator classes):
Added new method getRole() to enable role based decorators.
- Updated documentation to align with new Opensymphony website.

JIRA issues fixed:
SIM-16 Tomcat IllegalStateException
SIM-41 NoSuchMethodException with Orion
SIM-2 Response bug on WebLogic 6.1
SIM-13 Tomcat4 throws IOException after response.sendRedirect()
SIM-29 WebLogic 7 doesn't work
SIM-40 Let properties be retrieved programatically
SIM-27 Example apps don't work in Pramati
SIM-17 Can't set headers from decorator page.
SIM-8 body tag not correctly parsed
SIM-56 Decorator taglibs allowed to contain body
SIM-37 role based decorators
SIM-46 Place TLDs in Jar file.

--------------------------
-- Changes from 1.4.1 --
--------------------------
- API change in DecoratorMapper (check your custom written DecoratorMappers):
before
Decorator getNamedDecorator(String name);
after
Decorator getNamedDecorator(HttpServletRequest request, String name);

- API change in Decorator (check your custom written Decorator classes):
Added new method getURIPath() to enable cross web-app support for decorators.

- New (shorter!) decorator xml format (backward compability is maintained),
check above or the decorators.xml file in the /example/WEB-INF directory for an example.
DTD: http://www.opensymphony.com/sitemesh/dtd/sitemesh_1_5_decorators.dtd
- Default SiteMesh configuration if sitemesh.xml is not present.
- When the request contains a Page object (under the key RequestConstants.PAGE)
use this one (supports SiteMesh aware applications) so we don't need to parse.
- EnvEntryDecoratorMapper: allows the reference to a web-app environment entry for the
decorator name, and falls back to ConfigDecoratorMapper's behavior if no matching
environment entry is found.
- Cross web-app support for decorators by specifying <decorator ... webapp="anotherwebapp"/>.
This will first try to get the decorator from anotherwebapp and fall back if not found.
- Small performance improvements in RobotDecoratorMapper.
- Some improvements to get SiteMesh working on different web containers.
If you need to detect on which container your application is running,
have a look at the com.opensymphony.module.sitemesh.util.Container class.

- BUGFIX: DefaultDecorator returned bad init param
- BUGFIX: small fixes to make SiteMesh work better on Tomcat
- BUGFIX: javadoc fixes

JIRA issues fixed:
SIM-1 Finalize RE support in PathMapper
SIM-3 Page filter strips <xmp> tags
SIM-4 PathMapper order is incorrect
SIM-5 Add a mapper that uses environment entries
SIM-6 When using the EnvEntryDecoratorMapper, decorations fail for html
SIM-7 Parsing of body should strip doctype
SIM-8 body tag not correctly parsed
SIM-11 Parsing the text "<>" causes problems
SIM-16 Define how charsets should work
SIM-20 Cross web-app support for decorators
SIM-21 FactoryException thrown when starting testsuite on WebLogic
SIM-22 Create template web-app
SIM-23 Distribution bundle
SIM-32 A smaller than sign (<) in javascript fails

--------------------------
-- Changes from 1.4 --
--------------------------

- complete support for WebLogic 6.1 / 7
- complete support for Jetty 4
- internal optimizations to filter

- BUGFIX: StringIndexOutOfBoundsException in RobotDecoratorMapper

--------------------------
-- Changes from 1.3 --
--------------------------

- changed package structure from com.sitemesh to com.opensymphony.module.sitemesh
- many performance optimizations in FastPageParser
- various bug fixes and small performance improvements

- BUGFIX: memory leak in PageFilter
- BUGFIX: meta http-equiv tags are now added as properties with prefix meta.http-equiv.x where x
is the value of the http-equiv attribute (eg refresh)
- BUGFIX: the configuration files are not case-sensitive anymore

--------------------------
-- Credits --
--------------------------
Expand All @@ -326,4 +180,4 @@ Thank these guys:
* Hani Suleiman <NOSPAMfate@users.sourceforge.net>
* Scott Farquhar <scottNOSPAM@atlassian.com>

- Joe Walnes <joe@NOSPAMtruemesh.com>
- Joe Walnes <joe@NOSPAMtruemesh.com>
2 changes: 1 addition & 1 deletion build.properties
Expand Up @@ -44,4 +44,4 @@ blank.dir = ${etc.dir}/blank

Name = OpenSymphony SiteMesh
name = sitemesh
version = 2.0.1
version = 2.1
1 change: 1 addition & 0 deletions build.xml
Expand Up @@ -77,6 +77,7 @@

<mkdir dir="${dist.dir}/docs/dtd"/>
<copy todir="${dist.dir}/docs" file="README.txt"/>
<copy todir="${dist.dir}/docs" file="CHANGES.txt"/>
<copy todir="${dist.dir}/docs/dtd">
<fileset dir="${etc.dir}/dtd"/>
</copy>
Expand Down
3 changes: 2 additions & 1 deletion docs/navpanel.jsp
Expand Up @@ -5,6 +5,7 @@
<a href="<%= request.getContextPath() %>/sitemesh/features.html">Feature List</a><br>
<a href="<%= request.getContextPath() %>/sitemesh/history.html">History and Crew</a><br>
<a href="<%= request.getContextPath() %>/sitemesh/README.txt">README.txt</a><br>
<a href="<%= request.getContextPath() %>/sitemesh/CHANGES.txt">CHANGES.txt</a><br>
<a href="<%= request.getContextPath() %>/sitemesh/download.html">Download</a>
</p>

Expand All @@ -31,4 +32,4 @@
- <a href="http://jira.opensymphony.com/secure/BrowseProject.jspa?id=10000&report=changelog">Changelog</a><br>
<b>Wiki</b><br>
- <a href="http://wiki.opensymphony.com/display/SM/Index">SiteMesh Page</a>
</p>
</p>

0 comments on commit 238e498

Please sign in to comment.