From: <nri...@us...> - 2010-11-28 18:47:52
|
Revision: 563 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=563&view=rev Author: nricheton Date: 2010-11-28 18:47:45 +0000 (Sun, 28 Nov 2010) Log Message: ----------- Updated website and skin : improved readability Modified Paths: -------------- trunk/src/site/site.xml trunk/src/site/xdoc/aggregator.xml trunk/src/site/xdoc/api.xml trunk/src/site/xdoc/authentication.xml trunk/src/site/xdoc/cache.xml trunk/src/site/xdoc/cas.xml trunk/src/site/xdoc/configuration.xml trunk/src/site/xdoc/esi.xml trunk/src/site/xdoc/features.xml trunk/src/site/xdoc/httpheaders.xml trunk/src/site/xdoc/index.xml trunk/src/site/xdoc/maven.xml trunk/src/site/xdoc/proxy.xml trunk/src/site/xdoc/quickstart.xml trunk/src/site/xdoc/sample.xml trunk/src/site/xdoc/taglib.xml trunk/src/site/xdoc/xpathxslt.xml trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/maven-theme.css trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/site.css Added Paths: ----------- trunk/src/site/xdoc/external-resources.xml Modified: trunk/src/site/site.xml =================================================================== --- trunk/src/site/site.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/site.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -27,6 +27,7 @@ <menu name="Download"> <item href="http://sourceforge.net/project/showfiles.php?group_id=209844" name="Download" /> + <item href="maven.html" name="Maven repositories" /> </menu> <menu name="Documentation"> <item href="quickstart.html" name="Quick start" /> @@ -43,13 +44,17 @@ <item href="cas.html" name="Single Sign On with CAS" /> <item href="sample.html" name="Sample applications" /> <item href="maven.html" name="Maven" /> + <item href="external-resources.html" name="External resources" /> </menu> - <menu ref="modules" /> + <menu name="Community"> <item href="http://sourceforge.net/apps/mediawiki/webassembletool/" name="FAQ (Wiki)" /> <item href="http://sourceforge.net/projects/webassembletool/" name="SourceForge" /> </menu> + <menu ref="reports" /> + + <menu ref="modules" /> </body> </project> \ No newline at end of file Modified: trunk/src/site/xdoc/aggregator.xml =================================================================== --- trunk/src/site/xdoc/aggregator.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/aggregator.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Aggregator</h1> <section name="Goals"> <p> Like the reverse proxy servlet, the aggregator is implemented as a Modified: trunk/src/site/xdoc/api.xml =================================================================== --- trunk/src/site/xdoc/api.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/api.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>API</h1> <p> Any functionality used in the taglib, reverse proxy or aggregator can be used through Modified: trunk/src/site/xdoc/authentication.xml =================================================================== --- trunk/src/site/xdoc/authentication.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/authentication.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Authentication</h1> <section name="Authentication"> <p> User authentication consists in two different things : Modified: trunk/src/site/xdoc/cache.xml =================================================================== --- trunk/src/site/xdoc/cache.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/cache.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Cache</h1> <section name="Configuration"> <p> ESIGate includes a full Modified: trunk/src/site/xdoc/cas.xml =================================================================== --- trunk/src/site/xdoc/cas.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/cas.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Implementing SSO using JASIG CAS</h1> <section name="Principles"> <p> The toolkit can do CAS authentication using the JASIG CAS client. Modified: trunk/src/site/xdoc/configuration.xml =================================================================== --- trunk/src/site/xdoc/configuration.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/configuration.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Configuration</h1> <section name="Configuration file"> <p> The tools default behavior is to load a configuration file from Modified: trunk/src/site/xdoc/esi.xml =================================================================== --- trunk/src/site/xdoc/esi.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/esi.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Edge Side Include</h1> <section name="Edge Side Include (ESI)"> <p> Currently aggregator servlet supports ESI include and comment Added: trunk/src/site/xdoc/external-resources.xml =================================================================== --- trunk/src/site/xdoc/external-resources.xml (rev 0) +++ trunk/src/site/xdoc/external-resources.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -0,0 +1,29 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <properties> + <title>ESIGate external resources</title> + <author email="nic...@gm...">Nicolas Richeton</author> + </properties> + <body> + <h1>ESIGate external resources</h1> + <section name="External resources"> + <p>Tutorials and examples can also be found on other sites. Feel free to contact us to add your website in that list.</p> + <subsection name="Tutorials"> + <ul> + <li> + Le blog de Nicolas Richeton + <ul> + <li> + <a + href="http://blog.richeton.com/2010/11/28/esigate-tutorial-part-1/">Part 1</a> - Using taglib and templating. + </li> + </ul> + </li> + </ul> + </subsection> + + + + </section> + </body> +</document> \ No newline at end of file Modified: trunk/src/site/xdoc/features.xml =================================================================== --- trunk/src/site/xdoc/features.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/features.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,23 +5,24 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> - <section name="Features"> - <subsection name="Blocks and templates"> + <h1>Features</h1> + + <section name="Blocks and templates"> <p> Any web application can be used as a provider. The master application will be able to use blocks and templates delimited with special HTML comments. </p> - </subsection> - <subsection name="Cross technologies"> + </section> + <section name="Cross technologies"> <p> As we only use HTML comments inside provider applications, a provider application may have been developed with any technology, including Java, PHP on .NET. </p> - </subsection> - <subsection name="Reverse proxy"> + </section> + <section name="Reverse proxy"> <p> The kit contains a reverse-proxy servlet that can be used to retrieve static contents @@ -32,29 +33,29 @@ well be used in a production environment with good performance. </p> - </subsection> - <subsection name="Aggregator"> + </section> + <section name="Aggregator"> <p> The aggregator is a reverse-proxy servlet that can parse the pages on the fly and process inclusion instructions inserted in the pages by the applications as tags. </p> - </subsection> - <subsection name="ESI 1.0 specification support"> + </section> + <section name="ESI 1.0 specification support"> <p> In addition to its native syntax using HTML comments, the Website Assembling Toolkit partially supports ESI specification (for now, only esi:include and esi comments are supported). </p> - </subsection> - <subsection name="Xpath expressions and XSLT"> + </section> + <section name="Xpath expressions and XSLT"> <p> One of the latest features is the possibility to retrieve elements using xpath expressions and to apply on-the-fly XSLT transformations to retrieved elements. </p> - </subsection> - <subsection name="Cache"> + </section> + <section name="Cache"> <p> In order to improve performance, the tool can be configured to use a cache (the underlying cache @@ -64,8 +65,8 @@ depending on your needs and depending on the provider application. </p> - </subsection> - <subsection name="User context"> + </section> + <section name="User context"> <p> While calling the provider application, you may want to send informations about @@ -76,15 +77,15 @@ appended as request parameters to the http request. </p> - </subsection> - <subsection name="Single Sign On with CAS"> + </section> + <section name="Single Sign On with CAS"> <p> The kit supports CAS protocol using the <a href="http://www.jasig.org/cas/proxy-authentication">proxy authentication mode</a> and the JASIG CAS client. </p> - </subsection> - </section> + </section> + </body> </document> \ No newline at end of file Modified: trunk/src/site/xdoc/httpheaders.xml =================================================================== --- trunk/src/site/xdoc/httpheaders.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/httpheaders.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -1,10 +1,11 @@ <?xml version="1.0" encoding="UTF-8"?> <document> <properties> - <title>HTTP headers suppot</title> + <title>HTTP headers support</title> <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>HTTP headers support</h1> <section name="Request headers"> <p> Some request headers are forwarded to the target server, some are Modified: trunk/src/site/xdoc/index.xml =================================================================== --- trunk/src/site/xdoc/index.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/index.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Overview</h1> <section name="ESIGate (Website Assembling Toolkit)"> <p> ESIGate (formerly known as "Website Assembling Toolkit")is a toolkit developped to help developpers to integrate Modified: trunk/src/site/xdoc/maven.xml =================================================================== --- trunk/src/site/xdoc/maven.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/maven.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -3,14 +3,19 @@ <properties> <title>Maven</title> <author email="fxb...@us...">Francois-Xavier Bonnet</author> + <author email="nic...@gm...">Nicolas Richeton</author> </properties> <body> + <h1>Maven</h1> <section name="Using the Website Assembling Toolkit in a Maven project"> <p> - The Website Assembling Toolkit has not been deployed yet on Maven central + The Website Assembling Toolkit has not been deployed yet on Maven + central repository. You have to add the Website Assembling Toolkit repository to - your pom.xml + your + pom.xml </p> + <source><![CDATA[ <repository> <id>webassembletool-repository</id> @@ -18,6 +23,33 @@ <url>http://webassembletool.sourceforge.net/maven/repository</url> </repository> ]]></source> + </section> + + <section name="Repositories"> + <table> + <tr> + <th>Type</th> + <th>URL</th> + <th>Description</th> + </tr> + <tr> + <td>Release</td> + <td> + <a href="http://www.esigate.org/maven/repository/">http://www.esigate.org/maven/repository/</a> + </td> + <td>Official releases of ESIGate, usable on production.</td> + </tr> + <tr> + <td>Snapshots</td> + <td> + <a href="http://www.esigate.org/maven/snapshots/">http://www.esigate.org/maven/snapshots/</a> + </td> + <td>Development builds of ESIGate, usable for compatibility tests and beta testing.</td> + </tr> + </table> + </section> + + <section name="Adding dependency on ESI Gate"> <p> Then you can add the dependency. For the core API: </p> @@ -28,10 +60,11 @@ <version>RELEASE</version> </dependency> ]]></source> -<p> -Note: don't forget to change RELEASE with the latest version. -</p><br/> <p> + Note: don't forget to change RELEASE with the latest version. +</p> + <br /> + <p> For the taglib (in master application): </p> <source><![CDATA[ Modified: trunk/src/site/xdoc/proxy.xml =================================================================== --- trunk/src/site/xdoc/proxy.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/proxy.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -6,6 +6,7 @@ <author email="nri...@us...">Nicolas Richeton</author> </properties> <body> + <h1>Reverse proxy servlets</h1> <section name="Reverse proxy servlets"> <p> The toolkit includes two reverse proxy servlets which can be used Modified: trunk/src/site/xdoc/quickstart.xml =================================================================== --- trunk/src/site/xdoc/quickstart.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/quickstart.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Quickstart</h1> Imagine you have to write a java application (master) that must include a block coming from Modified: trunk/src/site/xdoc/sample.xml =================================================================== --- trunk/src/site/xdoc/sample.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/sample.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Sample applications</h1> <section name="Applications"> <p>The source distribution includes to demonstrate most of the functionalities of the toolkit: Modified: trunk/src/site/xdoc/taglib.xml =================================================================== --- trunk/src/site/xdoc/taglib.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/taglib.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Taglib</h1> <section name="Tag the block on the provider application"> <p>The block has to be tagged using special HTML comments.</p> <source> Modified: trunk/src/site/xdoc/xpathxslt.xml =================================================================== --- trunk/src/site/xdoc/xpathxslt.xml 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/src/site/xdoc/xpathxslt.xml 2010-11-28 18:47:45 UTC (rev 563) @@ -5,6 +5,7 @@ <author email="fxb...@us...">Francois-Xavier Bonnet</author> </properties> <body> + <h1>Xpath and XSLT</h1> <section name="Xpath and XSLT"> <p> It is possible to extract an Xpath expression from a page or to Modified: trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/maven-theme.css =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/maven-theme.css 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/maven-theme.css 2010-11-28 18:47:45 UTC (rev 563) @@ -56,35 +56,42 @@ background: url(../images/newwindow.png) right center no-repeat; padding-right: 18px; } + + + +h1 { + color: #708691; +} + + h2 { - padding: 4px 4px 4px 6px; - border: 1px solid #999; - color: #900; - background-color: #ddd; - font-weight:900; - font-size: x-large; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + color: #708691; + font-weight:bold; + font-size: 1.4em; + background-image:url(../images/bg_h2.jpg); + background-repeat:no-repeat; + padding:0px 10px 20px 25px; + border:none; + background-color: white; } + h3 { - padding: 4px 4px 4px 6px; - border: 1px solid #aaa; - color: #900; - background-color: #eee; - font-weight: normal; - font-size: large; + color: #708691; + background:url(../images/bg_nav.gif) no-repeat scroll left bottom; + + font-size: 1.3em; + margin-left: 17px; } -h4 { - padding: 4px 4px 4px 6px; - border: 1px solid #bbb; - color: #900; - background-color: #fff; - font-weight: normal; - font-size: large; -} + h5 { - padding: 4px 4px 4px 6px; - color: #900; - font-size: medium; + font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; + padding: 4px 4px 4px 6px; + color: #708691; + font-weight:bold; + font-size: 1.4em; } + p { line-height: 1.3em; font-size: small; @@ -111,10 +118,11 @@ background-color: #bbb; text-align: left; font-weight: bold; + font-size:1.1em; } table.bodyTable th, table.bodyTable td { - font-size: 1em; + font-size:1.1em; } table.bodyTable tr.a { @@ -127,6 +135,7 @@ .source { border: 1px solid #999; + font-size: 1.4em; } dl { padding: 4px 4px 4px 6px; Modified: trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/site.css =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/site.css 2010-10-06 14:44:51 UTC (rev 562) +++ trunk/webassembletool-maven/webassembletool-maven-skin/src/main/resources/css/site.css 2010-11-28 18:47:45 UTC (rev 563) @@ -11,7 +11,6 @@ position:absolute; top:20px; left:0px; - width:250px; height:200px; border:none; } @@ -48,13 +47,14 @@ } li { list-style-type: none; - background:url(../images/puce.gif) center left no-repeat; + background:url(../images/puce.gif) no-repeat scroll 0 3px transparent; padding-left: 15px; color:#5b5b5b; - font-size:1em; + } #navcolumn li { background:url(../images/puce.gif) center left no-repeat; + font-size:0.9em; } .none { color:#5b5b5b; @@ -69,24 +69,8 @@ a:active, a:hover { color:#c35235; } -h2 { - font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; - color: #708691; - font-weight:bold; - font-size: 1.4em; - background-image:url(../images/bg_h2.jpg); - background-repeat:no-repeat; - padding:0px 10px 20px 25px; - border:none; - background-color: white; -} -h5 { - font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; - padding: 4px 4px 4px 6px; - color: #708691; - font-weight:bold; - font-size: 1.4em; -} + + p { font-family:"Trebuchet MS", Arial, Helvetica, sans-serif; font-size:1.2em; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nri...@us...> - 2010-11-30 12:05:52
|
Revision: 566 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=566&view=rev Author: nricheton Date: 2010-11-30 12:05:46 +0000 (Tue, 30 Nov 2010) Log Message: ----------- Improved site. Added web-analytics. Modified Paths: -------------- trunk/pom.xml trunk/src/site/site.xml trunk/src/site/xdoc/index.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-11-29 09:10:17 UTC (rev 565) +++ trunk/pom.xml 2010-11-30 12:05:46 UTC (rev 566) @@ -56,7 +56,7 @@ <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> </license> </licenses> - <description>ESIGate</description> + <description>ESIGate - ESI reverse proxy, CMS integration, Remove templating</description> <issueManagement> <system>MantisBT</system> <url>https://sourceforge.net/apps/mantisbt/webassembletool/view_all_bug_page.php</url> Modified: trunk/src/site/site.xml =================================================================== --- trunk/src/site/site.xml 2010-11-29 09:10:17 UTC (rev 565) +++ trunk/src/site/site.xml 2010-11-30 12:05:46 UTC (rev 566) @@ -1,25 +1,47 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<project name="ESIGate"> - <skin> - <groupId>net.sourceforge.webassembletool.maven</groupId> - <artifactId>webassembletool-maven-skin</artifactId> - <version>${project.version}</version> - </skin> - <version position="left"/> +<project name="ESIGate - ESI reverse proxy, CMS integration, Remove templating"> + <skin> + <groupId>net.sourceforge.webassembletool.maven</groupId> + <artifactId>webassembletool-maven-skin</artifactId> + <version>${project.version}</version> + </skin> + <version position="left" /> + <bannerLeft> <name>ESIGate</name> <src>images/logo.jpg</src> <href>http://sourceforge.net/projects/webassembletool</href> - <alt>Get ESIGate at SourceForge.net. Fast, secure and Free Open Source software downloads</alt> + <alt>Get ESIGate at SourceForge.net. Fast, secure and Free Open Source + software downloads</alt> </bannerLeft> <body> - <links> - <item name="Maven repo" href="http://webassembletool.sourceforge.net/maven/repository/" /> - <item name="Change log" href="https://sourceforge.net/apps/mantisbt/webassembletool/changelog_page.php"/> - <item name="Roadmap" href="https://sourceforge.net/apps/mantisbt/webassembletool/roadmap_page.php"/> - <item name="Stats (ohloh)" href="http://www.ohloh.net/p/webassembletool"/> - </links> - + <head> + <script type="text/javascript"> + + var _gaq = _gaq || []; + _gaq.push(['_setAccount', 'UA-8756343-2']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; + ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : + 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; + s.parentNode.insertBefore(ga, s); + })();</script> + </head> + + <links> + <item name="Maven repo" + href="http://webassembletool.sourceforge.net/maven/repository/" /> + <item name="Change log" + href="https://sourceforge.net/apps/mantisbt/webassembletool/changelog_page.php" /> + <item name="Roadmap" + href="https://sourceforge.net/apps/mantisbt/webassembletool/roadmap_page.php" /> + <item name="Stats (ohloh)" href="http://www.ohloh.net/p/webassembletool" /> + </links> + <menu name="About"> <item href="index.html" name="Overview" /> <item href="features.html" name="Features" /> @@ -46,13 +68,14 @@ <item href="maven.html" name="Maven" /> <item href="external-resources.html" name="External resources" /> </menu> - + <menu name="Community"> - <item href="http://sourceforge.net/apps/mediawiki/webassembletool/" name="FAQ (Wiki)" /> + <item href="http://sourceforge.net/apps/mediawiki/webassembletool/" + name="FAQ (Wiki)" /> <item href="http://sourceforge.net/projects/webassembletool/" name="SourceForge" /> </menu> - + <menu ref="reports" /> <menu ref="modules" /> Modified: trunk/src/site/xdoc/index.xml =================================================================== --- trunk/src/site/xdoc/index.xml 2010-11-29 09:10:17 UTC (rev 565) +++ trunk/src/site/xdoc/index.xml 2010-11-30 12:05:46 UTC (rev 566) @@ -3,15 +3,23 @@ <properties> <title>Overview</title> <author email="fxb...@us...">Francois-Xavier Bonnet</author> + <author email="nic...@gm...">Nicolas Richeton</author> </properties> <body> <h1>Overview</h1> <section name="ESIGate (Website Assembling Toolkit)"> <p> - ESIGate (formerly known as "Website Assembling Toolkit")is a toolkit developped to help developpers to integrate + ESIGate (formerly known as "Website Assembling Toolkit") is a toolkit developed to help developers to integrate existing web applications and aggregate them as a single website. </p> + <ul> + <li><b>ESI reverse proxy</b> : speed up your website using standard or custom (enhanced) ESI syntax.</li> + <li><b>CMS integration</b> : include dynamic content from any CMS or website in your application easily.</li> + <li><b>Remote templating</b> : use a remote template instead of embedded files and be able to completely change design (not only CSS) on the fly.</li> + <li><b>All together</b> : combine and assemble multiple applications into a single, fast, modular and standard-compliant one.</li> + <li>Can be used stand-alone with any application or embedded in Java applications (JSP, JSF, Wicket and API support))</li> + </ul> </section> <section name="Reverse proxy and ESI processor"> <p> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ath...@us...> - 2010-12-15 09:23:49
|
Revision: 567 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=567&view=rev Author: athaveau Date: 2010-12-15 09:23:42 +0000 (Wed, 15 Dec 2010) Log Message: ----------- Add parsableContentTypes configuration (https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=38) Modified Paths: -------------- trunk/src/site/xdoc/configuration.xml trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java trunk/webassembletool-core/src/test/java/net/webassembletool/resource/ResourceUtilsTest.java Added Paths: ----------- trunk/webassembletool-core/src/test/java/net/webassembletool/DriverConfigurationTest.java Modified: trunk/src/site/xdoc/configuration.xml =================================================================== --- trunk/src/site/xdoc/configuration.xml 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/src/site/xdoc/configuration.xml 2010-12-15 09:23:42 UTC (rev 567) @@ -53,6 +53,14 @@ <td>No</td> <td>20</td> </tr> + <tr> + <td>parsableContentTypes</td> + <td>List of parsable content types. By default, parsable content types are text/html and application/xhtml+xml. + <code>parsableContentTypes=text/html,application/xhtml+xml,text/plain</code> + </td> + <td>No</td> + <td>text/html,application/xhtml+xml</td> + </tr> <tr> <td>timeout</td> <td>Timeout while establishing a connection with the server Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2010-12-15 09:23:42 UTC (rev 567) @@ -451,7 +451,8 @@ renderResource(resourceContext, new ResponseOutput(response)); } else { // Directly stream out non text data - TextOnlyStringOutput textOutput = new TextOnlyStringOutput(response); + TextOnlyStringOutput textOutput = new TextOnlyStringOutput( + response, this.config.getParsableContentTypes()); renderResource(resourceContext, textOutput); // If data was binary, no text buffer is available and no rendering // is needed. Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2010-12-15 09:23:42 UTC (rev 567) @@ -14,7 +14,10 @@ */ package net.webassembletool; +import java.util.ArrayList; +import java.util.List; import java.util.Properties; +import java.util.StringTokenizer; import net.webassembletool.authentication.RemoteUserAuthenticationHandler; import net.webassembletool.cookie.SerializableBasicCookieStore; @@ -43,15 +46,15 @@ private String proxyHost; private int proxyPort = 0; private boolean filterJsessionid = true; - private String authenticationHandler = RemoteUserAuthenticationHandler.class.getName(); + private String authenticationHandler = RemoteUserAuthenticationHandler.class + .getName(); private final Properties properties; private boolean preserveHost = false; private String cookieStore = SerializableBasicCookieStore.class.getName(); private String filter = null; + private final List<String> parsableContentTypes; - public String getFilter() { - return filter; - } + private static String DEFAULT_PARSABLE_CONTENT_TYPES = "text/html, application/xhtml+xml"; public DriverConfiguration(String instanceName, Properties props) { this.instanceName = instanceName; @@ -132,10 +135,25 @@ visibleBaseURL = baseURL; } } + // Parsable content types + String strContentTypes = props.getProperty("parsableContentTypes", + DEFAULT_PARSABLE_CONTENT_TYPES); + StringTokenizer tokenizer = new StringTokenizer(strContentTypes, ","); + String contentType; + parsableContentTypes = new ArrayList<String>(); + while (tokenizer.hasMoreElements()) { + contentType = tokenizer.nextToken(); + contentType = contentType.trim(); + parsableContentTypes.add(contentType); + } properties = props; } + public String getFilter() { + return filter; + } + public int getFixMode() { return fixMode; } @@ -220,4 +238,14 @@ return cookieStore; } + /** + * List of parsable content types. Default is text/html, + * application/xhtml+xml + * + * @return + */ + public List<String> getParsableContentTypes() { + return parsableContentTypes; + } + } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2010-12-15 09:23:42 UTC (rev 567) @@ -214,9 +214,9 @@ private void removeSessionId(InputStream inputStream, Output output) throws IOException { String jsessionid = RewriteUtils.getSessionId(target); - boolean textContentType = ResourceUtils - .isTextContentType(httpClientResponse - .getHeader(HttpHeaders.CONTENT_TYPE)); + boolean textContentType = ResourceUtils.isTextContentType( + httpClientResponse.getHeader(HttpHeaders.CONTENT_TYPE), target + .getDriver().getConfiguration().getParsableContentTypes()); if (jsessionid == null || !textContentType) { IOUtils.copy(inputStream, output.getOutputStream()); } else { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java 2010-12-15 09:23:42 UTC (rev 567) @@ -5,6 +5,7 @@ import java.io.OutputStream; import java.io.UnsupportedEncodingException; import java.util.Iterator; +import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletResponse; @@ -32,9 +33,12 @@ private ByteArrayOutputStream byteArrayOutputStream; private OutputStream outputStream; private boolean text = false; + private final List<String> contentTypes; - public TextOnlyStringOutput(HttpServletResponse response) { + public TextOnlyStringOutput(HttpServletResponse response, + List<String> contentTypes) { this.response = response; + this.contentTypes = contentTypes; } /** @@ -55,7 +59,8 @@ @Override public void open() { response.setStatus(getStatusCode()); - if (ResourceUtils.isTextContentType(getHeader("Content-Type"))) { + if (ResourceUtils.isTextContentType(getHeader("Content-Type"), + this.contentTypes)) { text = true; } copyHeaders(); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java 2010-12-15 09:23:42 UTC (rev 567) @@ -3,11 +3,13 @@ import java.io.File; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpSession; +import net.webassembletool.DriverConfiguration; import net.webassembletool.ResourceContext; import net.webassembletool.http.RewriteUtils; @@ -58,8 +60,8 @@ queryString.append(originalQuerystring); } if (target.getParameters() != null) { - ResourceUtils.appendParameters(queryString, charset, target - .getParameters()); + ResourceUtils.appendParameters(queryString, charset, + target.getParameters()); } return queryString.toString(); } catch (UnsupportedEncodingException e) { @@ -69,19 +71,27 @@ /** * Check whether the given content-type value corresponds to "parsable" - * text. "Parsable" text is actually html/xhtml + * text. Content types parsable are + * {@link DriverConfiguration#getParsableContentTypes()} * * @param contentType * the value of http header Content-Type * @return true if this represents text or false if not */ - public static boolean isTextContentType(String contentType) { - if (contentType == null) { - return false; + public static boolean isTextContentType(String contentType, + List<String> textContentTypes) { + boolean isText = false; + + if (contentType != null) { + String lowerContentType = contentType.toLowerCase(); + for (String textContentType : textContentTypes) { + if (lowerContentType.startsWith(textContentType)) { + isText = true; + break; + } + } } - String lowerContentType = contentType.toLowerCase(); - return (lowerContentType.startsWith("text/html") || lowerContentType - .startsWith("application/xhtml+xml")); + return isText; } private static void appendParameters(StringBuilder buf, String charset, Added: trunk/webassembletool-core/src/test/java/net/webassembletool/DriverConfigurationTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/DriverConfigurationTest.java (rev 0) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/DriverConfigurationTest.java 2010-12-15 09:23:42 UTC (rev 567) @@ -0,0 +1,75 @@ +package net.webassembletool; + +import java.util.Properties; + +import junit.framework.TestCase; + +/** + * DriverConfiguration test case. + * + * @author Alexis Thaveau + * + */ +public class DriverConfigurationTest extends TestCase { + + DriverConfiguration defaultConfig; + + @Override + protected void setUp() throws Exception { + defaultConfig = new DriverConfiguration("test", new Properties()); + + } + + /** + * Test default configuration + */ + public void testDefaultConfig() { + // Parsable contentTypes + assertTrue("text/html is not in default parsable cotent-types", + defaultConfig.getParsableContentTypes().contains("text/html")); + assertTrue( + "application/xhtml+xml is not in default parsable cotent-types", + defaultConfig.getParsableContentTypes().contains( + "application/xhtml+xml")); + + } + + /** + * Test property parsableContentTypes + */ + public void testParsableContentTypes() { + Properties properties = new Properties(); + properties.put("parsableContentTypes", "text/plain"); + DriverConfiguration config = new DriverConfiguration("test-parsable", + properties); + assertEquals("parsableContentTypes should contains only 1 element", 1, + config.getParsableContentTypes().size()); + assertEquals("parsableContentTypes should contains text/plain", + "text/plain", config.getParsableContentTypes().get(0)); + + properties = new Properties(); + properties.put("parsableContentTypes", "text/plain, text/html"); + config = new DriverConfiguration("test-parsable", properties); + assertEquals("parsableContentTypes should contains only 2 elements", 2, + config.getParsableContentTypes().size()); + assertEquals("parsableContentTypes should contains text/plain", + "text/plain", config.getParsableContentTypes().get(0)); + + assertEquals("parsableContentTypes should contains text/html", + "text/html", config.getParsableContentTypes().get(1)); + + properties = new Properties(); + properties.put("parsableContentTypes", + "text/plain, text/html,application/x"); + config = new DriverConfiguration("test-parsable", properties); + assertEquals("parsableContentTypes should contains only 3 elements", 3, + config.getParsableContentTypes().size()); + assertEquals("parsableContentTypes should contains text/plain", + "text/plain", config.getParsableContentTypes().get(0)); + assertEquals("parsableContentTypes should contains text/html", + "text/html", config.getParsableContentTypes().get(1)); + assertEquals("parsableContentTypes should contains application/x", + "application/x", config.getParsableContentTypes().get(2)); + + } +} Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/resource/ResourceUtilsTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/resource/ResourceUtilsTest.java 2010-11-30 12:05:46 UTC (rev 566) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/resource/ResourceUtilsTest.java 2010-12-15 09:23:42 UTC (rev 567) @@ -6,6 +6,7 @@ import junit.framework.TestCase; import net.webassembletool.Driver; +import net.webassembletool.DriverConfiguration; import net.webassembletool.ResourceContext; import org.easymock.EasyMock; @@ -27,9 +28,10 @@ null, request, null); resourceContext.setProxy(true); EasyMock.replay(request); - assertEquals("http://www.foo.com/test", ResourceUtils - .getHttpUrlWithQueryString(resourceContext)); + assertEquals("http://www.foo.com/test", + ResourceUtils.getHttpUrlWithQueryString(resourceContext)); } + public void testGetHttpUrlWithQueryStringAbsoluteurl() { Properties props = new Properties(); props.put("remoteUrlBase", "http://www.foo.com/"); @@ -41,12 +43,34 @@ "ISO-8859-1"); EasyMock.expect(request.getQueryString()).andReturn(null); EasyMock.expect(request.getSession(false)).andReturn(null); - ResourceContext resourceContext = new ResourceContext(driver, "http://www.bar.com/test", - null, request, null); + ResourceContext resourceContext = new ResourceContext(driver, + "http://www.bar.com/test", null, request, null); resourceContext.setProxy(true); EasyMock.replay(request); - assertEquals("http://www.bar.com/test", ResourceUtils - .getHttpUrlWithQueryString(resourceContext)); + assertEquals("http://www.bar.com/test", + ResourceUtils.getHttpUrlWithQueryString(resourceContext)); } + public void testIsTextContentType() { + DriverConfiguration config = new DriverConfiguration("test", + new Properties()); + assertTrue(ResourceUtils.isTextContentType("text/html", + config.getParsableContentTypes())); + + assertTrue(ResourceUtils.isTextContentType("application/xhtml+xml", + config.getParsableContentTypes())); + + assertFalse(ResourceUtils.isTextContentType("text/plain", + config.getParsableContentTypes())); + + Properties properties = new Properties(); + properties.setProperty("parsableContentTypes", "text/plain"); + + config = new DriverConfiguration("test", properties); + assertTrue(ResourceUtils.isTextContentType("text/plain", + config.getParsableContentTypes())); + assertFalse(ResourceUtils.isTextContentType("text/html", + config.getParsableContentTypes())); + + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ath...@us...> - 2011-01-20 16:01:54
|
Revision: 569 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=569&view=rev Author: athaveau Date: 2011-01-20 16:01:47 +0000 (Thu, 20 Jan 2011) Log Message: ----------- Fix Url to http://www.esigate.org Modified Paths: -------------- trunk/pom.xml trunk/src/main/resources/README.txt trunk/src/site/resources/examples/templates/sparkle/index.html trunk/src/site/resources/sitemap.xml trunk/src/site/site.xml trunk/src/site/xdoc/maven.xml trunk/webassembletool-core/src/test/java/net/webassembletool/cache/MemoryOutputTest.java trunk/webassembletool-maven/webassembletool-staticassembly-plugin/src/site/xdoc/usage.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/pom.xml 2011-01-20 16:01:47 UTC (rev 569) @@ -49,7 +49,7 @@ <unsubscribe>https://lists.sourceforge.net/lists/listinfo/webassembletool-commits</unsubscribe> </mailingList> </mailingLists> - <url>http://webassembletool.sourceforge.net/</url> + <url>http://www.esigate.org/</url> <licenses> <license> <name>Apache Software License</name> @@ -379,7 +379,7 @@ <site> <id>webassembletool-site</id> <name>ESIGate</name> - <url>sftp://web.sourceforge.net/home/groups/w/we/webassembletool/htdocs</url> + <url>scp://shell.sourceforge.net/home/groups/w/we/webassembletool/htdocs</url> </site> </distributionManagement> <properties> Modified: trunk/src/main/resources/README.txt =================================================================== --- trunk/src/main/resources/README.txt 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/src/main/resources/README.txt 2011-01-20 16:01:47 UTC (rev 569) @@ -4,4 +4,4 @@ - src: the source files for the project See the documentation for further information: -http://webassembletool.sourceforge.net \ No newline at end of file +http://www.esigate.org \ No newline at end of file Modified: trunk/src/site/resources/examples/templates/sparkle/index.html =================================================================== --- trunk/src/site/resources/examples/templates/sparkle/index.html 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/src/site/resources/examples/templates/sparkle/index.html 2011-01-20 16:01:47 UTC (rev 569) @@ -23,7 +23,7 @@ </head> <body> <div id="header"> - <h1><a href="http://webassembletool.sourceforge.net/">Web Assemble Tool</a></h1> + <h1><a href="http://www.esigate.org/">Web Assemble Tool</a></h1> <h2><a href="http://freecsstemplates.org/">Template is : Sparkle by Free Css Templates </a></h2> </div> <div id="menu"> Modified: trunk/src/site/resources/sitemap.xml =================================================================== --- trunk/src/site/resources/sitemap.xml 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/src/site/resources/sitemap.xml 2011-01-20 16:01:47 UTC (rev 569) @@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> - <loc>http://webassembletool.sourceforge.net/</loc> + <loc>http://www.esigate.org/</loc> <changefreq>weekly</changefreq> <priority>0.8</priority> </url> <url> - <loc>http://webassembletool.sourceforge.net/index.html</loc> + <loc>http://www.esigate.org/index.html</loc> <changefreq>weekly</changefreq> <priority>0.0</priority> </url> Modified: trunk/src/site/site.xml =================================================================== --- trunk/src/site/site.xml 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/src/site/site.xml 2011-01-20 16:01:47 UTC (rev 569) @@ -34,7 +34,7 @@ <links> <item name="Maven repo" - href="http://webassembletool.sourceforge.net/maven/repository/" /> + href="http://www.esigate.org/maven/repository/" /> <item name="Change log" href="https://sourceforge.net/apps/mantisbt/webassembletool/changelog_page.php" /> <item name="Roadmap" Modified: trunk/src/site/xdoc/maven.xml =================================================================== --- trunk/src/site/xdoc/maven.xml 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/src/site/xdoc/maven.xml 2011-01-20 16:01:47 UTC (rev 569) @@ -20,7 +20,7 @@ <repository> <id>webassembletool-repository</id> <name>Website Assembling Toolkit repository</name> - <url>http://webassembletool.sourceforge.net/maven/repository</url> + <url>http://www.esigate.org/maven/repository</url> </repository> ]]></source> </section> Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/MemoryOutputTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/MemoryOutputTest.java 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/MemoryOutputTest.java 2011-01-20 16:01:47 UTC (rev 569) @@ -36,7 +36,7 @@ assertNull(memoryOutput.toResource()); // Size =0 (means no limit) : content is written - // see http://webassembletool.sourceforge.net/configuration.html + // see http://www.esigate.org/configuration.html memoryOutput = new CacheOutput(0); memoryOutput.setCharsetName(CHARSET); memoryOutput.open(); Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/src/site/xdoc/usage.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/src/site/xdoc/usage.xml 2010-12-15 10:41:22 UTC (rev 568) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/src/site/xdoc/usage.xml 2011-01-20 16:01:47 UTC (rev 569) @@ -26,7 +26,7 @@ The simplest way is to generate your project with the archetype : <source><![CDATA[ mvn archetype:generate - -DarchetypeRepository=http://webassembletool.sourceforge.net/maven/repository + -DarchetypeRepository=http://www.esigate.org/maven/repository -DarchetypeArtifactId=webassembletool-staticassembly-archetype -DarchetypeGroupId=net.sourceforge.webassembletool.maven -DarchetypeVersion=RELEASE ]]></source> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-02-17 15:36:46
|
Revision: 574 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=574&view=rev Author: sbernatsky Date: 2011-02-17 15:36:39 +0000 (Thu, 17 Feb 2011) Log Message: ----------- #33: move to slf4j from commons-logging Modified Paths: -------------- trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java trunk/webassembletool-core/pom.xml trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/DriverFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/extension/ExtensionFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java trunk/webassembletool-core/src/main/java/net/webassembletool/tags/BlockRenderer.java trunk/webassembletool-core/src/main/java/net/webassembletool/tags/TemplateRenderer.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java trunk/webassembletool-core/src/main/java/net/webassembletool/vars/VariablesResolver.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DefaultErrorTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ErrorDefinitionTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ParameterTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ReplaceTag.java trunk/webassembletool-wicket/pom.xml trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatDriverContainer.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATBlock.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATTemplate.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/utils/WATBufferedResponse.java Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-02-17 15:36:39 UTC (rev 574) @@ -32,6 +32,12 @@ <type>jar</type> <scope>test</scope> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-nop</artifactId> + <version>1.6.1</version> + <scope>test</scope> + </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-02-17 15:36:39 UTC (rev 574) @@ -9,8 +9,8 @@ import junit.framework.TestCase; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import com.meterware.httpunit.GetMethodWebRequest; import com.meterware.httpunit.WebConversation; @@ -52,7 +52,7 @@ private final static String AGGREGATOR = "http://localhost:8080/webassembletool-app-aggregator/"; private final static String AGGREGATOR_NO_CACHE = "http://localhost:8080/webassembletool-app-aggregator/nocache/ag1/"; - private static final Log LOG = LogFactory.getLog(PerformanceTestCase.class); + private static final Logger LOG = LoggerFactory.getLogger(PerformanceTestCase.class); /** * Execute a get request Modified: trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java =================================================================== --- trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java 2011-02-17 15:36:39 UTC (rev 574) @@ -13,26 +13,22 @@ import net.webassembletool.http.HttpClientRequest; import net.webassembletool.http.HttpClientResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.jasig.cas.client.authentication.AttributePrincipal; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class CasAuthenticationHandler implements AuthenticationHandler { - private final static Log LOG = LogFactory - .getLog(AuthenticationHandler.class); + private final static Logger LOG = LoggerFactory.getLogger(AuthenticationHandler.class); private final static String SECOND_REQUEST = "SECOND_REQUEST"; private String loginUrl = "/login"; - private String addCasAuthentication(String location, - ResourceContext requestContext) { - Principal principal = requestContext.getOriginalRequest() - .getUserPrincipal(); + private String addCasAuthentication(String location, ResourceContext requestContext) { + Principal principal = requestContext.getOriginalRequest().getUserPrincipal(); if (principal != null && principal instanceof AttributePrincipal) { AttributePrincipal casPrincipal = (AttributePrincipal) principal; LOG.debug("User logged in CAS as: " + casPrincipal.getName()); String casProxyTicket = casPrincipal.getProxyTicketFor(location); - LOG.debug("Proxy ticket retrieved: " + casPrincipal.getName() - + " for service: " + location + " : " + casProxyTicket); + LOG.debug("Proxy ticket retrieved: " + casPrincipal.getName() + " for service: " + location + " : " + casProxyTicket); if (casProxyTicket != null) { if (location.indexOf("?") > 0) { return location + "&ticket=" + casProxyTicket; @@ -55,10 +51,8 @@ } } - public boolean needsNewRequest(HttpClientResponse httpClientResponse, - ResourceContext requestContext) { - HttpServletRequest httpServletRequest = requestContext - .getOriginalRequest(); + public boolean needsNewRequest(HttpClientResponse httpClientResponse, ResourceContext requestContext) { + HttpServletRequest httpServletRequest = requestContext.getOriginalRequest(); if (httpServletRequest.getAttribute(SECOND_REQUEST) != null) { // Calculating the URL we may have been redirected to, as // automatic redirect following is activated @@ -66,10 +60,8 @@ if (currentLocation != null && currentLocation.contains(loginUrl)) { // If the user is authenticated we need a second request with // the proxy ticket - Principal principal = requestContext.getOriginalRequest() - .getUserPrincipal(); - if (principal != null - && principal instanceof AttributePrincipal) { + Principal principal = requestContext.getOriginalRequest().getUserPrincipal(); + if (principal != null && principal instanceof AttributePrincipal) { return true; } } @@ -77,19 +69,15 @@ return false; } - public void preRequest(HttpClientRequest request, - ResourceContext requestContext) { - HttpServletRequest httpServletRequest = requestContext - .getOriginalRequest(); + public void preRequest(HttpClientRequest request, ResourceContext requestContext) { + HttpServletRequest httpServletRequest = requestContext.getOriginalRequest(); if (httpServletRequest.getAttribute(SECOND_REQUEST) != null) { - request.setUri(addCasAuthentication(request.getUri(), - requestContext)); + request.setUri(addCasAuthentication(request.getUri(), requestContext)); } httpServletRequest.setAttribute(SECOND_REQUEST, true); } - public void render(ResourceContext requestContext, String src, Writer out) - throws IOException, HttpErrorPage { + public void render(ResourceContext requestContext, String src, Writer out) throws IOException, HttpErrorPage { // Just copy src to out out.write(src); } Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/pom.xml 2011-02-17 15:36:39 UTC (rev 574) @@ -19,16 +19,17 @@ <scope>provided</scope> </dependency> <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.1.1</version> - </dependency> - <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.0.1</version> <type>jar</type> <scope>compile</scope> + <exclusions> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>opensymphony</groupId> @@ -43,6 +44,10 @@ <artifactId>servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> </exclusions> </dependency> <dependency> @@ -90,5 +95,21 @@ <type>jar</type> <scope>compile</scope> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-nop</artifactId> + <version>1.6.1</version> + <scope>test</scope> + </dependency> </dependencies> </project> \ No newline at end of file Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-02-17 15:36:39 UTC (rev 574) @@ -53,8 +53,8 @@ import net.webassembletool.xml.XpathRenderer; import net.webassembletool.xml.XsltRenderer; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.HttpHost; import org.apache.http.client.HttpClient; import org.apache.http.client.params.ClientPNames; @@ -81,7 +81,7 @@ * @contributor Nicolas Richeton */ public class Driver { - private static final Log LOG = LogFactory.getLog(Driver.class); + private static final Logger LOG = LoggerFactory.getLogger(Driver.class); private final DriverConfiguration config; private final Cache cache; private final HttpClient httpClient; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverFactory.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverFactory.java 2011-02-17 15:36:39 UTC (rev 574) @@ -8,8 +8,8 @@ import java.util.Map.Entry; import java.util.Properties; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Factory class used to configure and retrieve {@linkplain Driver} INSTANCIES. @@ -17,7 +17,7 @@ * @author Stanislav Bernatskyi */ public class DriverFactory { - private static final Log LOG = LogFactory.getLog(DriverFactory.class); + private static final Logger LOG = LoggerFactory.getLogger(DriverFactory.class); private static final String DEFAULT_INSTANCE = "default"; private static final Map<String, Driver> INSTANCIES = new HashMap<String, Driver>(); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-02-17 15:36:39 UTC (rev 574) @@ -8,8 +8,8 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Servlet used to proxy requests from a remote application. @@ -18,7 +18,7 @@ */ public class ProxyServlet extends HttpServlet { private static final long serialVersionUID = 1L; - private static final Log LOG = LogFactory.getLog(ProxyServlet.class); + private static final Logger LOG = LoggerFactory.getLogger(ProxyServlet.class); private String provider; @Override Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-02-17 15:36:39 UTC (rev 574) @@ -16,8 +16,8 @@ import javax.servlet.http.HttpServletRequestWrapper; import javax.servlet.http.HttpServletResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Reverse Proxy servlet with rewrite abilities. It will usually be mapped on * @@ -197,7 +197,7 @@ } - private static Log logger = LogFactory.getLog(RewriteProxyServlet.class); + private static Logger logger = LoggerFactory.getLogger(RewriteProxyServlet.class); private static final long serialVersionUID = 8479657871058986339L; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-02-17 15:36:39 UTC (rev 574) @@ -12,8 +12,8 @@ import net.webassembletool.HttpErrorPage; import net.webassembletool.esi.EsiRenderer; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Servlet used to proxy requests from a remote application. @@ -22,7 +22,7 @@ */ public class AggregatorServlet extends HttpServlet { private static final long serialVersionUID = 1L; - private static final Log LOG = LogFactory.getLog(AggregatorServlet.class); + private static final Logger LOG = LoggerFactory.getLogger(AggregatorServlet.class); private String provider; @Override Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java 2011-02-17 15:36:39 UTC (rev 574) @@ -26,8 +26,8 @@ import net.webassembletool.http.HttpClientRequest; import net.webassembletool.http.HttpClientResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Forward session and/or request attributes as request headers. @@ -36,8 +36,7 @@ */ public class RequestAuthenticationHandler implements AuthenticationHandler { private String headerPrefix = "X-ATTR-"; - private static Log logger = LogFactory - .getLog(RequestAuthenticationHandler.class); + private static Logger logger = LoggerFactory.getLogger(RequestAuthenticationHandler.class); private final ArrayList<String> sessionAttributes = new ArrayList<String>(); private final ArrayList<String> requestAttributes = new ArrayList<String>(); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java 2011-02-17 15:36:39 UTC (rev 574) @@ -8,8 +8,8 @@ import net.webassembletool.resource.Resource; import net.webassembletool.resource.ResourceUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Represents a local interface to caching system. @@ -19,7 +19,7 @@ * @author Francois-Xavier Bonnet */ public class Cache { - private static Log LOG = LogFactory.getLog(Cache.class); + private static Logger LOG = LoggerFactory.getLogger(Cache.class); private final Storage storage; public Cache() { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-02-17 15:36:39 UTC (rev 574) @@ -20,15 +20,15 @@ import net.webassembletool.resource.Resource; import net.webassembletool.util.Rfc2616; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @author Francois-Xavier Bonnet * @author Nicolas Richeton */ class CacheEntry { - private static final Log LOG = LogFactory.getLog(CacheEntry.class); + private static final Logger LOG = LoggerFactory.getLogger(CacheEntry.class); private static final long CLEAN_DELAY = 15 * 60 * 1000; // 15 minutes; private static final Pattern ETAG_PATTERN = Pattern.compile(",?\\s*((W/)?\"[^\"]*\")"); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-02-17 15:36:39 UTC (rev 574) @@ -17,8 +17,8 @@ import java.util.ArrayList; import java.util.Properties; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.cookie.Cookie; /** @@ -28,7 +28,7 @@ * */ public class FilteringCookieStore extends SerializableBasicCookieStore { - private static Log logger = LogFactory.getLog(FilteringCookieStore.class); + private static Logger logger = LoggerFactory.getLogger(FilteringCookieStore.class); /** * Serialization ID. */ Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/extension/ExtensionFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/extension/ExtensionFactory.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/extension/ExtensionFactory.java 2011-02-17 15:36:39 UTC (rev 574) @@ -22,8 +22,8 @@ import net.webassembletool.cookie.CustomCookieStore; import net.webassembletool.filter.Filter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Factory for all Wat extension classes (authenticator, filters, cookie store). @@ -32,7 +32,7 @@ * */ public class ExtensionFactory { - private static final Log LOG = LogFactory.getLog(ExtensionFactory.class); + private static final Logger LOG = LoggerFactory.getLogger(ExtensionFactory.class); private static final String EXTENSION_WAT_FILTER = Filter.class.getName(); private static final String EXTENSION_COOKIE_STORE = CustomCookieStore.class Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-02-17 15:36:39 UTC (rev 574) @@ -28,8 +28,8 @@ import net.webassembletool.http.HttpHeaders; import net.webassembletool.output.Output; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Cookie forwarding Filter. @@ -38,7 +38,7 @@ * */ public class CookieForwardingFilter implements Filter { - private static Log logger = LogFactory.getLog(ExtensionFactory.class); + private static Logger logger = LoggerFactory.getLogger(ExtensionFactory.class); public static final String PROP_ATTRIBUTE = "forwardCookies"; private final ArrayList<String> forwardCookies = new ArrayList<String>(); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java 2011-02-17 15:36:39 UTC (rev 574) @@ -23,8 +23,8 @@ import javax.servlet.http.HttpServletRequest; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.HttpEntityEnclosingRequest; import org.apache.http.HttpHost; import org.apache.http.client.HttpClient; @@ -46,7 +46,7 @@ * */ public class HttpClientRequest { - private final static Log LOG = LogFactory.getLog(HttpClientRequest.class); + private final static Logger LOG = LoggerFactory.getLogger(HttpClientRequest.class); private String uri; private final HttpServletRequest originalRequest; private boolean proxy; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-02-17 15:36:39 UTC (rev 574) @@ -20,8 +20,8 @@ import javax.servlet.http.HttpServletResponse; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.HttpHost; @@ -41,7 +41,7 @@ * */ public class HttpClientResponse { - private final static Log LOG = LogFactory.getLog(HttpClientResponse.class); + private final static Logger LOG = LoggerFactory.getLogger(HttpClientResponse.class); private HttpResponse httpResponse; private HttpEntity httpEntity; private int statusCode; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-02-17 15:36:39 UTC (rev 574) @@ -35,8 +35,8 @@ import net.webassembletool.util.Rfc2616; import org.apache.commons.io.IOUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.client.HttpClient; import org.apache.http.protocol.HttpContext; @@ -47,7 +47,7 @@ * @author Nicolas Richeton */ public class HttpResource extends Resource { - private final static Log LOG = LogFactory.getLog(HttpResource.class); + private final static Logger LOG = LoggerFactory.getLogger(HttpResource.class); private HttpClientResponse httpClientResponse; private final ResourceContext target; private final String url; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java 2011-02-17 15:36:39 UTC (rev 574) @@ -14,8 +14,8 @@ import net.webassembletool.http.RewriteUtils; import org.apache.commons.lang.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Utility class to generate URL and path for Resources @@ -24,7 +24,7 @@ */ public class ResourceUtils { - private static final Log LOG = LogFactory.getLog(ResourceUtils.class); + private static final Logger LOG = LoggerFactory.getLogger(ResourceUtils.class); /** * Private constructor Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/tags/BlockRenderer.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/tags/BlockRenderer.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/tags/BlockRenderer.java 2011-02-17 15:36:39 UTC (rev 574) @@ -9,8 +9,8 @@ import net.webassembletool.ResourceContext; import net.webassembletool.parser.Parser; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Block renderer. @@ -22,7 +22,7 @@ * @author Francois-Xavier Bonnet */ public class BlockRenderer implements Renderer, Appendable { - private final static Log LOG = LogFactory.getLog(BlockRenderer.class); + private final static Logger LOG = LoggerFactory.getLogger(BlockRenderer.class); private final static Parser PARSER = new Parser(Pattern .compile("<!--\\$[^>]*\\$-->"), BlockElement.TYPE); private final String page; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/tags/TemplateRenderer.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/tags/TemplateRenderer.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/tags/TemplateRenderer.java 2011-02-17 15:36:39 UTC (rev 574) @@ -10,8 +10,8 @@ import net.webassembletool.ResourceContext; import net.webassembletool.parser.Parser; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Template renderer. @@ -31,7 +31,7 @@ * @author Francois-Xavier Bonnet */ public class TemplateRenderer implements Renderer, Appendable { - private final static Log LOG = LogFactory.getLog(TemplateRenderer.class); + private final static Logger LOG = LoggerFactory.getLogger(TemplateRenderer.class); private final static Parser PARSER = new Parser(Pattern .compile("<!--\\$[^>]*\\$-->"), TemplateElement.TYPE, ParamElement.TYPE); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-02-17 15:36:39 UTC (rev 574) @@ -15,8 +15,8 @@ import net.webassembletool.resource.Resource; import org.apache.commons.lang.StringUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.http.impl.cookie.DateParseException; import org.apache.http.impl.cookie.DateUtils; @@ -33,7 +33,7 @@ } private static final int SECONDS = 1000; - private static final Log LOG = LogFactory.getLog(Rfc2616.class); + private static final Logger LOG = LoggerFactory.getLogger(Rfc2616.class); private final static class CacheControlResponseHeader { private boolean _public = false; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/vars/VariablesResolver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/vars/VariablesResolver.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/vars/VariablesResolver.java 2011-02-17 15:36:39 UTC (rev 574) @@ -26,8 +26,8 @@ import net.webassembletool.ConfigurationException; import net.webassembletool.Driver; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * Manage variables replacement @@ -36,7 +36,7 @@ */ public class VariablesResolver { - private static final Log LOG = LogFactory.getLog(VariablesResolver.class); + private static final Logger LOG = LoggerFactory.getLogger(VariablesResolver.class); static { // Load default settings Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DefaultErrorTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DefaultErrorTag.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DefaultErrorTag.java 2011-02-17 15:36:39 UTC (rev 574) @@ -3,7 +3,7 @@ import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.Tag; -import org.apache.commons.logging.LogFactory; +import org.slf4j.LoggerFactory; /** * 'defaultError' JSP tag. @@ -19,7 +19,7 @@ public int doAfterBody() throws JspException { ErrorManageableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } String value = getBodyContent().getString(); @@ -32,7 +32,7 @@ if (getBodyContent() == null) { ErrorManageableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } parent.setDefaultMessage(""); Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ErrorDefinitionTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ErrorDefinitionTag.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ErrorDefinitionTag.java 2011-02-17 15:36:39 UTC (rev 574) @@ -3,7 +3,7 @@ import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.Tag; -import org.apache.commons.logging.LogFactory; +import org.slf4j.LoggerFactory; /** * 'errorDefinition' JSP tag. @@ -35,7 +35,7 @@ public int doAfterBody() throws JspException { ErrorManageableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ErrorDefinitionTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } String value = getBodyContent().getString(); Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ParameterTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ParameterTag.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ParameterTag.java 2011-02-17 15:36:39 UTC (rev 574) @@ -3,7 +3,7 @@ import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.Tag; -import org.apache.commons.logging.LogFactory; +import org.slf4j.LoggerFactory; /** * Only used inside a tag that implements IParameterTag. This tag add a request parameter to the parent tag, which will be applied on render. @@ -38,7 +38,7 @@ public int doAfterBody() throws JspException { ParametrizableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ParameterTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ParameterTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } String value = getBodyContent().getString(); Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ReplaceTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ReplaceTag.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/ReplaceTag.java 2011-02-17 15:36:39 UTC (rev 574) @@ -3,7 +3,7 @@ import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.BodyTagSupport; import javax.servlet.jsp.tagext.Tag; -import org.apache.commons.logging.LogFactory; +import org.slf4j.LoggerFactory; /** * Only used inside a tag that implements IReplaceableTag. This tag add a replace rule to the parent tag, which will be applied on render. @@ -38,7 +38,7 @@ public int doAfterBody() throws JspException { ReplaceableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ReplaceTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ReplaceTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } if (expression == null) @@ -53,7 +53,7 @@ if (getBodyContent() == null) { ReplaceableTag parent = getFirstAvailableParent(); if (parent == null) { - LogFactory.getLog(ReplaceTag.class).warn("No parent found, skipping tag"); + LoggerFactory.getLogger(ReplaceTag.class).warn("No parent found, skipping tag"); return Tag.SKIP_BODY; } parent.getReplaceRules().put(expression, ""); Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-wicket/pom.xml 2011-02-17 15:36:39 UTC (rev 574) @@ -45,5 +45,11 @@ <type>jar</type> <scope>test</scope> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-nop</artifactId> + <version>1.6.1</version> + <scope>test</scope> + </dependency> </dependencies> </project> \ No newline at end of file Modified: trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatDriverContainer.java =================================================================== --- trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatDriverContainer.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatDriverContainer.java 2011-02-17 15:36:39 UTC (rev 574) @@ -22,16 +22,13 @@ import net.webassembletool.wicket.utils.WATNullResponse; import net.webassembletool.wicket.utils.WATWicketConfiguration; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.wicket.Response; import org.apache.wicket.markup.ComponentTag; import org.apache.wicket.markup.MarkupStream; import org.apache.wicket.markup.html.WebMarkupContainer; /** - * A container for a template parameter. It encloses a block which will be - * inserted into the template. + * A container for a template parameter. It encloses a block which will be inserted into the template. * * <p> * Usage : @@ -62,8 +59,6 @@ * */ public abstract class AbstractWatDriverContainer extends WebMarkupContainer { - private static Log logger = LogFactory - .getLog(AbstractWatDriverContainer.class); private static final long serialVersionUID = 1L; public static final String WAT_ERROR_PREFIX = "net.webassembletool.error"; @@ -115,13 +110,11 @@ /* * (non-Javadoc) * - * @see - * org.apache.wicket.MarkupContainer#onComponentTagBody(org.apache.wicket - * .markup.MarkupStream, org.apache.wicket.markup.ComponentTag) + * @see org.apache.wicket.MarkupContainer#onComponentTagBody(org.apache.wicket .markup.MarkupStream, + * org.apache.wicket.markup.ComponentTag) */ @Override - protected void onComponentTagBody(MarkupStream markupStream, - ComponentTag openTag) { + protected void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag) { // For unit tests, WAT can be disabled. This component will then behave // like a standard MarkupContainer. @@ -141,15 +134,14 @@ } /** - * This method is called when the component is rendered. This is the place - * to do the specific processing and call Driver. + * This method is called when the component is rendered. This is the place to do the specific processing and call + * Driver. * * @param blocks * @param params * @param replaceRules */ - public abstract void process(Map<String, String> blocks, - Map<String, String> params, Map<String, String> replaceRules); + public abstract void process(Map<String, String> blocks, Map<String, String> params, Map<String, String> replaceRules); /** * Write error content according to the error. @@ -158,8 +150,7 @@ * @param response * @param httpStatusCode */ - protected void sendErrorContent(Map<String, String> blocks, - Response response, Integer httpStatusCode) { + protected void sendErrorContent(Map<String, String> blocks, Response response, Integer httpStatusCode) { String errorContent = blocks.get(WAT_ERROR_PREFIX + httpStatusCode); if (errorContent == null) { Modified: trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATBlock.java =================================================================== --- trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATBlock.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATBlock.java 2011-02-17 15:36:39 UTC (rev 574) @@ -25,8 +25,8 @@ import net.webassembletool.HttpErrorPage; import net.webassembletool.wicket.utils.ResponseWriter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.wicket.protocol.http.WebResponse; import org.apache.wicket.protocol.http.servlet.ServletWebRequest; @@ -58,7 +58,7 @@ * */ public class WATBlock extends AbstractWatDriverContainer { - private static final Log LOG = LogFactory.getLog(WATBlock.class); + private static final Logger LOG = LoggerFactory.getLogger(WATBlock.class); private static final long serialVersionUID = 1L; private String blockName = null; Modified: trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATTemplate.java =================================================================== --- trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATTemplate.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATTemplate.java 2011-02-17 15:36:39 UTC (rev 574) @@ -24,14 +24,13 @@ import net.webassembletool.HttpErrorPage; import net.webassembletool.wicket.utils.ResponseWriter; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.wicket.protocol.http.WebResponse; import org.apache.wicket.protocol.http.servlet.ServletWebRequest; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** - * A container for a template parameter. It encloses a block which will be - * inserted into the template. + * A container for a template parameter. It encloses a block which will be inserted into the template. * * <p> * Usage : @@ -62,7 +61,7 @@ * */ public class WATTemplate extends AbstractWatDriverContainer { - private static Log logger = LogFactory.getLog(WATTemplate.class); + private static Logger logger = LoggerFactory.getLogger(WATTemplate.class); private static final long serialVersionUID = 1L; private String name = null; private String page = null; @@ -83,8 +82,7 @@ } @Override - public void process(Map<String, String> blocks, Map<String, String> params, - Map<String, String> replaceRules) { + public void process(Map<String, String> blocks, Map<String, String> params, Map<String, String> replaceRules) { ServletWebRequest servletWebRequest = (ServletWebRequest) getRequest(); HttpServletRequest request = servletWebRequest.getHttpServletRequest(); @@ -93,12 +91,12 @@ Driver driver = getDriver(); try { - driver.renderTemplate(page, name, new ResponseWriter(webResponse), - request, response, blocks, replaceRules, params, false); + driver.renderTemplate(page, name, new ResponseWriter(webResponse), request, response, blocks, replaceRules, params, + false); } catch (IOException e) { - logger.error(e); + logger.error("io error", e); } catch (HttpErrorPage e) { - logger.error(e); + logger.error("http error", e); } } Modified: trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/utils/WATBufferedResponse.java =================================================================== --- trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/utils/WATBufferedResponse.java 2011-02-16 13:44:55 UTC (rev 573) +++ trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/utils/WATBufferedResponse.java 2011-02-17 15:36:39 UTC (rev 574) @@ -20,8 +20,8 @@ import net.webassembletool.wicket.container.WATParam; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.apache.wicket.Response; import org.apache.wicket.protocol.http.WebResponse; @@ -36,7 +36,7 @@ * @see Response */ public class WATBufferedResponse extends WebResponse { - private static final Log LOG = LogFactory.getLog(WATBufferedResponse.class); + private static final Logger LOG = LoggerFactory.getLogger(WATBufferedResponse.class); private final ByteArrayOutputStream baos = new ByteArrayOutputStream(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-02-18 11:50:16
|
Revision: 576 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=576&view=rev Author: sbernatsky Date: 2011-02-18 11:50:10 +0000 (Fri, 18 Feb 2011) Log Message: ----------- https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=33: add slf4j -> log4j logging library into end-user runtime Modified Paths: -------------- trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml Added Paths: ----------- trunk/webassembletool-app-aggregator/src/main/resources/log4j.properties trunk/webassembletool-app-casified-aggregator/src/main/resources/log4j.properties Removed Paths: ------------- trunk/webassembletool-app-aggregator/src/main/resources/commons-logging.properties trunk/webassembletool-app-aggregator/src/main/resources/simplelog.properties trunk/webassembletool-app-casified-aggregator/src/main/resources/commons-logging.properties trunk/webassembletool-app-casified-aggregator/src/main/resources/simplelog.properties Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-02-18 11:50:10 UTC (rev 576) @@ -34,10 +34,16 @@ </dependency> <dependency> <groupId>org.slf4j</groupId> - <artifactId>slf4j-nop</artifactId> + <artifactId>slf4j-log4j12</artifactId> <version>1.6.1</version> - <scope>test</scope> + <scope>runtime</scope> </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.16</version> + <scope>runtime</scope> + </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> Deleted: trunk/webassembletool-app-aggregator/src/main/resources/commons-logging.properties =================================================================== --- trunk/webassembletool-app-aggregator/src/main/resources/commons-logging.properties 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-aggregator/src/main/resources/commons-logging.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -1 +0,0 @@ -org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog \ No newline at end of file Added: trunk/webassembletool-app-aggregator/src/main/resources/log4j.properties =================================================================== --- trunk/webassembletool-app-aggregator/src/main/resources/log4j.properties (rev 0) +++ trunk/webassembletool-app-aggregator/src/main/resources/log4j.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -0,0 +1,51 @@ +log4j.rootLogger=WARN, A + +log4j.appender.A.threshold=TRACE +log4j.appender.A=org.apache.log4j.ConsoleAppender +log4j.appender.A.layout=org.apache.log4j.PatternLayout +log4j.appender.A.layout.ConversionPattern=%d{dd-MM HH:mm:ss} %-8r [%t] %-5p %c %x - %m%n + +### file appender A1 +#log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender +#log4j.appender.A1.DatePattern=.dd-MM-yy +#log4j.appender.A1.File=/var/log/multitrac/multitrac.log +#log4j.appender.A1.Append=true +#log4j.appender.A1.BufferedIO=false +#log4j.appender.A1.layout=org.apache.log4j.PatternLayout +#log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss} %5p %c{1}: - %m%n + +### file appender +#log4j.category.FixTotalHoursInAllProjectsJob = Debug, FileLoger +#log4j.appender.FileLoger=org.apache.log4j.FileAppender +#log4j.appender.FileLoger.maxFileSize=9MB +#log4j.appender.FileLoger.maxBackupIndex=5 +#log4j.appender.FileLoger.File=/var/log/multitrac/SQLLogger_FixTotalHoursInAllProjectsJob.log +#log4j.appender.FileLoger.Append=true +#log4j.appender.FileLoger.BufferedIO=false +#log4j.appender.FileLoger.threshold=DEBUG +#log4j.appender.FileLoger.layout=org.apache.log4j.PatternLayout +#log4j.appender.FileLoger.layout.ConversionPattern=%d{dd-MM HH:mm:ss} : - %m%n + + +log4j.category.com.secondarynet=INFO + +log4j.category.httpclient=INFO +log4j.category.freemarker=INFO +log4j.category.org.hibernate=WARN +#log4j.category.org.hibernate=DEBUG +log4j.category.org.hibernate.SQL=DEBUG +#log4j.category.org.hibernate.jdbc.AbstractBatcher=DEBUG +#log4j.category.org.springframework.security=DEBUG +log4j.category.org.apache.wicket=WARN +#log4j.category.fr.smile.multitrac.tracing=TRACE +log4j.category.test.spring=TRACE +log4j.category.org.apache.solr=WARN +#log4j.category.org.unitils=TRACE +#log4j.category.org.hsqldb=TRACE +#log4j.category.org.dbunit=TRACE +log4j.category.com.opensymphony=WARN +log4j.category.org.apache=WARN +log4j.category.catalia=WARN + +#custom categories +log4j.category.net.webassembletool=ERROR Property changes on: trunk/webassembletool-app-aggregator/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:mime-type + text/plain Deleted: trunk/webassembletool-app-aggregator/src/main/resources/simplelog.properties =================================================================== --- trunk/webassembletool-app-aggregator/src/main/resources/simplelog.properties 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-aggregator/src/main/resources/simplelog.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -1,2 +0,0 @@ -org.apache.commons.logging.simplelog.defaultlog=error -org.apache.commons.logging.simplelog.log.net.webassembletool=error Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-02-18 11:50:10 UTC (rev 576) @@ -64,6 +64,18 @@ <type>war</type> <scope>provided</scope> </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.6.1</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.16</version> + <scope>runtime</scope> + </dependency> </dependencies> <build> <finalName>webassembletool-app-casified-aggregator</finalName> Deleted: trunk/webassembletool-app-casified-aggregator/src/main/resources/commons-logging.properties =================================================================== --- trunk/webassembletool-app-casified-aggregator/src/main/resources/commons-logging.properties 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-casified-aggregator/src/main/resources/commons-logging.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -1 +0,0 @@ -org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog \ No newline at end of file Added: trunk/webassembletool-app-casified-aggregator/src/main/resources/log4j.properties =================================================================== --- trunk/webassembletool-app-casified-aggregator/src/main/resources/log4j.properties (rev 0) +++ trunk/webassembletool-app-casified-aggregator/src/main/resources/log4j.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -0,0 +1,51 @@ +log4j.rootLogger=WARN, A + +log4j.appender.A.threshold=TRACE +log4j.appender.A=org.apache.log4j.ConsoleAppender +log4j.appender.A.layout=org.apache.log4j.PatternLayout +log4j.appender.A.layout.ConversionPattern=%d{dd-MM HH:mm:ss} %-8r [%t] %-5p %c %x - %m%n + +### file appender A1 +#log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender +#log4j.appender.A1.DatePattern=.dd-MM-yy +#log4j.appender.A1.File=/var/log/multitrac/multitrac.log +#log4j.appender.A1.Append=true +#log4j.appender.A1.BufferedIO=false +#log4j.appender.A1.layout=org.apache.log4j.PatternLayout +#log4j.appender.A1.layout.ConversionPattern=%d{HH:mm:ss} %5p %c{1}: - %m%n + +### file appender +#log4j.category.FixTotalHoursInAllProjectsJob = Debug, FileLoger +#log4j.appender.FileLoger=org.apache.log4j.FileAppender +#log4j.appender.FileLoger.maxFileSize=9MB +#log4j.appender.FileLoger.maxBackupIndex=5 +#log4j.appender.FileLoger.File=/var/log/multitrac/SQLLogger_FixTotalHoursInAllProjectsJob.log +#log4j.appender.FileLoger.Append=true +#log4j.appender.FileLoger.BufferedIO=false +#log4j.appender.FileLoger.threshold=DEBUG +#log4j.appender.FileLoger.layout=org.apache.log4j.PatternLayout +#log4j.appender.FileLoger.layout.ConversionPattern=%d{dd-MM HH:mm:ss} : - %m%n + + +log4j.category.com.secondarynet=INFO + +log4j.category.httpclient=INFO +log4j.category.freemarker=INFO +log4j.category.org.hibernate=WARN +#log4j.category.org.hibernate=DEBUG +log4j.category.org.hibernate.SQL=DEBUG +#log4j.category.org.hibernate.jdbc.AbstractBatcher=DEBUG +#log4j.category.org.springframework.security=DEBUG +log4j.category.org.apache.wicket=WARN +#log4j.category.fr.smile.multitrac.tracing=TRACE +log4j.category.test.spring=TRACE +log4j.category.org.apache.solr=WARN +#log4j.category.org.unitils=TRACE +#log4j.category.org.hsqldb=TRACE +#log4j.category.org.dbunit=TRACE +log4j.category.com.opensymphony=WARN +log4j.category.org.apache=WARN +log4j.category.catalia=WARN + +#custom categories +log4j.category.net.webassembletool=ERROR Property changes on: trunk/webassembletool-app-casified-aggregator/src/main/resources/log4j.properties ___________________________________________________________________ Added: svn:mime-type + text/plain Deleted: trunk/webassembletool-app-casified-aggregator/src/main/resources/simplelog.properties =================================================================== --- trunk/webassembletool-app-casified-aggregator/src/main/resources/simplelog.properties 2011-02-17 16:26:35 UTC (rev 575) +++ trunk/webassembletool-app-casified-aggregator/src/main/resources/simplelog.properties 2011-02-18 11:50:10 UTC (rev 576) @@ -1,2 +0,0 @@ -org.apache.commons.logging.simplelog.defaultlog=error -org.apache.commons.logging.simplelog.log.net.webassembletool=debug \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-02-24 12:49:32
|
Revision: 580 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=580&view=rev Author: sbernatsky Date: 2011-02-24 12:49:26 +0000 (Thu, 24 Feb 2011) Log Message: ----------- fix failed tests ('no cookies should appear for the case when no cookies are in request) Modified Paths: -------------- trunk/webassembletool-app-aggregated1/src/main/webapp/vary.jsp trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/VaryAggregatorTest.java Modified: trunk/webassembletool-app-aggregated1/src/main/webapp/vary.jsp =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/vary.jsp 2011-02-23 08:35:15 UTC (rev 579) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/vary.jsp 2011-02-24 12:49:26 UTC (rev 580) @@ -15,22 +15,23 @@ This page display "test-cookie" content. -<% if ( request.getCookies() != null ){ +<% boolean found = false; - Cookie[] cookies = request.getCookies(); - for( int i = 0; i < cookies.length; i ++){ - if( "test-cookie" .equals(cookies[i].getName())){ - %><%=cookies[i].getValue() %><% - found = true; - } + if ( request.getCookies() != null) { + Cookie[] cookies = request.getCookies(); + for (int i = 0; i < cookies.length; i ++) { + if ("test-cookie".equals(cookies[i].getName())) { +%> + test-cookie: <%=cookies[i].getValue() %> +<% + found = true; + } + } } - - if ( !found ){ %> - <%="no cookie" %> - <% } + if ( !found ) { %> + <%="no cookie" %> +<% } %> - } %> Generation time : stime<%=System.currentTimeMillis() %>etime - </body> </html> Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/VaryAggregatorTest.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/VaryAggregatorTest.java 2011-02-23 08:35:15 UTC (rev 579) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/VaryAggregatorTest.java 2011-02-24 12:49:26 UTC (rev 580) @@ -22,8 +22,8 @@ private String sessionId = null; /** - * Send a request with a Cookie "test-cookie" to vary.jsp (which will get - * content from provider) and ensure the result is valid. + * Send a request with a Cookie "test-cookie" to vary.jsp (which will get content from provider) and ensure the + * result is valid. * * @param addCookie * @param value @@ -33,8 +33,7 @@ * @throws IOException * @throws SAXException */ - private String doCookieRequest(boolean addCookie, String value, - boolean refresh) throws MalformedURLException, IOException, + private String doCookieRequest(boolean addCookie, String value, boolean refresh) throws MalformedURLException, IOException, SAXException { WebConversation webConversation = new WebConversation(); @@ -61,9 +60,11 @@ // Ensure content is valid. WebResponse resp = webConversation.getResponse(req); if (addCookie) { - assertTrue(resp.getText().contains(value)); + assertNotNull(resp.getText()); + assertTrue("no value '" + value + "' found", resp.getText().contains(value)); } else { - assertTrue(resp.getText().contains("no cookie")); + assertNotNull(resp.getText()); + assertTrue("no cookie found", resp.getText().contains("no cookie")); } // Ensure vary and Cache-Control header were forwarded @@ -78,13 +79,11 @@ } // Return page timestamp. Can be used to detect cache hits. - return resp.getText().substring(resp.getText().indexOf("stime") + 5, - resp.getText().indexOf("etime")); + return resp.getText().substring(resp.getText().indexOf("stime") + 5, resp.getText().indexOf("etime")); } /** - * Call "vary.jsp" with different cookie values and ensure cache use and - * content are valid. + * Call "vary.jsp" with different cookie values and ensure cache use and content are valid. * * @throws Exception */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-02-24 15:33:07
|
Revision: 584 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=584&view=rev Author: sbernatsky Date: 2011-02-24 15:33:01 +0000 (Thu, 24 Feb 2011) Log Message: ----------- cleanup: exclude unused/provided dependencies from resulted distribution Modified Paths: -------------- trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-cas/pom.xml Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-02-24 14:15:29 UTC (rev 583) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-02-24 15:33:01 UTC (rev 584) @@ -26,6 +26,13 @@ <groupId>org.jasig.cas</groupId> <artifactId>cas-client-core</artifactId> <version>3.1.8</version> + <scope>runtime</scope> + <exclusions> + <exclusion> + <artifactId>servlet-api</artifactId> + <groupId>javax.servlet</groupId> + </exclusion> + </exclusions> </dependency> </dependencies> </project> \ No newline at end of file Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-02-24 14:15:29 UTC (rev 583) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-02-24 15:33:01 UTC (rev 584) @@ -26,6 +26,13 @@ <groupId>org.jasig.cas</groupId> <artifactId>cas-client-core</artifactId> <version>3.1.8</version> + <scope>runtime</scope> + <exclusions> + <exclusion> + <artifactId>servlet-api</artifactId> + <groupId>javax.servlet</groupId> + </exclusion> + </exclusions> </dependency> </dependencies> </project> \ No newline at end of file Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-02-24 14:15:29 UTC (rev 583) +++ trunk/webassembletool-cas/pom.xml 2011-02-24 15:33:01 UTC (rev 584) @@ -33,6 +33,12 @@ <version>3.1.8</version> <type>jar</type> <scope>compile</scope> + <exclusions> + <exclusion> + <artifactId>commons-logging</artifactId> + <groupId>commons-logging</groupId> + </exclusion> + </exclusions> </dependency> </dependencies> </project> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-02-25 10:34:40
|
Revision: 587 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=587&view=rev Author: sbernatsky Date: 2011-02-25 10:34:31 +0000 (Fri, 25 Feb 2011) Log Message: ----------- https://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=14 : revert redirect changes as they break cas SSO functionality (depends on rediration) Modified Paths: -------------- trunk/webassembletool-app-casified-aggregator/src/test/java/net/webassembletool/cas/CasTest.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java Modified: trunk/webassembletool-app-casified-aggregator/src/test/java/net/webassembletool/cas/CasTest.java =================================================================== --- trunk/webassembletool-app-casified-aggregator/src/test/java/net/webassembletool/cas/CasTest.java 2011-02-25 09:00:20 UTC (rev 586) +++ trunk/webassembletool-app-casified-aggregator/src/test/java/net/webassembletool/cas/CasTest.java 2011-02-25 10:34:31 UTC (rev 587) @@ -21,20 +21,18 @@ @Override public void setUp() throws Exception { - super.setUp(); webConversation = new WebConversation(); + // webConversation.setExceptionsThrownOnErrorStatus(false); webConversation.getClientProperties().setAutoRedirect(false); + webConversation.getClientProperties().setAcceptCookies(true); } - public void testLogin() throws MalformedURLException, IOException, - SAXException { + public void testLogin() throws MalformedURLException, IOException, SAXException { // Trying to access the application WebRequest req = new GetMethodWebRequest( "http://localhost:8080/webassembletool-app-casified-aggregator/aggregated1/block.jsp"); WebResponse resp = webConversation.getResponse(req); - assertEquals("We should have been redirected to CAS", - HttpServletResponse.SC_MOVED_TEMPORARILY, resp - .getResponseCode()); + assertEquals("We should have been redirected to CAS", HttpServletResponse.SC_MOVED_TEMPORARILY, resp.getResponseCode()); assertEquals( "We should have been redirected to CAS", "http://localhost:8080/webassembletool-app-cas/login?service=http%3A%2F%2Flocalhost%3A8080%2Fwebassembletool-app-casified-aggregator%2Faggregated1%2Fblock.jsp", @@ -43,37 +41,28 @@ req = new GetMethodWebRequest( "http://localhost:8080/webassembletool-app-cas/login?service=http%3A%2F%2Flocalhost%3A8080%2Fwebassembletool-app-casified-aggregator%2Faggregated1%2Fblock.jsp"); resp = webConversation.getResponse(req); - assertEquals("CAS not responding properly", HttpServletResponse.SC_OK, - resp.getResponseCode()); + assertEquals("CAS not responding properly", HttpServletResponse.SC_OK, resp.getResponseCode()); WebForm loginForm = resp.getForms()[0]; loginForm.setParameter("username", "test"); loginForm.setParameter("password", "test"); resp = loginForm.submit(); - assertEquals("We should have been redirected to the application", - HttpServletResponse.SC_MOVED_TEMPORARILY, resp - .getResponseCode()); + assertEquals("We should have been redirected to the application", HttpServletResponse.SC_MOVED_TEMPORARILY, + resp.getResponseCode()); String redirectLocation = resp.getHeaderField("Location"); - StringAssert - .assertStartsWith( - "We should have been redirected to the application with a ticket", - "http://localhost:8080/webassembletool-app-casified-aggregator/aggregated1/block.jsp?ticket=", - redirectLocation); + StringAssert.assertStartsWith("We should have been redirected to the application with a ticket", + "http://localhost:8080/webassembletool-app-casified-aggregator/aggregated1/block.jsp", redirectLocation); + StringAssert.assertContains("We should have been redirected to the application with a ticket", "ticket=", + redirectLocation); // Return to the application webConversation.getClientProperties().setAutoRedirect(true); req = new GetMethodWebRequest(redirectLocation); resp = webConversation.getResponse(req); - assertEquals( - "We should have been redirected to the same page without the ticket", - "http://localhost:8080/webassembletool-app-casified-aggregator/aggregated1/block.jsp", - resp.getURL().toString()); + assertEquals("We should have been redirected to the same page without the ticket", + "http://localhost:8080/webassembletool-app-casified-aggregator/aggregated1/block.jsp", resp.getURL().toString()); String pageContent = resp.getText(); - StringAssert.assertContains( - "The page should contain a page from aggregated1", - "Page from aggregated1", pageContent); - StringAssert.assertContains( - "The page should contain a block from aggregated2", - "This is a block from aggregated2", pageContent); - StringAssert.assertContains("The user should be authenticated as test", - "User: test", pageContent); + StringAssert.assertContains("The page should contain a page from aggregated1", "Page from aggregated1", pageContent); + StringAssert.assertContains("The page should contain a block from aggregated2", "This is a block from aggregated2", + pageContent); + StringAssert.assertContains("The user should be authenticated as test", "User: test", pageContent); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-02-25 09:00:20 UTC (rev 586) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-02-25 10:34:31 UTC (rev 587) @@ -23,7 +23,6 @@ import java.util.zip.GZIPInputStream; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import net.webassembletool.Driver; import net.webassembletool.ResourceContext; @@ -97,18 +96,17 @@ filter.preRequest(httpClientRequest, resourceContext); } httpClientResponse = httpClientRequest.execute(httpClient, httpContext); - if (httpClientResponse != null - && (httpClientResponse.getStatusCode() == HttpServletResponse.SC_MOVED_PERMANENTLY || httpClientResponse - .getStatusCode() == HttpServletResponse.SC_MOVED_TEMPORARILY)) { - if (!httpClientResponse.getCurrentLocation().startsWith( - resourceContext.getDriver().getBaseURL())) { - LOG.debug("Current location should be started with: " - + resourceContext.getDriver().getBaseURL()); - throw new IOException( - "Current location should be started with: " - + resourceContext.getDriver().getBaseURL()); - } - } + // if (httpClientResponse != null + // && (httpClientResponse.getStatusCode() == HttpServletResponse.SC_MOVED_PERMANENTLY || httpClientResponse + // .getStatusCode() == HttpServletResponse.SC_MOVED_TEMPORARILY)) { + // if (!httpClientResponse.getCurrentLocation().startsWith( + // resourceContext.getDriver().getBaseURL())) { + // LOG.debug("Current location should be started with: " + // + resourceContext.getDriver().getBaseURL()); + // throw new IOException("Current location should be started with: " + resourceContext.getDriver().getBaseURL() + // + " but it is: " + httpClientResponse.getCurrentLocation()); + // } + // } // Store context in session if cookies where created if (newUserContext && !userContext.getCookieStore().getCookies().isEmpty()) { Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java 2011-02-25 09:00:20 UTC (rev 586) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java 2011-02-25 10:34:31 UTC (rev 587) @@ -28,7 +28,11 @@ public class HttpResourceTest extends TestCase { - public void testRedirect() throws Exception{ + public void testEmpty() { + // reserved only to hide warnings about test cases without tests + } + + public void doNotTestRedirect() throws Exception { HttpClient httpClient = EasyMock.createMock(HttpClient.class); HttpServletRequest originalRequest = EasyMock.createMock(HttpServletRequest.class); HttpServletResponse originalResponse = EasyMock.createMock(HttpServletResponse.class); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2011-03-17 12:25:41
|
Revision: 592 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=592&view=rev Author: fxbonnet Date: 2011-03-17 12:25:34 +0000 (Thu, 17 Mar 2011) Log Message: ----------- Refactored error handling and added status message Modified Paths: -------------- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/NullResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/Resource.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java trunk/webassembletool-core/src/test/java/net/webassembletool/util/Rfc2616Test.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeBlockTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeTemplateTag.java Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-17 12:25:34 UTC (rev 592) @@ -502,7 +502,7 @@ } private final void renderResource(ResourceContext resourceContext, - Output output) { + Output output) throws HttpErrorPage { String httpUrl = ResourceUtils .getHttpUrlWithQueryString(resourceContext); MultipleOutput multipleOutput = new MultipleOutput(); @@ -621,18 +621,22 @@ Rfc2616.renderResource(config, new NullResource(), multipleOutput); } } catch (Throwable t) { - // In case there was a problem during rendering (client abort for - // exemple), all the output - // should have been gracefully closed in the render method but we - // must discard the entry inside the cache or the file system - // because it is not complete - if (memoryOutput != null) { - memoryOutput = null; + if (t instanceof HttpErrorPage) { + throw (HttpErrorPage) t; + } else { + // In case there was a problem during rendering (client abort for + // exemple), all the output + // should have been gracefully closed in the render method but we + // must discard the entry inside the cache or the file system + // because it is not complete + if (memoryOutput != null) { + memoryOutput = null; + } + if (fileOutput != null) { + fileOutput.delete(); + } + throw new ResponseException(httpUrl + " could not be retrieved", t); } - if (fileOutput != null) { - fileOutput.delete(); - } - throw new ResponseException(httpUrl + " could not be retrieved", t); } finally { // Free all the resources if (cachedResource != null) { @@ -653,7 +657,7 @@ /** * This method returns the content of an url as a StringOutput. The result * is cached into the request scope in order not to send several requests if - * you need serveral blocks in the same page to build the final page. + * you need several blocks in the same page to build the final page. * * @param target * the target resource @@ -676,10 +680,6 @@ request.setAttribute(url, result); } } - if (result.getStatusCode() != HttpServletResponse.SC_OK) { - throw new HttpErrorPage(result.getStatusCode(), - result.getStatusMessage(), result.toString()); - } return result; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-03-17 12:25:34 UTC (rev 592) @@ -1,5 +1,8 @@ package net.webassembletool; +import java.io.IOException; +import java.io.Writer; + /** * Exception thrown when an error occurred retrieving a resource * @@ -27,7 +30,7 @@ return statusMessage; } - public String getErrorPageContent() { - return errorPageContent; + public void render(Writer writer) throws IOException { + writer.write(errorPageContent); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-03-17 12:25:34 UTC (rev 592) @@ -34,7 +34,8 @@ DriverFactory.getInstance(provider) .proxy(relUrl, request, response); } catch (HttpErrorPage e) { - throw new ServletException(e); + response.setStatus(e.getStatusCode()); + e.render(response.getWriter()); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-03-17 12:25:34 UTC (rev 592) @@ -391,7 +391,8 @@ response); return; } catch (HttpErrorPage e) { - throw new ServletException(e); + response.setStatus(e.getStatusCode()); + e.render(response.getWriter()); } } else { // Create target Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-03-17 12:25:34 UTC (rev 592) @@ -43,7 +43,8 @@ new EsiRenderer(request, response, DriverFactory .getInstance(provider))); } catch (HttpErrorPage e) { - throw new ServletException(e); + response.setStatus(e.getStatusCode()); + e.render(response.getWriter()); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-03-17 12:25:34 UTC (rev 592) @@ -23,6 +23,7 @@ private boolean responseBody; private String cacheKey; private Date localDate; + private String statusMessage; @Override public boolean equals(Object obj) { @@ -124,4 +125,13 @@ public String toString() { return cacheKey; } + + @Override + public String getStatusMessage() { + return statusMessage; + } + + public void setStatusMessage(String statusMessage) { + this.statusMessage = statusMessage; + } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java 2011-03-17 12:25:34 UTC (rev 592) @@ -79,4 +79,9 @@ Object value = headersFile.getHeader(name); return value != null ? value.toString() : null; } + + @Override + public String getStatusMessage() { + return headersFile.getStatusMessage(); + } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-03-17 12:25:34 UTC (rev 592) @@ -263,6 +263,11 @@ return httpClientResponse.getStatusCode(); } + @Override + public String getStatusMessage() { + return httpClientResponse.getStatusText(); + } + /** * @see java.lang.Object#toString() */ Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/resource/NullResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/resource/NullResource.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/resource/NullResource.java 2011-03-17 12:25:34 UTC (rev 592) @@ -39,4 +39,9 @@ return null; } + @Override + public String getStatusMessage() { + return "Not found"; + } + } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/resource/Resource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/resource/Resource.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/resource/Resource.java 2011-03-17 12:25:34 UTC (rev 592) @@ -42,6 +42,13 @@ */ public abstract int getStatusCode(); + /** + * Returns the HTTP status message for this resource + * + * @return status message + */ + public abstract String getStatusMessage(); + public boolean isError() { int statusCode = getStatusCode(); return statusCode != HttpServletResponse.SC_OK Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-03-17 12:25:34 UTC (rev 592) @@ -12,8 +12,11 @@ import javax.servlet.http.HttpServletResponse; import net.webassembletool.DriverConfiguration; +import net.webassembletool.HttpErrorPage; import net.webassembletool.ResourceContext; +import net.webassembletool.cache.CachedResponse; import net.webassembletool.output.Output; +import net.webassembletool.output.StringOutput; import net.webassembletool.resource.Resource; import org.apache.commons.lang.StringUtils; @@ -120,7 +123,9 @@ String[] varyStringSplit = varyString.split(","); for (String key : varyStringSplit) { String value = resource.getRequestHeader(key); + result.put(key, value); + } return result; } @@ -393,11 +398,27 @@ return false; } - public final static void renderResource(DriverConfiguration config, Resource resource, Output output) throws IOException { - if (HttpServletResponse.SC_NOT_MODIFIED == resource.getStatusCode()) { + public final static void renderResource(DriverConfiguration config, Resource resource, Output output) + throws IOException, HttpErrorPage { + if (resource.isError()) { + String errorPageContent; + StringOutput stringOutput = new StringOutput(); + resource.render(stringOutput); + errorPageContent = stringOutput.toString(); output.setStatusCode(resource.getStatusCode()); + output.setStatusMessage(resource.getStatusMessage()); copyHeaders(config, resource, output); output.open(); + output.write(errorPageContent); + output.close(); + throw new HttpErrorPage(resource.getStatusCode(), + resource.getStatusMessage(), errorPageContent); + } else if (HttpServletResponse.SC_NOT_MODIFIED == resource + .getStatusCode()) { + output.setStatusCode(resource.getStatusCode()); + output.setStatusMessage(resource.getStatusMessage()); + copyHeaders(config, resource, output); + output.open(); output.getOutputStream(); // No response body output.close(); @@ -418,4 +439,5 @@ } } + } Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/util/Rfc2616Test.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/util/Rfc2616Test.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/util/Rfc2616Test.java 2011-03-17 12:25:34 UTC (rev 592) @@ -59,6 +59,12 @@ public Collection<String> getHeaderNames() { return null; } + + @Override + public String getStatusMessage() { + return "OK"; + } + }; Date d = Rfc2616.getExpiration(r); @@ -101,6 +107,12 @@ public Collection<String> getHeaderNames() { return null; } + + @Override + public String getStatusMessage() { + // TODO Auto-generated method stub + return null; + } }; Date date = Rfc2616.getDate(resourceWithoutDate); Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeBlockTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeBlockTag.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeBlockTag.java 2011-03-17 12:25:34 UTC (rev 592) @@ -17,146 +17,147 @@ * @author Francois-Xavier Bonnet */ public class IncludeBlockTag extends BodyTagSupport implements ReplaceableTag, ParametrizableTag, ErrorManageableTag { - private static final long serialVersionUID = 1L; - private String name; - private String page; - private String provider; - private Map<Integer, String> errorMap = new HashMap<Integer, String>(); - private Map<String, String> replaceRules = new HashMap<String, String>(); - private Map<String, String> parameters = new HashMap<String, String>(); - private boolean addQuery = false; - private boolean displayErrorPage = false; - private boolean parseAbsoluteUrl = true; - private String defaultErrorMessage; + private static final long serialVersionUID = 1L; + private String name; + private String page; + private String provider; + private Map<Integer, String> errorMap = new HashMap<Integer, String>(); + private Map<String, String> replaceRules = new HashMap<String, String>(); + private Map<String, String> parameters = new HashMap<String, String>(); + private boolean addQuery = false; + private boolean displayErrorPage = false; + private boolean parseAbsoluteUrl = true; + private String defaultErrorMessage; - public boolean isParseAbsoluteUrl() { - return parseAbsoluteUrl; - } + public boolean isParseAbsoluteUrl() { + return parseAbsoluteUrl; + } - public void setParseAbsoluteUrl(boolean parseAbsoluteUrl) { - this.parseAbsoluteUrl = parseAbsoluteUrl; - } + public void setParseAbsoluteUrl(boolean parseAbsoluteUrl) { + this.parseAbsoluteUrl = parseAbsoluteUrl; + } - public boolean isDisplayErrorPage() { - return displayErrorPage; - } + public boolean isDisplayErrorPage() { + return displayErrorPage; + } - public void setDisplayErrorPage(boolean displayErrorPage) { - this.displayErrorPage = displayErrorPage; - } + public void setDisplayErrorPage(boolean displayErrorPage) { + this.displayErrorPage = displayErrorPage; + } - public boolean isAddQuery() { - return addQuery; - } + public boolean isAddQuery() { + return addQuery; + } - public void setAddQuery(boolean addQuery) { - this.addQuery = addQuery; - } + public void setAddQuery(boolean addQuery) { + this.addQuery = addQuery; + } - public String getName() { - return name; - } + public String getName() { + return name; + } - public void setName(String name) { - this.name = name; - } + public void setName(String name) { + this.name = name; + } - @Override - public int doEndTag() throws JspException { - if (parseAbsoluteUrl) { - if (replaceRules == null) - replaceRules = new HashMap<String, String>(); - String baseUrl = DriverFactory.getInstance(provider).getBaseURL(); - int baseUrlEnd = baseUrl.indexOf('/', baseUrl.indexOf("//") + 2); - if (baseUrlEnd > 0) - baseUrl = baseUrl.substring(0, baseUrlEnd); - replaceRules.put("href=(\"|')/(.*)(\"|')", "href=$1" + baseUrl + "/$2$3"); - replaceRules.put("src=(\"|')/(.*)(\"|')", "src=$1" + baseUrl + "/$2$3"); - } - try { - DriverUtils.renderBlock(provider, page, name, pageContext, replaceRules, parameters, addQuery); - } catch (HttpErrorPage re) { - if (displayErrorPage) - try { - pageContext.getOut().append(re.getErrorPageContent()); - } catch (IOException e) { - throw new JspException(e); - } - else if (errorMap.containsKey(re.getStatusCode())) - try { - pageContext.getOut().append(errorMap.get(re.getStatusCode())); - } catch (IOException e) { - throw new JspException(e); - } - else if (defaultErrorMessage != null) - try { - pageContext.getOut().append(defaultErrorMessage); - } catch (IOException e) { - throw new JspException(e); - } - else - try { - pageContext.getOut().write(re.getStatusCode() + " " + re.getStatusMessage()); - } catch (IOException e) { - throw new JspException(e); - } - } - name = null; - page = null; - provider = null; - errorMap = new HashMap<Integer, String>(); - replaceRules = new HashMap<String, String>(); - parameters = new HashMap<String, String>(); - displayErrorPage = false; - errorMap = new HashMap<Integer, String>(); - defaultErrorMessage = null; - return Tag.EVAL_PAGE; - } + @Override + public int doEndTag() throws JspException { + if (parseAbsoluteUrl) { + if (replaceRules == null) + replaceRules = new HashMap<String, String>(); + String baseUrl = DriverFactory.getInstance(provider).getBaseURL(); + int baseUrlEnd = baseUrl.indexOf('/', baseUrl.indexOf("//") + 2); + if (baseUrlEnd > 0) + baseUrl = baseUrl.substring(0, baseUrlEnd); + replaceRules.put("href=(\"|')/(.*)(\"|')", "href=$1" + baseUrl + "/$2$3"); + replaceRules.put("src=(\"|')/(.*)(\"|')", "src=$1" + baseUrl + "/$2$3"); + } + try { + DriverUtils.renderBlock(provider, page, name, pageContext, replaceRules, parameters, addQuery); + } catch (HttpErrorPage re) { + if (displayErrorPage) + try { + re.render(pageContext.getOut()); + } catch (IOException e) { + throw new JspException(e); + } + else if (errorMap.containsKey(re.getStatusCode())) + try { + pageContext.getOut().append(errorMap.get(re.getStatusCode())); + } catch (IOException e) { + throw new JspException(e); + } + else if (defaultErrorMessage != null) + try { + pageContext.getOut().append(defaultErrorMessage); + } catch (IOException e) { + throw new JspException(e); + } + else + try { + pageContext.getOut().write(re.getStatusCode() + " " + re.getStatusMessage()); + } catch (IOException e) { + throw new JspException(e); + } + } + name = null; + page = null; + provider = null; + errorMap = new HashMap<Integer, String>(); + replaceRules = new HashMap<String, String>(); + parameters = new HashMap<String, String>(); + displayErrorPage = false; + errorMap = new HashMap<Integer, String>(); + defaultErrorMessage = null; + return Tag.EVAL_PAGE; + } - public String getPage() { - return page; - } + public String getPage() { + return page; + } - public void setPage(String page) { - this.page = page; - } + public void setPage(String page) { + this.page = page; + } - public String getProvider() { - return provider; - } + public String getProvider() { + return provider; + } - public void setProvider(String provider) { - this.provider = provider; - } + public void setProvider(String provider) { + this.provider = provider; + } - /* - * (non-Javadoc) - * @see net.webassembletool.taglib.IReplaceableTag#getReplaceRules() - */ - public Map<String, String> getReplaceRules() { - return replaceRules; - } + /* + * (non-Javadoc) + * @see net.webassembletool.taglib.IReplaceableTag#getReplaceRules() + */ + public Map<String, String> getReplaceRules() { + return replaceRules; + } - /* - * (non-Javadoc) - * @see net.webassembletool.taglib.IParameterTag#getParameters() - */ - public Map<String, String> getParameters() { - return parameters; - } + /* + * (non-Javadoc) + * @see net.webassembletool.taglib.IParameterTag#getParameters() + */ + public Map<String, String> getParameters() { + return parameters; + } - /** - * @see net.webassembletool.taglib.ErrorManageableTag#getErrorMap() - */ - public Map<Integer, String> getErrorMap() { - return errorMap; - } + /** + * @see net.webassembletool.taglib.ErrorManageableTag#getErrorMap() + */ + public Map<Integer, String> getErrorMap() { + return errorMap; + } - public String getDefaultMessage() { - return defaultErrorMessage; - } + public String getDefaultMessage() { + return defaultErrorMessage; + } - public void setDefaultMessage(String errorMessage) { - defaultErrorMessage = errorMessage; - } + public void setDefaultMessage(String errorMessage) { + defaultErrorMessage = errorMessage; + } + } Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeTemplateTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeTemplateTag.java 2011-03-17 11:26:58 UTC (rev 591) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeTemplateTag.java 2011-03-17 12:25:34 UTC (rev 592) @@ -38,7 +38,7 @@ } catch (HttpErrorPage e) { if (displayErrorPage) try { - pageContext.getOut().append(e.getErrorPageContent()); + e.render(pageContext.getOut()); } catch (IOException e1) { throw new JspException(e1); } @@ -113,7 +113,7 @@ public void setProvider(String provider) { this.provider = provider; } - + /* * (non-Javadoc) * @@ -146,4 +146,5 @@ public void setDefaultMessage(String errorMessage) { defaultErrorMessage = errorMessage; } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2011-03-17 19:44:26
|
Revision: 593 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=593&view=rev Author: fxbonnet Date: 2011-03-17 19:44:20 +0000 (Thu, 17 Mar 2011) Log Message: ----------- Migration to last versions Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-core/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-03-17 12:25:34 UTC (rev 592) +++ trunk/pom.xml 2011-03-17 19:44:20 UTC (rev 593) @@ -172,7 +172,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-enforcer-plugin</artifactId> - <version>1.0-beta-1</version> + <version>1.0</version> <executions> <execution> <id>enforce-versions</id> @@ -200,7 +200,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> - <version>2.3.1</version> + <version>2.3.2</version> <configuration> <source>1.5</source> <target>1.5</target> @@ -210,17 +210,17 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-site-plugin</artifactId> - <version>2.1.1</version> + <version>2.2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-release-plugin</artifactId> - <version>2.0</version> + <version>2.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> - <version>2.4.3</version> + <version>2.5</version> <configuration> <encoding>UTF-8</encoding> </configuration> @@ -233,7 +233,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> - <version>2.5</version> + <version>2.8</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> @@ -263,24 +263,19 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-assembly-plugin</artifactId> - <version>2.2-beta-5</version> + <version>2.2.1</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> - <version>2.1-beta-1</version> + <version>2.1.1</version> </plugin> <plugin> <groupId>org.codehaus.cargo</groupId> <artifactId>cargo-maven2-plugin</artifactId> - <version>1.0.2</version> + <version>1.0.6</version> </plugin> <plugin> - <groupId>org.codehaus.cargo</groupId> - <artifactId>cargo-maven2-plugin</artifactId> - <version>1.0.2</version> - </plugin> - <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-javadoc-plugin</artifactId> <version>2.7</version> @@ -291,20 +286,15 @@ <version>2.4</version> </plugin> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-surefire-plugin</artifactId> - <version>2.5</version> - </plugin> - <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>sonar-maven-plugin</artifactId> - <version>1.0-beta-1</version> + <version>2.0-beta-2</version> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-gpg-plugin</artifactId> <version>1.1</version> - </plugin> + </plugin> </plugins> </pluginManagement> </build> @@ -387,15 +377,10 @@ <artifactId>maven-javadoc-plugin</artifactId> <version>2.7</version> <configuration> - <encoding>UTF-8</encoding> + <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-project-info-reports-plugin</artifactId> - <version>2.2</version> - </plugin> - <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>taglist-maven-plugin</artifactId> <version>2.4</version> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-03-17 12:25:34 UTC (rev 592) +++ trunk/webassembletool-core/pom.xml 2011-03-17 19:44:20 UTC (rev 593) @@ -21,7 +21,7 @@ <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> - <version>4.0.1</version> + <version>4.1</version> <type>jar</type> <scope>compile</scope> <exclusions> @@ -34,7 +34,7 @@ <dependency> <groupId>opensymphony</groupId> <artifactId>oscache</artifactId> - <version>2.4</version> + <version>2.4.1</version> <exclusions> <exclusion> <artifactId>jms</artifactId> @@ -53,25 +53,25 @@ <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.7</version> + <version>4.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> - <version>2.5.2</version> + <version>3.0</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>1.4</version> + <version>2.0.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>nu.validator.htmlparser</groupId> <artifactId>htmlparser</artifactId> - <version>1.2.0</version> + <version>1.2.1</version> <type>jar</type> <scope>compile</scope> </dependency> @@ -91,7 +91,7 @@ <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> - <version>2.4</version> + <version>2.6</version> <type>jar</type> <scope>compile</scope> </dependency> @@ -128,7 +128,7 @@ <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jxr-plugin</artifactId> - <version>2.1</version> + <version>2.2</version> </plugin> </plugins> </reporting> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <leb...@us...> - 2011-03-21 15:04:48
|
Revision: 595 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=595&view=rev Author: lebedinskii Date: 2011-03-21 15:04:39 +0000 (Mon, 21 Mar 2011) Log Message: ----------- Ticket #41: Refactor the ESIgate caching system Description: 1. Separate Parsing and Resource retrieving logic 2. Provide single interface for resource retrieving: ResourceFactory. 3. Create two implementations of ResourceFactory interface (see diagram attached). 1. HttpResourceFactory fetchs resources directly, without caching 2. CachedHttpResourceFactory ?\226?\128?\147 in fact is Caching proxy implementation Modified Paths: -------------- trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java trunk/webassembletool-core/pom.xml trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/AuthenticationHandler.java trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/SerializableBasicCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java trunk/webassembletool-core/src/main/java/net/webassembletool/filter/Filter.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/RewriteUtils.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/MockDriver.java trunk/webassembletool-core/src/test/java/net/webassembletool/filter/CookieForwardingFilterTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpClientResponseTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/output/OutputTest.java Added Paths: ----------- trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java trunk/webassembletool-core/src/test/java/net/webassembletool/UserContextTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/DefaultCacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/SerializeCacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/ trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/SerializableBasicCookieStoreTest.java Modified: trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java =================================================================== --- trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-cas/src/main/java/net/webassembletool/cas/CasAuthenticationHandler.java 2011-03-21 15:04:39 UTC (rev 595) @@ -1,13 +1,10 @@ package net.webassembletool.cas; -import java.io.IOException; -import java.io.Writer; import java.security.Principal; import java.util.Properties; import javax.servlet.http.HttpServletRequest; -import net.webassembletool.HttpErrorPage; import net.webassembletool.ResourceContext; import net.webassembletool.authentication.AuthenticationHandler; import net.webassembletool.http.HttpClientRequest; @@ -77,8 +74,4 @@ httpServletRequest.setAttribute(SECOND_REQUEST, true); } - public void render(ResourceContext requestContext, String src, Writer out) throws IOException, HttpErrorPage { - // Just copy src to out - out.write(src); - } } Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/pom.xml 2011-03-21 15:04:39 UTC (rev 595) @@ -63,6 +63,12 @@ <scope>test</scope> </dependency> <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>7.2.0.v20101020</version> + <scope>test</scope> + </dependency> + <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.0.1</version> Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-21 15:04:39 UTC (rev 595) @@ -15,9 +15,13 @@ package net.webassembletool; import java.io.IOException; +import java.io.PrintWriter; import java.io.StringWriter; import java.security.KeyManagementException; import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Map; import java.util.Properties; @@ -27,23 +31,17 @@ import javax.servlet.http.HttpSession; import net.webassembletool.authentication.AuthenticationHandler; -import net.webassembletool.cache.Cache; -import net.webassembletool.cache.CacheOutput; -import net.webassembletool.cache.CachedResponse; import net.webassembletool.cookie.CustomCookieStore; import net.webassembletool.extension.ExtensionFactory; -import net.webassembletool.file.FileOutput; -import net.webassembletool.file.FileResource; import net.webassembletool.filter.Filter; -import net.webassembletool.http.HttpResource; +import net.webassembletool.http.CachedHttpResourceFactory; +import net.webassembletool.http.HttpResourceFactory; import net.webassembletool.http.ResponseOutput; -import net.webassembletool.output.MultipleOutput; import net.webassembletool.output.Output; import net.webassembletool.output.StringOutput; import net.webassembletool.output.TextOnlyStringOutput; import net.webassembletool.regexp.ReplaceRenderer; import net.webassembletool.renderers.ResourceFixupRenderer; -import net.webassembletool.resource.NullResource; import net.webassembletool.resource.Resource; import net.webassembletool.resource.ResourceUtils; import net.webassembletool.tags.BlockRenderer; @@ -83,13 +81,12 @@ public class Driver { private static final Logger LOG = LoggerFactory.getLogger(Driver.class); private final DriverConfiguration config; - private final Cache cache; private final HttpClient httpClient; private final AuthenticationHandler authenticationHandler; private final Filter filter; + private final ResourceFactory resourceFactory; + private final ExtensionFactory extension; - private ExtensionFactory extension = null; - public Driver(String name, Properties props) { LOG.debug("Initializing instance: " + name); config = new DriverConfiguration(name, props); @@ -145,9 +142,10 @@ } // Cache if (config.isUseCache()) { - cache = new Cache(); + resourceFactory = new CachedHttpResourceFactory( + getHttpResourceFactory(), config); } else { - cache = null; + resourceFactory = getHttpResourceFactory(); } extension = new ExtensionFactory(config); @@ -155,8 +153,13 @@ // Authentication handler authenticationHandler = extension .getExtension(AuthenticationHandler.class); - filter = extension.getExtension(Filter.class); + // Filter + Filter f = extension.getExtension(Filter.class); + filter = (f != null) ? f : Filter.EMPTY; + } + protected ResourceFactory getHttpResourceFactory() { + return new HttpResourceFactory(httpClient); } public AuthenticationHandler getAuthenticationHandler() { @@ -194,9 +197,8 @@ * @return UserContext */ public UserContext createNewUserContext() { - UserContext context = new UserContext(); - context.setCookieStore(extension.getExtension(CustomCookieStore.class)); - context.init(); + UserContext context = new UserContext( + extension.getExtension(CustomCookieStore.class)); return context; } @@ -386,14 +388,6 @@ StringOutput stringOutput = getResourceAsString(resourceContext); String currentValue = stringOutput.toString(); - // Call the AuthenticationHandler if any to filter the result - if (authenticationHandler != null) { - StringWriter filtered = new StringWriter(); - authenticationHandler.render(resourceContext, currentValue, - filtered); - currentValue = filtered.toString(); - } - // Fix resources if (config.isFixResources()) { ResourceFixupRenderer fixup = new ResourceFixupRenderer( @@ -442,7 +436,7 @@ return; } - if (renderers.length == 0) { + if (renderers.length == 0 && !config.isFixResources()) { // As we don't have any transformation to apply, we don't even // have to retrieve the resource if it is already in browser's // cache. So we can use conditional a request like @@ -464,17 +458,17 @@ LOG.debug("'" + relUrl + "' is text : will apply renderers."); String currentValue = textOutput.toString(); - // Fix resources + List<Renderer> listOfRenderers = new ArrayList<Renderer>( + renderers.length + 1); if (config.isFixResources()) { ResourceFixupRenderer fixup = new ResourceFixupRenderer( config.getBaseURL(), config.getVisibleBaseURL(), relUrl, config.getFixMode()); - StringWriter stringWriter = new StringWriter(); - fixup.render(resourceContext, currentValue, stringWriter); - currentValue = stringWriter.toString(); + listOfRenderers.add(fixup); } + listOfRenderers.addAll(Arrays.asList(renderers)); - for (Renderer renderer : renderers) { + for (Renderer renderer : listOfRenderers) { StringWriter stringWriter = new StringWriter(); renderer.render(resourceContext, currentValue, stringWriter); currentValue = stringWriter.toString(); @@ -503,155 +497,26 @@ private final void renderResource(ResourceContext resourceContext, Output output) throws HttpErrorPage { - String httpUrl = ResourceUtils - .getHttpUrlWithQueryString(resourceContext); - MultipleOutput multipleOutput = new MultipleOutput(); - multipleOutput.addOutput(output); - CachedResponse cachedResource = null; - Resource httpResource = null; - FileResource fileResource = null; - CacheOutput memoryOutput = null; - FileOutput fileOutput = null; + Resource resource = null; try { - if (config.isUseCache() && Rfc2616.isCacheable(resourceContext)) { - // Try to load the resource from cache - cachedResource = cache.get(resourceContext); - boolean needsValidation = true; - if (cachedResource != null) { - needsValidation = false; - if (config.getCacheRefreshDelay() <= 0) { - // Auto http cache - if (Rfc2616.needsValidation(resourceContext, - cachedResource)) { - needsValidation = true; - } - } else { - // Forced expiration delay - if (Rfc2616.requiresRefresh(resourceContext) - || Rfc2616.getAge(cachedResource) > config - .getCacheRefreshDelay() * 1000L) { - needsValidation = true; - } - } - } - if (LOG.isDebugEnabled()) { - String message = "Needs validation=" + needsValidation; - message += " cacheRefreshDelay=" - + config.getCacheRefreshDelay(); - if (cachedResource != null) { - message += " cachedResource=" + cachedResource; - } - LOG.debug(message); - } - if (needsValidation) { - // Resource not in cache or stale, or refresh was forced by - // the user (hit refresh in the browser so the browser sent - // a pragma:no-cache header or something similar), prepare a - // memoryOutput to collect the new version - memoryOutput = new CacheOutput(config.getCacheMaxFileSize()); - multipleOutput.addOutput(memoryOutput); - } else { - // Resource in cache, does not need validation, just render - // it - LOG.debug("Reusing cache entry for: " + httpUrl); - Rfc2616.renderResource(config, cachedResource, multipleOutput); - return; - } + resource = this.resourceFactory.getResource(resourceContext); + try { + Rfc2616.renderResource(config, resource, output); + } catch (IOException e) { + StringWriter out = new StringWriter(); + e.printStackTrace(new PrintWriter(out)); + HttpErrorPage httpErrorPage = new HttpErrorPage( + HttpServletResponse.SC_BAD_GATEWAY, e.getMessage(), + out.toString()); + httpErrorPage.initCause(e); + throw httpErrorPage; } - // Try to load it from HTTP - if (config.getBaseURL() != null) { - // Prepare a FileOutput to store the result on the file system - if (config.isPutInCache() - && Rfc2616.isCacheable(resourceContext)) { - fileOutput = ResourceUtils.createFileOutput(config.getLocalBase(), resourceContext); - multipleOutput.addOutput(fileOutput); - } - if (cache != null) { - Map<String, String> validators = cache.getValidators( - resourceContext, cachedResource); - httpResource = new HttpResource(httpClient, - resourceContext, validators); - httpResource = cache.select(resourceContext, - cachedResource, httpResource); - } else { - httpResource = new HttpResource(httpClient, - resourceContext, null); - } - // If there is an error, we will try to reuse an old cache entry - if (!httpResource.isError()) { - Rfc2616.renderResource(config, httpResource, multipleOutput); - return; - } - } - // Resource could not be loaded from HTTP, let's use the expired - // cache entry if not empty and not error. - if (cachedResource != null && !cachedResource.isError()) { - Rfc2616.renderResource(config, cachedResource, multipleOutput); - return; - } - // Resource could not be loaded neither from HTTP, nor from the - // cache, let's try from the file system - if (config.getLocalBase() != null - && Rfc2616.isCacheable(resourceContext)) { - fileResource = ResourceUtils.createFileResource(config.getLocalBase(), resourceContext); - if (!fileResource.isError()) { - // on réinitialise l'output pour ne pas écraser le fichier - // stocké sur le disque - multipleOutput = new MultipleOutput(); - multipleOutput.addOutput(output); - memoryOutput = new CacheOutput(config.getCacheMaxFileSize()); - multipleOutput.addOutput(memoryOutput); - Rfc2616.renderResource(config, fileResource, multipleOutput); - return; - } - } - // No valid response could be found, let's render the response even - // if it is an error - if (httpResource != null) { - Rfc2616.renderResource(config, httpResource, multipleOutput); - return; - } else if (cachedResource != null) { - Rfc2616.renderResource(config, cachedResource, multipleOutput); - return; - } else if (fileResource != null) { - Rfc2616.renderResource(config, fileResource, multipleOutput); - return; - } else { - // Resource could not be loaded at all - Rfc2616.renderResource(config, new NullResource(), multipleOutput); - } - } catch (Throwable t) { - if (t instanceof HttpErrorPage) { - throw (HttpErrorPage) t; - } else { - // In case there was a problem during rendering (client abort for - // exemple), all the output - // should have been gracefully closed in the render method but we - // must discard the entry inside the cache or the file system - // because it is not complete - if (memoryOutput != null) { - memoryOutput = null; - } - if (fileOutput != null) { - fileOutput.delete(); - } - throw new ResponseException(httpUrl + " could not be retrieved", t); - } } finally { - // Free all the resources - if (cachedResource != null) { - cachedResource.release(); + if (null != resource) { + resource.release(); } - if (memoryOutput != null && cache != null) { - cache.put(resourceContext, memoryOutput.toResource()); - } - if (httpResource != null) { - httpResource.release(); - } - if (fileResource != null) { - fileResource.release(); - } } + } /** @@ -687,6 +552,10 @@ return UserContext.class.getName() + "#" + config.getInstanceName(); } + /** + * Returns {@linkplain Filter} instance configured for this driver. Never + * returns <code>null</code>. + */ public Filter getFilter() { return filter; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-03-21 15:04:39 UTC (rev 595) @@ -22,9 +22,14 @@ import java.util.StringTokenizer; import net.webassembletool.authentication.RemoteUserAuthenticationHandler; +import net.webassembletool.cache.CacheStorage; +import net.webassembletool.cache.DefaultCacheStorage; import net.webassembletool.cookie.SerializableBasicCookieStore; import net.webassembletool.renderers.ResourceFixupRenderer; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + /** * Driver configuration parameters * @@ -32,6 +37,7 @@ * @contributor Nicolas Richeton */ public class DriverConfiguration { + private static final Logger log = LoggerFactory.getLogger(DriverConfiguration.class); private final String instanceName; private final String baseURL; private String uriEncoding = "ISO-8859-1"; @@ -43,6 +49,7 @@ private boolean useCache = true; private int cacheRefreshDelay = 0; private int cacheMaxFileSize = 0; + private Class<? extends CacheStorage> cacheStorageClass; private final String localBase; private boolean putInCache = false; private String proxyHost; @@ -58,7 +65,7 @@ private static final String DEFAULT_PARSABLE_CONTENT_TYPES = "text/html, application/xhtml+xml"; private static final String DEFAULT_BLACK_LISTED_HEADERS = "Content-Length,Content-Encoding,Transfer-Encoding"; - + public DriverConfiguration(String instanceName, Properties props) { this.instanceName = instanceName; // Remote application settings @@ -82,6 +89,21 @@ cacheMaxFileSize = Integer.parseInt(props .getProperty("cacheMaxFileSize")); } + if (props.getProperty("cacheStorageClassName") != null) { + String cacheStorageClassName = props.getProperty("cacheStorageClass"); + try { + Class<? extends CacheStorage> cacheStorageClass = (Class<? extends CacheStorage>) this.getClass().getClassLoader().loadClass(cacheStorageClassName); + if(cacheStorageClass != null) + { + this.cacheStorageClass = cacheStorageClass; + } + } catch (Exception e) { + throw new RuntimeException("Cashestorage insatnce can not be loaded", e); + } + } + if(null == this.cacheStorageClass){ + this.cacheStorageClass = DefaultCacheStorage.class; + } // Local file system settings localBase = props.getProperty("localBase"); if (props.getProperty("putInCache") != null) { @@ -254,7 +276,12 @@ public String getCookieStore() { return cookieStore; } + + public Class<? extends CacheStorage> getCacheStorageClass() { + return cacheStorageClass; + } + /** * List of parsable content types. Default is text/html, * application/xhtml+xml Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-03-21 15:04:39 UTC (rev 595) @@ -34,6 +34,7 @@ private boolean proxy = false; private boolean preserveHost = false; private boolean neededForTransformation = true; + private Map<String, String> validators = null; public boolean isPreserveHost() { return preserveHost; @@ -61,6 +62,17 @@ this.originalResponse = originalResponse; } + @Override + public ResourceContext clone() { + ResourceContext ret = new ResourceContext(driver, relUrl, parameters, + originalRequest, originalResponse); + ret.setPreserveHost(preserveHost); + ret.setProxy(proxy); + ret.setNeededForTransformation(neededForTransformation); + ret.setValidators(validators); + return ret; + } + public String getRelUrl() { return relUrl; } @@ -93,4 +105,11 @@ return originalResponse; } + public Map<String, String> getValidators() { + return validators; + } + + public void setValidators(Map<String, String> validators) { + this.validators = validators; + } } Added: trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceFactory.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceFactory.java 2011-03-21 15:04:39 UTC (rev 595) @@ -0,0 +1,7 @@ +package net.webassembletool; + +import net.webassembletool.resource.Resource; + +public interface ResourceFactory { + Resource getResource(ResourceContext resourceContext) throws HttpErrorPage; +} Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java 2011-03-21 15:04:39 UTC (rev 595) @@ -15,11 +15,11 @@ package net.webassembletool; import java.io.Serializable; +import java.util.List; import net.webassembletool.cookie.CustomCookieStore; import net.webassembletool.http.SerializableBasicHttpContext; -import org.apache.http.client.CookieStore; import org.apache.http.client.protocol.ClientContext; import org.apache.http.cookie.Cookie; import org.apache.http.protocol.HttpContext; @@ -36,28 +36,30 @@ public class UserContext implements Serializable { private static final long serialVersionUID = 1L; private String user; - private CustomCookieStore cookieStore = null; - private HttpContext httpContext = null; + private final CustomCookieStore cookieStore; + private final HttpContext httpContext; - public void init() { + public UserContext(CustomCookieStore cookieStore) { if (cookieStore == null) { - throw new IllegalArgumentException( - "cookieStore implementation not set"); + throw new IllegalArgumentException("cookieStore implementation not set"); } + + this.cookieStore = cookieStore; // Create local HTTP context httpContext = new SerializableBasicHttpContext(); // Bind custom cookie store to the local context httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); } - public CookieStore getCookieStore() { - return cookieStore; + /** + * Returns all cookies contained in this store. + * + * @return all cookies + */ + public List<Cookie> getCookies() { + return cookieStore.getCookies(); } - public void setCookieStore(CustomCookieStore cookieStore) { - this.cookieStore = cookieStore; - } - public String getUser() { return user; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/AuthenticationHandler.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/AuthenticationHandler.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/AuthenticationHandler.java 2011-03-21 15:04:39 UTC (rev 595) @@ -17,7 +17,6 @@ import java.io.IOException; import java.util.Properties; -import net.webassembletool.Renderer; import net.webassembletool.ResourceContext; import net.webassembletool.extension.Extension; import net.webassembletool.http.HttpClientRequest; @@ -37,7 +36,7 @@ * @author Nicolas Richeton * */ -public interface AuthenticationHandler extends Renderer, Extension { +public interface AuthenticationHandler extends Extension { public void init(Properties properties); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java 2011-03-21 15:04:39 UTC (rev 595) @@ -14,11 +14,8 @@ */ package net.webassembletool.authentication; -import java.io.IOException; -import java.io.Writer; import java.util.Properties; -import net.webassembletool.HttpErrorPage; import net.webassembletool.ResourceContext; import net.webassembletool.UserContext; import net.webassembletool.http.HttpClientRequest; @@ -61,9 +58,4 @@ return true; } - public void render(ResourceContext requestContext, String src, Writer out) - throws IOException, HttpErrorPage { - // Just copy src to out - out.write(src); - } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RequestAuthenticationHandler.java 2011-03-21 15:04:39 UTC (rev 595) @@ -15,13 +15,12 @@ package net.webassembletool.authentication; import java.io.IOException; -import java.io.Writer; import java.util.ArrayList; +import java.util.List; import java.util.Properties; import javax.servlet.http.HttpSession; -import net.webassembletool.HttpErrorPage; import net.webassembletool.ResourceContext; import net.webassembletool.http.HttpClientRequest; import net.webassembletool.http.HttpClientResponse; @@ -35,18 +34,17 @@ * @author Nicolas Richeton */ public class RequestAuthenticationHandler implements AuthenticationHandler { + private final static Logger logger = LoggerFactory.getLogger(RequestAuthenticationHandler.class); + private final List<String> sessionAttributes = new ArrayList<String>(); + private final List<String> requestAttributes = new ArrayList<String>(); private String headerPrefix = "X-ATTR-"; - private static Logger logger = LoggerFactory.getLogger(RequestAuthenticationHandler.class); - private final ArrayList<String> sessionAttributes = new ArrayList<String>(); - private final ArrayList<String> requestAttributes = new ArrayList<String>(); /** * {@inheritDoc} * * @see net.webassembletool.authentication.AuthenticationHandler#beforeProxy(net.webassembletool.ResourceContext) */ - public boolean beforeProxy(ResourceContext requestContext) - throws IOException { + public boolean beforeProxy(ResourceContext requestContext) throws IOException { return true; } @@ -57,8 +55,7 @@ */ public void init(Properties properties) { // Attributes for session - String sessionAttributesProperty = (String) properties - .get("forwardSessionAttributes"); + String sessionAttributesProperty = properties.getProperty("forwardSessionAttributes"); if (sessionAttributesProperty != null) { String attributes[] = sessionAttributesProperty.split(","); for (String attribute : attributes) { @@ -114,10 +111,9 @@ logger.debug("preRequest"); } // Process session - HttpSession session = requestContext.getOriginalRequest().getSession( - false); + HttpSession session = requestContext.getOriginalRequest().getSession(false); - if (session != null && sessionAttributes != null) { + if (session != null) { for (String attribute : sessionAttributes) { String value = (String) session.getAttribute(attribute); if (value != null) { @@ -146,15 +142,4 @@ } } - /** - * {@inheritDoc} - * - * @see net.webassembletool.Renderer#render(net.webassembletool.ResourceContext, - * java.lang.String, java.io.Writer) - */ - public void render(ResourceContext requestContext, String src, Writer out) - throws IOException, HttpErrorPage { - out.write(src); - } - } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/Cache.java 2011-03-21 15:04:39 UTC (rev 595) @@ -20,11 +20,8 @@ */ public class Cache { private static Logger LOG = LoggerFactory.getLogger(Cache.class); - private final Storage storage; + private CacheStorage storage; - public Cache() { - storage = new Storage(); - } private CacheEntry getCacheEntry(ResourceContext resourceContext) { String key = ResourceUtils.getHttpUrlWithQueryString(resourceContext); @@ -104,4 +101,8 @@ entry.setDirty(false); storage.put(entry.getUrl(), entry); } + + public void setStorage(CacheStorage storage) { + this.storage = storage; + } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-03-21 15:04:39 UTC (rev 595) @@ -1,5 +1,6 @@ package net.webassembletool.cache; +import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -27,13 +28,14 @@ * @author Francois-Xavier Bonnet * @author Nicolas Richeton */ -class CacheEntry { +class CacheEntry implements Serializable { + private static final long serialVersionUID = 7110248280110189961L; private static final Logger LOG = LoggerFactory.getLogger(CacheEntry.class); private static final long CLEAN_DELAY = 15 * 60 * 1000; // 15 minutes; private static final Pattern ETAG_PATTERN = Pattern.compile(",?\\s*((W/)?\"[^\"]*\")"); private final String url; - private transient Storage storage; + private transient CacheStorage storage; private transient boolean dirty; private long lastClean = -1; @@ -55,7 +57,7 @@ return url; } - public CacheEntry(String url, Storage storage) { + public CacheEntry(String url, CacheStorage storage) { this.url = url; this.storage = storage; this.dirty = false; @@ -397,7 +399,46 @@ } } } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + (int) (lastClean ^ (lastClean >>> 32)); + result = prime + * result + + ((responseSummaries == null) ? 0 : responseSummaries + .hashCode()); + result = prime * result + ((url == null) ? 0 : url.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CacheEntry other = (CacheEntry) obj; + if (lastClean != other.lastClean) + return false; + if (responseSummaries == null) { + if (other.responseSummaries != null) + return false; + } else if (!responseSummaries.equals(other.responseSummaries)) + return false; + if (url == null) { + if (other.url != null) + return false; + } else if (!url.equals(other.url)) + return false; + return true; + } + public boolean isDirty() { return dirty; } @@ -436,11 +477,7 @@ return cacheKey.toString(); } - public Storage getStorage() { - return storage; - } - - public void setStorage(Storage storage) { + public void setStorage(CacheStorage storage) { this.storage = storage; } } Added: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java 2011-03-21 15:04:39 UTC (rev 595) @@ -0,0 +1,44 @@ +package net.webassembletool.cache; + +import java.util.Properties; + +public interface CacheStorage{ + /** + * Put value in the cache + * @param key + * @param value + */ + void put(String key, Object value); + /** + * Put value in the cache for defined time in milliseconds + * @param key + * @param value + * @param ttl + */ + void put(String key, Object value, long ttl); + /** + * Return value by key + * @param key + * @return + */ + Object get(String key); + + /** + * Return value by key + * @param key + * @return + */ + <T> T get(String key, Class<T> clazz); + /** + * Touch value + * @param key + */ + void touch(String key); + /** + * Initialize the cacheStorage using the given properties. + * + * @param properties + */ + public void init(Properties properties); + +} Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-03-21 15:04:39 UTC (rev 595) @@ -1,6 +1,8 @@ package net.webassembletool.cache; import java.io.IOException; +import java.io.Serializable; +import java.util.Arrays; import java.util.Collection; import java.util.Date; import java.util.Enumeration; @@ -21,7 +23,8 @@ * @author Francois-Xavier Bonnet * */ -public class CachedResponse extends Resource { +public class CachedResponse extends Resource implements Serializable{ + private static final long serialVersionUID = 8125407854908774093L; private final byte[] byteArray; private final Map<String, Object> headers; private final String charset; @@ -119,7 +122,67 @@ + Rfc2616.getAge(this) + " stale=" + Rfc2616.isStale(this) + " hasBody=" + hasResponseBody(); } + + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + Arrays.hashCode(byteArray); + result = prime * result + ((charset == null) ? 0 : charset.hashCode()); + result = prime * result + ((headers == null) ? 0 : headers.hashCode()); + result = prime * result + + ((localDate == null) ? 0 : localDate.hashCode()); + result = prime * result + + ((requestHeaders == null) ? 0 : requestHeaders.hashCode()); + result = prime * result + statusCode; + result = prime * result + + ((statusMessage == null) ? 0 : statusMessage.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + CachedResponse other = (CachedResponse) obj; + if (!Arrays.equals(byteArray, other.byteArray)) + return false; + if (charset == null) { + if (other.charset != null) + return false; + } else if (!charset.equals(other.charset)) + return false; + if (headers == null) { + if (other.headers != null) + return false; + } else if (!headers.equals(other.headers)) + return false; + if (localDate == null) { + if (other.localDate != null) + return false; + } else if (!localDate.equals(other.localDate)) + return false; + if (requestHeaders == null) { + if (other.requestHeaders != null) + return false; + } else if (!requestHeaders.equals(other.requestHeaders)) + return false; + if (statusCode != other.statusCode) + return false; + if (statusMessage == null) { + if (other.statusMessage != null) + return false; + } else if (!statusMessage.equals(other.statusMessage)) + return false; + return true; + } + /** * {@inheritDoc} * Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-03-21 15:04:39 UTC (rev 595) @@ -1,6 +1,7 @@ package net.webassembletool.cache; import java.io.IOException; +import java.io.Serializable; import java.util.Collection; import java.util.Date; import java.util.Map; @@ -16,7 +17,7 @@ * @author Nicolas Richeton * */ -public class CachedResponseSummary extends Resource { +public class CachedResponseSummary extends Resource implements Serializable { private Map<String, Object> headers; private int statusCode; private Map<String, String> requestHeaders; Added: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java 2011-03-21 15:04:39 UTC (rev 595) @@ -0,0 +1,87 @@ +package net.webassembletool.cache; + +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; + +import com.opensymphony.oscache.base.CacheEntry; +import com.opensymphony.oscache.base.EntryRefreshPolicy; +import com.opensymphony.oscache.base.NeedsRefreshException; +import com.opensymphony.oscache.general.GeneralCacheAdministrator; + +public class DefaultCacheStorage implements CacheStorage{ + private final GeneralCacheAdministrator cache; + + public DefaultCacheStorage() { + cache = new GeneralCacheAdministrator(); + + } + + public void put(String key, Object value) { + key = prepairKey(key); + cache.putInCache(key, value); + } + + private String prepairKey(String key) { + // OsCache does not support empty String keys + if (StringUtils.isEmpty(key)) { + key = "/"; + } + return key; + } + + public Object get(String key) { + key = prepairKey(key); + Object result = null; + try { + result = cache.getFromCache(key); + } catch (NeedsRefreshException e1) { + // If the cache is configured to be blocking, we have to do this to + // remove the lock. + cache.cancelUpdate(key); + } + return result; + } + + public void put(String key, Object value, long ttl) { + key = prepairKey(key); + cache.putInCache(key, value, new StorageEntryRefreshPolicy(ttl)); + + } + + public <T> T get(String key, Class<T> clazz) { + Object ret = get(key); + if(null == ret){ + return null; + } + return clazz.cast(ret); + } + + public void touch(String key) { + key = prepairKey(key); + get(key); + } + + private static class StorageEntryRefreshPolicy implements EntryRefreshPolicy{ + + private static final long serialVersionUID = -4570614485500011699L; + long expireTime; + + public StorageEntryRefreshPolicy(long ttl) { + super(); + this.expireTime = System.currentTimeMillis()+ ttl; + } + + public boolean needsRefresh(CacheEntry arg0) { + if(expireTime <= System.currentTimeMillis()){ + return true; + } + return false; + } + } + + public void init(Properties properties) { + + } + +} Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java 2011-03-21 15:04:39 UTC (rev 595) @@ -29,7 +29,6 @@ * @author Nicolas Richeton * */ -public interface CustomCookieStore extends CookieStore, Serializable, - Extension { +public interface CustomCookieStore extends CookieStore, Serializable, Extension { } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-03-21 15:04:39 UTC (rev 595) @@ -14,12 +14,13 @@ */ package net.webassembletool.cookie; -import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; import java.util.Properties; +import org.apache.http.cookie.Cookie; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.apache.http.cookie.Cookie; /** * Prevent specified cookies from being stored in the cookie store. @@ -28,13 +29,11 @@ * */ public class FilteringCookieStore extends SerializableBasicCookieStore { - private static Logger logger = LoggerFactory.getLogger(FilteringCookieStore.class); - /** - * Serialization ID. - */ + /** Serialization ID. */ private static final long serialVersionUID = -2112501012354521287L; + private static final Logger logger = LoggerFactory.getLogger(FilteringCookieStore.class); - private final ArrayList<String> forwardCookies = new ArrayList<String>(); + private final Collection<String> forwardCookies = new HashSet<String>(); /** * {@inheritDoc} @@ -43,21 +42,13 @@ */ @Override public void addCookie(Cookie cookie) { - - boolean store = true; - for (String cookieName : forwardCookies) { - if (cookieName.equals(cookie.getName())) { - if (logger.isInfoEnabled()) { - logger.info("Not storing " + cookie.getName()); - } - store = false; - break; + if (!forwardCookies.contains(cookie.getName())) { + super.addCookie(cookie); + } else { + if (logger.isInfoEnabled()) { + logger.info("Not storing " + cookie.getName()); } } - - if (store) { - super.addCookie(cookie); - } } /** @@ -65,7 +56,7 @@ * * @return cookie name list. */ - public ArrayList<String> getForwardCookies() { + Collection<String> getForwardCookies() { return forwardCookies; } @@ -80,7 +71,7 @@ super.init(properties); // Cookies to discard - String cookiesProperty = (String) properties.get("discardCookies"); + String cookiesProperty = properties.getProperty("discardCookies"); if (cookiesProperty != null) { String attributes[] = cookiesProperty.split(","); for (String cookieName : attributes) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/SerializableBasicCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/SerializableBasicCookieStore.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/SerializableBasicCookieStore.java 2011-03-21 15:04:39 UTC (rev 595) @@ -16,7 +16,6 @@ import java.util.Properties; - import org.apache.http.client.CookieStore; import org.apache.http.cookie.Cookie; import org.apache.http.impl.client.BasicCookieStore; @@ -26,12 +25,8 @@ * * @author Nicolas Richeton */ -public class SerializableBasicCookieStore extends BasicCookieStore implements - CustomCookieStore { - - /** - * Serial Id - */ +public class SerializableBasicCookieStore extends BasicCookieStore implements CustomCookieStore { + /** Serial Id */ private static final long serialVersionUID = 5884817839252416275L; /** Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-03-21 15:04:39 UTC (rev 595) @@ -15,6 +15,10 @@ package net.webassembletool.filter; import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; import java.util.Properties; import javax.servlet.http.Cookie; @@ -26,7 +30,6 @@ import net.webassembletool.http.HttpClientRequest; import net.webassembletool.http.HttpClientResponse; import net.webassembletool.http.HttpHeaders; -import net.webassembletool.output.Output; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,16 +41,16 @@ * */ public class CookieForwardingFilter implements Filter { - private static Logger logger = LoggerFactory.getLogger(ExtensionFactory.class); - public static final String PROP_ATTRIBUTE = "forwardCookies"; - private final ArrayList<String> forwardCookies = new ArrayList<String>(); + private static final Logger logger = LoggerFactory.getLogger(ExtensionFactory.class); + static final String PROP_ATTRIBUTE = "forwardCookies"; + private final Collection<String> forwardCookies = new HashSet<String>(); /** * Get configured cookies. * * @return list of names. */ - public ArrayList<String> getForwardCookies() { + Collection<String> getForwardCookies() { return forwardCookies; } @@ -58,7 +61,7 @@ */ public void init(Properties properties) { // Cookies to forward - String cookiesProperty = (String) properties.get(PROP_ATTRIBUTE); + String cookiesProperty = properties.getProperty(PROP_ATTRIBUTE); if (cookiesProperty != null) { String attributes[] = cookiesProperty.split(","); for (String cookieName : attributes) { @@ -68,8 +71,7 @@ } } } else { - throw new ConfigurationException("drivername." + PROP_ATTRIBUTE - + " is empty : no cookie to forward."); + throw new ConfigurationException("drivername." + PROP_ATTRIBUTE + " is empty : no cookie to forward."); } } @@ -79,78 +81,59 @@ * @see net.webassembletool.filter.Filter#postRequest(net.webassembletool.http.HttpClientResponse, * net.webassembletool.output.Output) */ - public void postRequest(HttpClientResponse httpClientResponse, - Output output, ResourceContext resourceContext) { - - HttpServletResponse response = resourceContext.getOriginalResponse(); - if (response == null) { + public void postRequest(HttpClientResponse response, ResourceContext context) { + HttpServletResponse dest = context.getOriginalResponse(); + if (dest == null) { return; } - String[] cookies = httpClientResponse - .getHeaders(HttpHeaders.SET_COOKIE); - if (cookies != null) { - for (String v : cookies) { - for (String forwardCookie : forwardCookies) { - if (v.startsWith(forwardCookie + "=")) { - - resourceContext.getOriginalResponse().addHeader( - HttpHeaders.SET_COOKIE, v); - } + String[] cookies = response.getHeaders(HttpHeaders.SET_COOKIE); + if (cookies != null && cookies.length != 0) { + for (String cookie : cookies) { + int idx = cookie.indexOf('='); + if (idx != -1 && forwardCookies.contains(cookie.substring(0, idx))) { + dest.addHeader(HttpHeaders.SET_COOKIE, cookie); } } } - } /** * {@inheritDoc} * - * @see net.webassembletool.filter.Filter#preRequest(net.webassembletool - * .http.HttpClientRequest, net.webassembletool.ResourceContext) + * @see net.webassembletool.filter.Filter#preRequest(net.webassembletool.http.HttpClientRequest, + * net.webassembletool.ResourceContext) */ - public void preRequest(HttpClientRequest httpClientRequest, - ResourceContext resourceContext) { + public void preRequest(HttpClientRequest request, ResourceContext context) { if (logger.isDebugEnabled()) { logger.debug("preRequest"); } - ArrayList<Cookie> toForward = null; + List<Cookie> toForward = new ArrayList<Cookie>(); // Select the cookie to forward - Cookie[] cookies = resourceContext.getOriginalRequest().getCookies(); - if (cookies != null) { - for (Cookie c : cookies) { - for (String forwardCookie : forwardCookies) { - if (forwardCookie.equals(c.getName())) { - if (toForward == null) { - toForward = new ArrayList<Cookie>(); - } - toForward.add(c); - } + Cookie[] cookies = context.getOriginalRequest().getCookies(); + if (cookies != null && cookies.length != 0) { + for (Cookie cookie : cookies) { + if (forwardCookies.contains(cookie.getName())) { + toForward.add(cookie); } } } // Create and add the headers. - if (toForward != null) { + if (!toForward.isEmpty()) { StringBuilder headerValue = new StringBuilder(); - boolean first = true; - for (Cookie c : toForward) { - // Handle separator. - if (first) { - first = false; - } else { + for (Iterator<Cookie> iter = toForward.iterator(); iter.hasNext();) { + Cookie cookie = iter.next(); + headerValue.append(cookie.getName()); + headerValue.append('='); + headerValue.append(cookie.getValue()); + if (iter.hasNext()) { headerValue.append("; "); } - - headerValue.append(c.getName()); - headerValue.append("="); - headerValue.append(c.getValue()); } - - httpClientRequest.addHeader(HttpHeaders.COOKIE, - headerValue.toString()); + request.addHeader(HttpHeaders.COOKIE, headerValue.toString()); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/filter/Filter.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/filter/Filter.java 2011-03-17 19:45:14 UTC (rev 594) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/filter/Filter.java 2011-03-21 15:04:39 UTC (rev 595) @@ -15,11 +15,12 @@ package net.webassembletool.filter; +import java.util.Properties; + import net.webassembletool.ResourceContext; import net.webassembletool.extension.Extension; import net.webassembletool.http.HttpClientRequest; import net.webassembletool.http.HttpClientResponse; -import net.webassembletool.output.Output; /** * Interface for request filter. @@ -29,9 +30,19 @@ */ public interface Filter extends Extension { - void preRequest(HttpClientRequest httpClientRequest, - ResourceContext resourceContext); + void preRequest(HttpClientRequest request, ResourceContext context); - void postRequest(HttpClientResponse httpClientResponse, Output output, - ResourceContext resourceContext); + void postRequest(HttpClientResponse response, ResourceContext context); + + Filter EMPTY = new Filter() { + public void init(Properties properties) { + } + + public void preRequest(HttpClientRequest request, ResourceContext context) { + } + + public void postRequest(HttpClientResponse response, ResourceContext context) { + } + + }; } Added: trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java 2011-03-21 15:04:39 UTC (rev 595) @@ -0,0 +1,399 @@ +package net.webassembletool.http; + +import java.io.IOException; +import java.util.Collection; +import java.util.Date; +import java.util.Map; + +import net.webassembletool.DriverConfiguration; +import net.webassembletool.HttpErrorPage; +import net.webassembletool.ResourceContext; +import net.webassembletool.ResourceFactory; +import net.webassembletool.ResponseException; +import net.webassembletool.cache.Cache; +import net.webassembletool.cache.CacheOutput; +import net.webassembletool.cache.CacheStorage; +import net.webassembletool.cache.CachedResponse; +import net.webassembletool.file.FileOutput; +import net.webassembletool.file.FileResource; +import net.webassembletool.output.MultipleOutput; +import net.webassembletool.output.Output; +import net.webassembletool.resource.NullResource; +import net.webassembletool.resource.Resource; +import net.webassembletool.resource.ResourceUtils; +import net.webassembletool.util.Rfc2616; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class CachedHttpResourceFactory implements ResourceFactory { + private static final Logger log = LoggerFactory + .getLogger(CachedHttpResourceFactory.class); + private ResourceFactory httpResourceFactory; + private DriverConfiguration config; + private final Cache cache; + + public CachedHttpResourceFactory(ResourceFactory httpResourceFactory, + DriverConfiguration config) { + super(); + this.httpResourceFactory = httpResourceFactory; + this.config = config; + this.cache = new Cache(); + try { + CacheStorage cacheStorage = this.config.getCacheStorageClass().newInstance(); + cacheStorage.init(config.getProperties()); + cache.setStorage(cacheStorage); + } catch (Exception e) { + log.error("Error during initialization CacheStorage", e); + } + } + + public Resource getResource(ResourceContext resourceContext) throws HttpErrorPage { + String httpUrl = ResourceUtils + .getHttpUrlWithQueryString(resourceContext); + + ResourceProxyWithContext ret = new ResourceProxyWithContext(); + ret.setResourceContext(resourceContext); + ret.setCache(cache); + ret.setHttpUrl(httpUrl); + + try { + tryLoadFromCache(ret); + if(!ret.isReady()){ + tryLoadFromHttp(ret); + } + if(!ret.isReady()) + { + tryLoadFromExpiredCache(ret); + } + if(!ret.isReady()) + { + tryLoadFromFileSystem(ret); + } + if(!ret.isReady()){ + loadWithError(ret); + } + return ret; + } catch (Throwable t) { + // In case there was a problem during rendering (client abort for + // exemple), all the output + // should have been gracefully closed in the render method but we + // must discard the entry inside the cache or the file system + // because it is not complete + ret.setMemoryOutput(null); + + if (ret.getFileOutput() != null) { + ret.getFileOutput().delete(); + } + throw new ResponseException(httpUrl + " could not be retrieved", t); + } + } + + private void loadWithError(ResourceProxyWithContext ret) { + // No valid response could be found, let's render the response even + // if it is an error + if (ret.getHttpResource() != null) { + ret.setProxyResource(ret.getHttpResource()); + ret.setReady(true); + } else if (ret.getCachedResource() != null) { + ret.setProxyResource(ret.getHttpResource()); + ret.setReady(true); + } else if (ret.getFileResource() != null) { + ret.setProxyResource(ret.getFileResource()); + ret.setReady(true); + } else { + ret.setProxyResource(new NullResource()); + ret.setReady(true); + } + } + + private void tryLoadFromFileSystem(ResourceProxyWithContext ret) throws IOException { + // Resource could not be loaded neither from HTTP, nor from the + // cache, let's try from the file system + if (config.getLocalBase() != null + && Rfc2616.isCacheable(ret.getResourceContext())) { + ret.setFileResource(ResourceUtils.createFileResource( + config.getLocalBase(), ret.getResourceContext())); + if (!ret.getFileResource().isError()) { + // on reinitialise l'output pour ne pas ecraser le fichier + // stocke sur le disque + ret.setFileOutput(null); + ret.setMemoryOutput(new CacheOutput(config.getCacheMaxFileSize())); + ret.setProxyResource(ret.getFileResource()); + ret.setReady(true); + } + } + } + + private void tryLoadFromExpiredCache(ResourceProxyWithContext ret) { + // Resource could not be loaded from HTTP, let's use the expired + // cache entry if not empty and not error. + if (ret.getCachedResource() != null && !ret.getCachedResource().isError()) { + ret.setProxyResource(ret.getCachedResource()); + ret.setReady(true); + } + } + + private void tryLoadFromHttp(ResourceProxyWithContext ret) throws Exception, HttpErrorPage { + // Try to load it from HTTP + if (config.getBaseURL() != null) { + // Prepare a FileOutput to store the result on the file system + if (config.isPutInCache() + && Rfc2616.isCacheable(ret.getResourceContext())) { + ret.setFileOutput( ResourceUtils.createFileOutput( + config.getLocalBase(), ret.getResourceContext())); + } + + Map<String, String> validators = cache.getValidators( + ret.getResourceContext(), ret.getCachedResource()); + ResourceContext resourceContext = ret.getResourceContext().clone(); + resourceContext.setValidators(validators); + ret.setHttpResource(httpResourceFactory.getResource(resourceContext)); + ret.setHttpResource(cache.select(ret.getResourceContext(), ret.getCachedResource(), + ret.getHttpResource())); + + // If there is an error, we will try to reuse an old cache entry + if (!ret.getHttpResource().isError()) { + ret.setProxyResource(ret.getHttpResource()); + ret.setReady(true); + } + } + } + + private void tryLoadFromCache(ResourceProxyWithContext ret) { + if (Rfc2616.isCacheable(ret.getResourceContext())) { + // Try to load the resource from cache + + ret.setCachedResource(cache.get(ret.getResourceContext())); + boolean needsValidation = true; + if (ret.getCachedResource() != null) { + needsValidation = false; + if (config.getCacheRefreshDelay() <= 0) { + // Auto http cache + if (Rfc2616.needsValidation(ret.getResourceContext(), + ret.getCachedResource())) { + needsValidation = true; + } + } else { + // Forced expiration delay + if (Rfc2616.requiresRefresh(ret.getResourceContext()) + || Rfc2616.getAge(ret.getCachedResource()) > config + .getCacheRefreshDelay() * 1000L) { + needsValidation = true; + } + } + } + if (log.isDebugEnabled()) { + String message = "Needs validation=" + needsValidation; + message += " cacheRefreshDelay=" + + config.getCacheRefreshDelay(); + if (ret.getCachedResource() != null) { + message += " cachedResource=" + ret.getCachedResource(); + } + log.debug(message); + } + if (needsValidation) { + // Resource not in cache or stale, or refresh was forced by + // the user (hit refresh in the browser so the browser sent + // a pragma:no-cache header or something similar), prepare a + // memoryOutput to collect the new version + ret.setMemoryOutput(new CacheOutput(config.getCacheMaxFileSize())); + } else { + // Resource in cache, does not need validation, just render + // it + log.debug("Reusing cache entry for: " + ret.getHttpUrl()); + ret.setProxyResource(ret.getCachedResource()); + ret.setReady(true); + } + } + } + + private static class Resour... [truncated message content] |
From: <is...@us...> - 2011-03-24 09:08:19
|
Revision: 599 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=599&view=rev Author: isand Date: 2011-03-24 09:08:12 +0000 (Thu, 24 Mar 2011) Log Message: ----------- Esi taglib implementation Modified Paths: -------------- trunk/src/site/xdoc/esi.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/web.xml trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DriverUtils.java Added Paths: ----------- trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/esitags.tld trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/Operations.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TagsUtils.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/VarsTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/WhenTag.java Modified: trunk/src/site/xdoc/esi.xml =================================================================== --- trunk/src/site/xdoc/esi.xml 2011-03-23 14:00:25 UTC (rev 598) +++ trunk/src/site/xdoc/esi.xml 2011-03-24 09:08:12 UTC (rev 599) @@ -8,11 +8,9 @@ <h1>Edge Side Include</h1> <section name="Edge Side Include (ESI)"> <p> - Currently aggregator servlet supports ESI include and comment - tags. - In a near future, the complete - <a href="http://www.w3.org/TR/esi-lang">ESI language specification</a> - should be supported. + Currently aggregator servlet supports all features, according with + <a href="http://www.w3.org/TR/esi-lang">ESI language specification</a>, + excluding Inline tag. </p> </section> </body> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-03-23 14:00:25 UTC (rev 598) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-03-24 09:08:12 UTC (rev 599) @@ -28,5 +28,10 @@ <version>2.4</version> <scope>provided</scope> </dependency> + <dependency> + <groupId>net.sourceforge.webassembletool</groupId> + <artifactId>webassembletool-taglib</artifactId> + <version>2.18-SNAPSHOT</version> + </dependency> </dependencies> </project> Added: trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties (rev 0) +++ trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,22 @@ +remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated1/ +uriEncoding=UTF-8 +timeout=5000 +useCache=true + +# Required for Vary testing. +filter=net.webassembletool.filter.CookieForwardingFilter +cookieStore=net.webassembletool.cookie.FilteringCookieStore +forwardCookies=test-cookie +discardCookies=test-cookie + +localBase=${basedir}/target/test-classes/cacheDir/ +putInCache=true + +aggregated2.remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated2/ +aggregated2.useCache=false +aggregated2.timeout=5000 + +nocacheaggregated1.remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated1/ +nocacheaggregated1.uriEncoding=UTF-8 +nocacheaggregated1.timeout=5000 +nocacheaggregated1.useCache=false Added: trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/esitags.tld =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/esitags.tld (rev 0) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/esitags.tld 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!DOCTYPE taglib + PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" + "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> +<taglib> + <tlib-version>1.0</tlib-version> + <jsp-version>1.2</jsp-version> + <shortname>esi</shortname> + <tag> + <name>include</name> + <tag-class>net.webassembletool.taglib.esi.IncludeTag</tag-class> + <attribute> + <name>src</name> + <required>true</required> + </attribute> + <attribute> + <name>alt</name> + <required>false</required> + </attribute> + <attribute> + <name>onerror</name> + <required>false</required> + </attribute> + </tag> + + <tag> + <name>vars</name> + <tag-class>net.webassembletool.taglib.esi.VarsTag</tag-class> + <body-content>JSP</body-content> + </tag> + <tag> + <name>remove</name> + <tag-class>net.webassembletool.taglib.esi.RemoveTag</tag-class> + <body-content>JSP</body-content> + </tag> + <tag> + <name>comment</name> + <tag-class>net.webassembletool.taglib.esi.CommentTag</tag-class> + <attribute> + <name>text</name> + <required>true</required> + </attribute> + </tag> + + <tag> + <name>choose</name> + <tag-class>net.webassembletool.taglib.esi.ChooseTag</tag-class> + <body-content>JSP</body-content> + </tag> + <tag> + <name>when</name> + <tag-class>net.webassembletool.taglib.esi.WhenTag</tag-class> + <body-content>JSP</body-content> + <attribute> + <name>test</name> + <required>true</required> + </attribute> + </tag> + <tag> + <name>otherwise</name> + <tag-class>net.webassembletool.taglib.esi.OtherwiseTag</tag-class> + <body-content>JSP</body-content> + </tag> + + <tag> + <name>try</name> + <tag-class>net.webassembletool.taglib.esi.TryTag</tag-class> + <body-content>JSP</body-content> + </tag> + <tag> + <name>attempt</name> + <tag-class>net.webassembletool.taglib.esi.AttemptTag</tag-class> + <body-content>JSP</body-content> + </tag> + <tag> + <name>except</name> + <tag-class>net.webassembletool.taglib.esi.ExceptTag</tag-class> + <body-content>JSP</body-content> + </tag> + +</taglib> Modified: trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/web.xml 2011-03-23 14:00:25 UTC (rev 598) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/WEB-INF/web.xml 2011-03-24 09:08:12 UTC (rev 599) @@ -13,4 +13,8 @@ <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> + <taglib> + <taglib-uri>esitags.tld</taglib-uri> + <taglib-location>esitags.tld</taglib-location> + </taglib> </web-app> \ No newline at end of file Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DriverUtils.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DriverUtils.java 2011-03-23 14:00:25 UTC (rev 598) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DriverUtils.java 2011-03-24 09:08:12 UTC (rev 599) @@ -41,6 +41,18 @@ } } + public final static void renderEsi(String provider, String source, + PageContext pageContext) throws JspException, HttpErrorPage { + try { + Driver driver = DriverFactory.getInstance(provider); + driver.render(source, null, pageContext.getOut(), + (HttpServletRequest) pageContext.getRequest(), + (HttpServletResponse) pageContext.getResponse()); + } catch (IOException e) { + throw new JspException(e); + } + } + public final static void renderTemplate(String provider, String page, String name, PageContext pageContext, Map<String, String> params, Map<String, String> replaceRules, Map<String, String> parameters) Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,48 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.BodyContent; +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class AttemptTag extends BodyTagSupport { + + @Override + public int doAfterBody() throws JspTagException { + // find parent + TryTag parent = (TryTag) findAncestorWithClass(this, TryTag.class); + if (parent == null) { + throw new JspTagException("Attempt tag is not inside Try tag"); + } + + if (parent.isCondition()) { + try { + BodyContent bc = getBodyContent(); + bc.getEnclosingWriter().print(bc.getString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return SKIP_BODY; + } + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() throws JspTagException { + + // find parent + TryTag parent = (TryTag) findAncestorWithClass(this, TryTag.class); + if (parent == null) { + throw new JspTagException("Attempt tag is not inside Try tag"); + } + parent.setCondition(true); + return EVAL_BODY_BUFFERED; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,33 @@ +package net.webassembletool.taglib.esi; + +import javax.servlet.jsp.tagext.TagSupport; + +public class ChooseTag extends TagSupport { + + private boolean condition; + private boolean hasCondition; + + @Override + public int doStartTag() { + condition = false; + hasCondition = false; + return EVAL_BODY_INCLUDE; + } + + public boolean hasCondition() { + return hasCondition; + } + + public boolean isCondition() { + return condition; + } + + public void setCondition(boolean condition) { + this.condition = condition; + hasCondition = true; + } + + public void setHasCondition(boolean hasCondition) { + this.hasCondition = hasCondition; + } +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,22 @@ +package net.webassembletool.taglib.esi; + +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class CommentTag extends BodyTagSupport { + + private String text; + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() { + return SKIP_BODY; + } + + public void setText(String text) { + this.text = ""; + } +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,48 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.BodyContent; +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class ExceptTag extends BodyTagSupport { + + @Override + public int doAfterBody() throws JspTagException { + // find parent + TryTag parent = (TryTag) findAncestorWithClass(this, TryTag.class); + if (parent == null) { + throw new JspTagException("Expect tag is not inside Try tag"); + } + + if (parent.isIncludeInside()) { + try { + BodyContent bc = getBodyContent(); + bc.getEnclosingWriter().print(bc.getString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return SKIP_BODY; + } + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() throws JspTagException { + + // find parent + TryTag parent = (TryTag) findAncestorWithClass(this, TryTag.class); + if (parent == null || !parent.hasCondition()) { + throw new JspTagException("Expect tag is not inside Try tag"); + } + + return EVAL_BODY_BUFFERED; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,79 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.http.HttpServletResponse; +import javax.servlet.jsp.tagext.BodyTagSupport; +import javax.servlet.jsp.tagext.Tag; + +import net.webassembletool.taglib.DriverUtils; + +public class IncludeTag extends BodyTagSupport { + + private String alt = null; + private final String errorMessage = "An ESI Processor can fetch neither the 'src' nor the 'alt' sources"; + private String onerror = null; + private String src; + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() { + try { + // try to load 'src' source + // pageContext.getOut().print(TagsUtils.loadContent(src)); + DriverUtils.renderEsi(null, src, pageContext); + + } catch (Exception e) { + try { + // try to load 'alt' source + if (alt != null && !alt.equals("")) { + // pageContext.getOut().print(TagsUtils.loadContent(alt)); + DriverUtils.renderEsi(null, alt, pageContext); + } + } catch (Exception e1) { + e1.printStackTrace(); + try { + if (onerror == null || !onerror.equals("continue")) { + ((HttpServletResponse) pageContext.getResponse()) + .sendError(404, errorMessage); + return SKIP_BODY; + } + } catch (IOException e2) { + e2.printStackTrace(); + } + } + + e.printStackTrace(); + try { + Tag parent = getParent(); + if (parent instanceof AttemptTag) { + TryTag tryTag = (TryTag) parent.getParent(); + tryTag.setIncludeInside(true); + } else if (onerror == null || !onerror.equals("continue")) { + ((HttpServletResponse) pageContext.getResponse()) + .sendError(404, errorMessage); + } + } catch (IOException e1) { + e1.printStackTrace(); + } + } + return SKIP_BODY; + } + + public void setAlt(String alt) { + this.alt = TagsUtils.processVars(alt, pageContext); + } + + public void setOnerror(String onerror) { + this.onerror = onerror; + } + + public void setSrc(String src) { + this.src = TagsUtils.processVars(src, pageContext); + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/Operations.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/Operations.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/Operations.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,169 @@ +package net.webassembletool.taglib.esi; + +import java.util.ArrayList; + +public class Operations { + + private static boolean executeOperation(String op) { + + int i; + double dop1, dop2; + String op1, op2; + + try { + if (op.indexOf("==") != -1) { + i = op.indexOf("=="); + op1 = op.substring(0, i); + op2 = op.substring(i + 2); + if (op.indexOf("'") != -1) { + return op1.equals(op2); + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 == dop2; + } + } else if (op.indexOf("!=") != -1) { + i = op.indexOf("!="); + op1 = op.substring(0, i); + op2 = op.substring(i + 2); + if (op.indexOf("'") != -1) { + return !op1.equals(op2); + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 != dop2; + } + } else if (op.indexOf(">=") != -1) { + i = op.indexOf(">="); + op1 = op.substring(0, i); + op2 = op.substring(i + 2); + if (op.indexOf("'") != -1) { + int cmp = op1.compareTo(op2); + return cmp >= 0; + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 >= dop2; + } + } else if (op.indexOf("<=") != -1) { + i = op.indexOf("<="); + op1 = op.substring(0, i); + op2 = op.substring(i + 2); + if (op.indexOf("'") != -1) { + int cmp = op1.compareTo(op2); + return cmp <= 0; + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 <= dop2; + } + } else if (op.indexOf(">") != -1) { + i = op.indexOf(">"); + op1 = op.substring(0, i); + op2 = op.substring(i + 1); + if (op.indexOf("'") != -1) { + int cmp = op1.compareTo(op2); + return cmp > 0; + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 > dop2; + } + } else if (op.indexOf("<") != -1) { + i = op.indexOf("<"); + op1 = op.substring(0, i); + op2 = op.substring(i + 1); + if (op.indexOf("'") != -1) { + int cmp = op1.compareTo(op2); + return cmp < 0; + } else { + dop1 = Double.parseDouble(op1); + dop2 = Double.parseDouble(op2); + return dop1 < dop2; + } + } + } catch (Exception e) { + return false; + } + + return false; + } + + private static boolean executeOperations(ArrayList<String> operands, + ArrayList<String> operations) { + boolean res = false; + ArrayList<Boolean> results = new ArrayList<Boolean>(); + + try { + for (String op : operands) { + results.add(executeOperation(op)); + } + + if (results.size() == 1) { + if (operations.size() == 1 && operations.get(0).equals("!")) { + return !results.get(0); + } else { + return results.get(0); + } + } + + int i = 1; + res = results.get(0); + for (String op : operations) { + if (op.equals("&")) { + res = res && results.get(i); + } else if (op.equals("|")) { + res = res || results.get(i); + } else { + res = false; + } + i++; + } + } catch (Exception e) { + return false; + } + + return res; + } + + public static boolean processOperators(String test) { + + if (test == null || test.equals("")) { + return false; + } + + ArrayList<String> operands = new ArrayList<String>(); + ArrayList<String> operations = new ArrayList<String>(); + + String s = test.replaceAll(" ", ""); + if (s.startsWith("!")) { + operations.add("!"); + } + if (s.indexOf('(') == -1) { + s = "(" + s + ")"; + } + + // allocate (...) + try { + while (s.length() > 0) { + int sbIndex = s.indexOf(')'); + operands.add(s.substring(s.indexOf('(') + 1, sbIndex)); + if (s.length() > sbIndex + 1) { + String oper = s.substring(sbIndex + 1, s.substring(sbIndex) + .indexOf('(') + + sbIndex); + operations.add(oper); + s = s.substring(sbIndex + 2); + } else { + s = ""; + } + + } + } catch (Exception e) { + return false; + } + + return executeOperations(operands, operations); + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,55 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.BodyContent; +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class OtherwiseTag extends BodyTagSupport { + + @Override + public int doAfterBody() throws JspTagException { + // find parent + ChooseTag parent = (ChooseTag) findAncestorWithClass(this, + ChooseTag.class); + if (parent == null) { + throw new JspTagException("Otherwise tag is not inside Choose tag"); + } + + if (!parent.isCondition()) { + try { + BodyContent bc = getBodyContent(); + bc.getEnclosingWriter().print(bc.getString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return SKIP_BODY; + } + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() throws JspTagException { + + // find parent + ChooseTag parent = (ChooseTag) findAncestorWithClass(this, + ChooseTag.class); + if (parent == null) { + throw new JspTagException("Otherwise tag is not inside Choose tag"); + } + + // handle test condition + if (!parent.hasCondition()) { + throw new JspTagException("Otherwise tag must come before When tag"); + } + + return EVAL_BODY_BUFFERED; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,12 @@ +package net.webassembletool.taglib.esi; + +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class RemoveTag extends BodyTagSupport { + + @Override + public int doAfterBody() { + return SKIP_BODY; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TagsUtils.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TagsUtils.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TagsUtils.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,149 @@ +package net.webassembletool.taglib.esi; + +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.jsp.PageContext; + +public class TagsUtils { + + public static String escape(String str) { + return str.replaceAll("<%", "").replaceAll("%>", ""); + } + + public static String loadContent(String url) throws Exception { + + if (url == null || url.trim().equalsIgnoreCase("")) { + return ""; + } + + StringBuffer sb = new StringBuffer(); + URL u = new URL(url); + URLConnection yc = u.openConnection(); + BufferedReader in = new BufferedReader(new InputStreamReader(yc + .getInputStream())); + String inputLine; + + while ((inputLine = in.readLine()) != null) { + sb.append(inputLine); + } + + in.close(); + + return sb.toString(); + } + + private static String processVar(String var, String arg, + PageContext pageContext) { + String res = ""; + + if (var.indexOf("QUERY_STRING") != -1) { + if (arg == null) { + return res; + } + res = pageContext.getRequest().getParameter(arg); + } + + else if (var.indexOf("HTTP_ACCEPT_LANGUAGE") != -1) { + if (arg == null) { + return res; + } + + String langs = ((HttpServletRequest) pageContext.getRequest()) + .getHeader("Accept-Language"); + + if (langs.indexOf(arg) == -1) { + res = "false"; + } else { + res = "true"; + } + } + + else if (var.indexOf("HTTP_HOST") != -1) { + res = ((HttpServletRequest) pageContext.getRequest()) + .getHeader("Host"); + } + + else if (var.indexOf("HTTP_REFERER") != -1) { + res = ((HttpServletRequest) pageContext.getRequest()) + .getHeader("Referer"); + } + + else if (var.indexOf("HTTP_COOKIE") != -1) { + if (arg == null) { + return res; + } + Cookie[] cookies = ((HttpServletRequest) pageContext.getRequest()) + .getCookies(); + for (Cookie c : cookies) { + if (c.getName().equals(arg)) { + res = c.getValue(); + break; + } + } + } + + else if (var.indexOf("HTTP_USER_AGENT") != -1) { + if (arg == null) { + return res; + } + String userAgent = ((HttpServletRequest) pageContext.getRequest()) + .getHeader("User-Agent").toLowerCase(); + if (arg.equals("os")) { + if (userAgent.indexOf("unix") != -1) { + res = "UNIX"; + } else if (userAgent.indexOf("mac") != -1) { + res = "MAC"; + } else if (userAgent.indexOf("windows") != -1) { + res = "WIN"; + } else { + res = "OTHER"; + } + } else if (arg.equals("browser")) { + if (userAgent.indexOf("msie") != -1) { + res = "MSIE"; + } else { + res = "MOZILLA"; + } + } + + } + + if (res == null) { + return ""; + } else { + return res; + } + } + + public static String processVars(String str, PageContext pageContext) { + + Pattern pattern = Pattern.compile("\\$\\([A-Z_]+(\\{.+\\})?\\)"); + Matcher matcher = pattern.matcher(str); + String result = str; + String var, arg, replacement; + + while (matcher.find()) { + arg = null; + var = matcher.group(); + + // try to find argument + try { + arg = var.substring(var.indexOf('{') + 1, var.indexOf('}')); + } catch (Exception e) { + } + + replacement = processVar(var, arg, pageContext); + result = matcher.replaceFirst(replacement); + matcher = pattern.matcher(result); + } + + return result; + } +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,43 @@ +package net.webassembletool.taglib.esi; + +import javax.servlet.jsp.tagext.TagSupport; + +public class TryTag extends TagSupport { + + private boolean condition; + private boolean hasCondition; + private boolean includeInside; + + @Override + public int doStartTag() { + condition = false; + hasCondition = false; + return EVAL_BODY_INCLUDE; + } + + public boolean hasCondition() { + return hasCondition; + } + + public boolean isCondition() { + return condition; + } + + public boolean isIncludeInside() { + return includeInside; + } + + public void setCondition(boolean condition) { + this.condition = condition; + hasCondition = true; + } + + public void setHasCondition(boolean hasCondition) { + this.hasCondition = hasCondition; + } + + public void setIncludeInside(boolean includeInside) { + this.includeInside = includeInside; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/VarsTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/VarsTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/VarsTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,25 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.jsp.tagext.BodyContent; +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class VarsTag extends BodyTagSupport { + + @Override + public int doAfterBody() { + BodyContent bc = getBodyContent(); + String body = bc.getString(); + String hb = TagsUtils.processVars(body, pageContext); + + try { + bc.getEnclosingWriter().print(hb); + } catch (IOException e) { + e.printStackTrace(); + } + + return SKIP_BODY; + } + +} Added: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/WhenTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/WhenTag.java (rev 0) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/WhenTag.java 2011-03-24 09:08:12 UTC (rev 599) @@ -0,0 +1,64 @@ +package net.webassembletool.taglib.esi; + +import java.io.IOException; + +import javax.servlet.jsp.JspTagException; +import javax.servlet.jsp.tagext.BodyContent; +import javax.servlet.jsp.tagext.BodyTagSupport; + +public class WhenTag extends BodyTagSupport { + + private String test; + + @Override + public int doAfterBody() throws JspTagException { + // find parent + ChooseTag parent = (ChooseTag) findAncestorWithClass(this, + ChooseTag.class); + if (parent == null) { + throw new JspTagException("When tag is not inside Choose tag"); + } + + if (parent.isCondition()) { + try { + BodyContent bc = getBodyContent(); + bc.getEnclosingWriter().print(bc.getString()); + } catch (IOException e) { + e.printStackTrace(); + } + } + + return SKIP_BODY; + } + + @Override + public int doEndTag() { + return EVAL_PAGE; + } + + @Override + public int doStartTag() throws JspTagException { + + // find parent + ChooseTag parent = (ChooseTag) findAncestorWithClass(this, + ChooseTag.class); + if (parent == null) { + throw new JspTagException("When tag is not inside Choose tag"); + } + + // exclude others When tags if previous one was true + if (parent.isCondition()) { + return SKIP_BODY; + } + + // handle test condition + parent.setCondition(Operations.processOperators(test)); + + return EVAL_BODY_BUFFERED; + } + + public void setTest(String test) { + this.test = TagsUtils.processVars(test, pageContext); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-03-24 13:15:42
|
Revision: 603 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=603&view=rev Author: sbernatsky Date: 2011-03-24 13:15:35 +0000 (Thu, 24 Mar 2011) Log Message: ----------- cleanup: fix urls in proxy mode; do not follow redirects internally in proxy mode, follow redirects internally in aggregate mode; fix error with parsing parameters into HttpResourceFactory from CachedResourceFactory Modified Paths: -------------- trunk/webassembletool-app-aggregated2/src/main/webapp/circularredirect.jsp trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java Removed Paths: ------------- trunk/webassembletool-core/src/main/java/net/webassembletool/Proxy2Servlet.java Modified: trunk/webassembletool-app-aggregated2/src/main/webapp/circularredirect.jsp =================================================================== --- trunk/webassembletool-app-aggregated2/src/main/webapp/circularredirect.jsp 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-app-aggregated2/src/main/webapp/circularredirect.jsp 2011-03-24 13:15:35 UTC (rev 603) @@ -1,8 +1,8 @@ <% int param=Integer.parseInt(request.getParameter("count")); -if(param > 0){ +if (param > 0) { response.sendRedirect("circularredirect.jsp?count="+(param-1)); -}else{ +} else { %> <!--$beginblock$myblock$-->Circular redirect OK<!--$endblock$myblock$--> <%} %> Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-03-24 13:15:35 UTC (rev 603) @@ -32,19 +32,16 @@ doSimpleTest(page, page); } - private void doSimpleTest(String page, String resultResource) - throws Exception { + private void doSimpleTest(String page, String resultResource) throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + page); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp - .getResponseCode()); - assertEquals(getResource(resultResource).replaceAll("\r", ""), resp - .getText().replaceAll("\r", "")); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); + assertEquals(getResource(resultResource).replaceAll("\r", "").replaceAll("\n", ""), + resp.getText().replaceAll("\r", "").replaceAll("\n", "")); } private String getResource(String file) throws IOException { - InputStream inputStream = this.getClass().getResourceAsStream( - RESOURCES_PATH + file); + InputStream inputStream = this.getClass().getResourceAsStream(RESOURCES_PATH + file); String result = IOUtils.toString(inputStream, "UTF-8"); inputStream.close(); return result; @@ -62,8 +59,7 @@ } public void testBarInUrlParam() throws Exception { - doSimpleTest("resource%20with%20spaces.html?bar=foo%7Cfoo%26bar", - "resource_with_spaces.html"); + doSimpleTest("resource%20with%20spaces.html?bar=foo%7Cfoo%26bar", "resource_with_spaces.html"); } public void testBinaryGzip() throws Exception { @@ -88,13 +84,10 @@ } public void testChunkedEncoding() throws Exception { - WebRequest req = new GetMethodWebRequest(APPLICATION_PATH - + "ChunkedEncodingServlet"); + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "ChunkedEncodingServlet"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp - .getResponseCode()); - assertEquals("Response body did not match", "Bonjour Monde !", resp - .getText()); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); + assertEquals("Response body did not match", "Bonjour Monde !", resp.getText()); } public void testCircularRedirect() throws Exception { @@ -111,8 +104,7 @@ } public void testGetUnsafeCharacter() throws Exception { - doSimpleTest("get.jsp?myField={}|\\^~[]`&send=Post+this+form", - "getUnsafeCharacter.jsp"); + doSimpleTest("get.jsp?myField={}|\\^~[]`&send=Post+this+form", "getUnsafeCharacter.jsp"); } public void testMixedEncodings() throws Exception { @@ -120,8 +112,8 @@ } /** - * Test for a nested include : aggregated1 includes a block from aggregated2 - * and the block from aggregated2 includes a block from aggregated1 + * Test for a nested include : aggregated1 includes a block from aggregated2 and the block from aggregated2 includes + * a block from aggregated1 * * @throws Exception */ @@ -135,59 +127,46 @@ public void testPost() throws Exception { // Post request with a e-acute urlencoded using UTF-8 charset - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH - + "post.jsp", new ByteArrayInputStream("myField=%C3%A9" - .getBytes("UTF-8")), "application/x-www-form-urlencoded"); + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post.jsp", new ByteArrayInputStream( + "myField=%C3%A9".getBytes("UTF-8")), "application/x-www-form-urlencoded"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp - .getResponseCode()); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); assertEquals(getResource("post.jsp"), resp.getText()); } public void testRawPost() throws Exception { - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH - + "post_raw.jsp", new ByteArrayInputStream("Hello smile!" - .getBytes("UTF-8")), "raw/post-data"); + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post_raw.jsp", new ByteArrayInputStream( + "Hello smile!".getBytes("UTF-8")), "raw/post-data"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Response body did not match", - "Posted body data : Hello smile!", resp.getText()); + assertEquals("Response body did not match", "Posted body data : Hello smile!", resp.getText()); } public void testRawPostWithQueryString() throws Exception { - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH - + "post_raw.jsp?param=smile", new ByteArrayInputStream( - "Hello !".getBytes("UTF-8")), "raw/post-data"); + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post_raw.jsp?param=smile", + new ByteArrayInputStream("Hello !".getBytes("UTF-8")), "raw/post-data"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Response body did not match", - "Posted body data : Hello !smile", resp.getText()); + assertEquals("Response body did not match", "Posted body data : Hello !smile", resp.getText()); } public void testRedirect() throws Exception { - WebRequest req = new GetMethodWebRequest(APPLICATION_PATH - + "redirect.jsp"); + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "redirect.jsp"); webConversation.getClientProperties().setAutoRedirect(false); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be " - + HttpServletResponse.SC_MOVED_TEMPORARILY, - HttpServletResponse.SC_MOVED_TEMPORARILY, resp - .getResponseCode()); - assertEquals( - "Redirect header did not match", - "http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", + assertEquals("Status should be " + HttpServletResponse.SC_MOVED_TEMPORARILY, HttpServletResponse.SC_MOVED_TEMPORARILY, + resp.getResponseCode()); + assertEquals("Redirect header did not match", "http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", resp.getHeaderField("Location")); } public void testSpaceInUrl() throws Exception { - doSimpleTest("resource%20with%20spaces.html", - "resource_with_spaces.html"); + doSimpleTest("resource%20with%20spaces.html", "resource_with_spaces.html"); } public void testSpecial404Error() throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "whatever"); WebResponse resp = webConversation.getResponse(req); // Should get a 404 error, not a 200 ! - assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, - resp.getResponseCode()); + assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, resp.getResponseCode()); } public void testSpecialCharactersInUrl() throws Exception { @@ -195,8 +174,7 @@ WebResponse resp = webConversation.getResponse(req); // Should get a 404 error but if the character is decoded to "[", it // will generate an invalid URL and a 500 error - assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, - resp.getResponseCode()); + assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, resp.getResponseCode()); } public void testTemplate() throws Exception { @@ -209,8 +187,7 @@ } public void testTemplateFromDiskMixedEncoding() throws Exception { - doSimpleTest("testTemplateFromDiskMixedEncoding", - "testTemplateFromDiskMixedEncoding.html"); + doSimpleTest("testTemplateFromDiskMixedEncoding", "testTemplateFromDiskMixedEncoding.html"); } // Test la récupération depuis le cache disque @@ -222,9 +199,8 @@ public void testTemplateWithParams() throws Exception { /* - * Ensure aggregator "template" params are not forwarded to the backend - * template like it is the case for master/provider since these params - * are processed aggregator-side. + * Ensure aggregator "template" params are not forwarded to the backend template like it is the case for + * master/provider since these params are processed aggregator-side. */ doSimpleTest("templatewithparams.html"); } @@ -240,14 +216,12 @@ public void testZipDownload() throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "test.zip"); WebResponse resp = webConversation.getResponse(req); - InputStream inputStream = this.getClass().getResourceAsStream( - RESOURCES_PATH + "test.zip"); + InputStream inputStream = this.getClass().getResourceAsStream(RESOURCES_PATH + "test.zip"); byte[] expected = IOUtils.toByteArray(inputStream); inputStream.close(); byte[] result = IOUtils.toByteArray(resp.getInputStream()); inputStream.close(); - assertTrue("Response body did not match", Arrays.equals(expected, - result)); + assertTrue("Response body did not match", Arrays.equals(expected, result)); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-03-24 13:15:35 UTC (rev 603) @@ -443,66 +443,6 @@ } } - /** - * Retrieves a resource from the provider application and transforms it using the Renderer passed as a parameter. - * - * @param relUrl - * the relative URL to the resource - * @param request - * the request - * @param response - * the response - * @throws IOException - * If an IOException occurs while writing to the response - * @throws HttpErrorPage - * If the page contains incorrect tags - */ - public final void proxy2(String relUrl, HttpServletRequest request, HttpServletResponse response) throws IOException, - HttpErrorPage { - ResourceContext resourceContext = new ResourceContext(this, relUrl, null, request, response); - request.setCharacterEncoding(config.getUriEncoding()); - resourceContext.setProxy(true); - resourceContext.setPreserveHost(config.isPreserveHost()); - if (!authenticationHandler.beforeProxy(resourceContext)) { - return; - } - - // Directly stream out non text data - TextOnlyStringOutput textOutput = new TextOnlyStringOutput(response, this.config.getParsableContentTypes()); - renderResource(resourceContext, textOutput); - // If data was binary, no text buffer is available and no rendering is needed. - if (!textOutput.hasTextBuffer()) { - LOG.debug("'" + relUrl + "' is binary : was forwarded without modification."); - return; - } - LOG.debug("'" + relUrl + "' is text : will apply renderers."); - String currentValue = textOutput.toString(); - - // Fix resources - if (config.isFixResources()) { - ResourceFixupRenderer fixup = new ResourceFixupRenderer(config.getBaseURL(), config.getVisibleBaseURL(), relUrl, - config.getFixMode()); - StringWriter stringWriter = new StringWriter(); - fixup.render(resourceContext, currentValue, stringWriter); - currentValue = stringWriter.toString(); - } - - // Write the result to the OutpuStream - String charsetName = textOutput.getCharsetName(); - if (charsetName == null) { - // No charset was specified in the response, we assume this is ISO-8859-1 - charsetName = "ISO-8859-1"; - // We do not use the Writer because the container may add some unwanted headers like default content-type - // that may not be consistent with the original response - response.getOutputStream().write(currentValue.getBytes(charsetName)); - } else { - // Even if Content-type header has been set, some containers like Jetty need the charsetName to be set, - // if not it will take default value ISO-8859-1 - response.setCharacterEncoding(charsetName); - response.getWriter().write(currentValue); - } - } - private final void renderResource(ResourceContext resourceContext, Output output) throws HttpErrorPage { Resource resource = null; try { Deleted: trunk/webassembletool-core/src/main/java/net/webassembletool/Proxy2Servlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Proxy2Servlet.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Proxy2Servlet.java 2011-03-24 13:15:35 UTC (rev 603) @@ -1,43 +0,0 @@ -package net.webassembletool; - -import java.io.IOException; - -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Servlet used to proxy requests from a remote application. - * - * @author Francois-Xavier Bonnet - */ -public class Proxy2Servlet extends HttpServlet { - private static final long serialVersionUID = 1L; - private static final Logger LOG = LoggerFactory.getLogger(Proxy2Servlet.class); - private String driver; - - @Override - protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String relUrl = request.getRequestURI(); - relUrl = relUrl.substring(request.getContextPath().length()); - if (request.getServletPath() != null) { - relUrl = relUrl.substring(request.getServletPath().length()); - } - LOG.debug("Proxying " + relUrl); - try { - DriverFactory.getInstance(driver).proxy2(relUrl, request, response); - } catch (HttpErrorPage e) { - response.setStatus(e.getStatusCode()); - e.render(response.getWriter()); - } - } - - @Override - public void init() { - driver = getServletConfig().getInitParameter("provider"); - } -} Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java 2011-03-24 13:15:35 UTC (rev 603) @@ -146,9 +146,15 @@ Map<String, String> validators = cache.getValidators( ret.getResourceContext(), ret.getCachedResource()); - ResourceContext resourceContext = ret.getResourceContext().clone(); - resourceContext.setValidators(validators); - ret.setHttpResource(httpResourceFactory.getResource(resourceContext)); + // ResourceContext resourceContext = ret.getResourceContext().clone(); + ResourceContext resourceContext = ret.getResourceContext(); + Map<String, String> originalValidators = resourceContext.getValidators(); + try { + resourceContext.setValidators(validators); + ret.setHttpResource(httpResourceFactory.getResource(resourceContext)); + } finally { + resourceContext.setValidators(originalValidators); + } ret.setHttpResource(cache.select(ret.getResourceContext(), ret.getCachedResource(), ret.getHttpResource())); @@ -282,11 +288,6 @@ } - public CacheOutput getMemoryOutput() { - return memoryOutput; - } - - public void setMemoryOutput(CacheOutput memoryOutput) { this.memoryOutput = memoryOutput; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java 2011-03-24 13:15:35 UTC (rev 603) @@ -49,7 +49,7 @@ private final static Logger LOG = LoggerFactory.getLogger(HttpClientRequest.class); private String uri; private final HttpServletRequest originalRequest; - private boolean proxy; + private final boolean proxy; private BasicHttpRequest httpRequest; private HashMap<String, String> headers; private boolean preserveHost = false; @@ -165,7 +165,7 @@ } else { throw new UnsupportedHttpMethodException(method + " " + uri); } - httpRequest.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, false); + httpRequest.getParams().setParameter(ClientPNames.HANDLE_REDIRECTS, !proxy); // Use browser compatibility cookie policy. This policy is the closest // to the behavior of a real browser. httpRequest.getParams().setParameter(ClientPNames.COOKIE_POLICY, @@ -222,14 +222,6 @@ return httpRequest.getRequestLine().toString(); } - public boolean isProxy() { - return proxy; - } - - public void setProxy(boolean proxy) { - this.proxy = proxy; - } - public boolean isPreserveHost() { return preserveHost; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java 2011-03-24 13:15:35 UTC (rev 603) @@ -20,7 +20,6 @@ import java.net.MalformedURLException; import java.net.URL; import java.util.Collection; -import java.util.Map; import java.util.Map.Entry; import java.util.zip.GZIPInputStream; @@ -55,8 +54,7 @@ private final ResourceContext target; private final String url; - public HttpResource(HttpClient httpClient, ResourceContext resourceContext, - Map<String, String> validators) throws IOException { + public HttpResource(HttpClient httpClient, ResourceContext resourceContext) throws IOException { this.target = resourceContext; this.url = ResourceUtils.getHttpUrlWithQueryString(resourceContext); @@ -78,12 +76,10 @@ // Proceed with request boolean proxy = resourceContext.isProxy(); boolean preserveHost = resourceContext.isPreserveHost(); - HttpClientRequest httpClientRequest = new HttpClientRequest(url, - originalRequest, proxy, preserveHost); - if (validators != null) { - for (Entry<String, String> header : validators.entrySet()) { - LOG.debug("Adding validator: " + header.getKey() + ": " - + header.getValue()); + HttpClientRequest httpClientRequest = new HttpClientRequest(url, originalRequest, proxy, preserveHost); + if (resourceContext.getValidators() != null) { + for (Entry<String, String> header : resourceContext.getValidators().entrySet()) { + LOG.debug("Adding validator: " + header.getKey() + ": " + header.getValue()); httpClientRequest.addHeader(header.getKey(), header.getValue()); } } @@ -129,8 +125,7 @@ } if (isError()) { - LOG.warn("Problem retrieving URL: " + url + ": " - + httpClientResponse.getStatusCode() + " " + LOG.warn("Problem retrieving URL: " + url + ": " + httpClientResponse.getStatusCode() + " " + httpClientResponse.getStatusText()); } } @@ -162,11 +157,9 @@ // Unzip the stream if necessary String contentEncoding = getHeader(HttpHeaders.CONTENT_ENCODING); if (contentEncoding != null) { - if (!"gzip".equalsIgnoreCase(contentEncoding) - && !"x-gzip".equalsIgnoreCase(contentEncoding)) { - throw new UnsupportedContentEncodingException( - "Content-encoding \"" + contentEncoding - + "\" is not supported"); + if (!"gzip".equalsIgnoreCase(contentEncoding) && !"x-gzip".equalsIgnoreCase(contentEncoding)) { + throw new UnsupportedContentEncodingException("Content-encoding \"" + contentEncoding + + "\" is not supported"); } inputStream = new GZIPInputStream(inputStream); } @@ -196,8 +189,7 @@ // Remove relUrl from originalBase. originalBase = originalBase.substring(0, pos); // Add '/' at the end if absent - if (originalBase.charAt(originalBase.length() - 1) != '/' - && driverBaseUrl.charAt(driverBaseUrl.length() - 1) == '/') { + if (originalBase.charAt(originalBase.length() - 1) != '/' && driverBaseUrl.charAt(driverBaseUrl.length() - 1) == '/') { originalBase += "/"; } } @@ -205,12 +197,10 @@ return location.replaceFirst(driverBaseUrl, originalBase); } - private void removeSessionId(InputStream inputStream, Output output) - throws IOException { + private void removeSessionId(InputStream inputStream, Output output) throws IOException { String jsessionid = RewriteUtils.getSessionId(target); - boolean textContentType = ResourceUtils.isTextContentType( - httpClientResponse.getHeader(HttpHeaders.CONTENT_TYPE), target - .getDriver().getConfiguration().getParsableContentTypes()); + boolean textContentType = ResourceUtils.isTextContentType(httpClientResponse.getHeader(HttpHeaders.CONTENT_TYPE), + target.getDriver().getConfiguration().getParsableContentTypes()); if (jsessionid == null || !textContentType) { IOUtils.copy(inputStream, output.getOutputStream()); } else { @@ -221,8 +211,7 @@ String content = IOUtils.toString(inputStream, charset); content = removeSessionId(jsessionid, content); if (output.getHeader(HttpHeaders.CONTENT_LENGTH) != null) { - output.setHeader(HttpHeaders.CONTENT_LENGTH, - Integer.toString(content.length())); + output.setHeader(HttpHeaders.CONTENT_LENGTH, Integer.toString(content.length())); } OutputStream outputStream = output.getOutputStream(); IOUtils.write(content, outputStream, charset); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java 2011-03-24 13:15:35 UTC (rev 603) @@ -22,12 +22,12 @@ public Resource getResource(ResourceContext resourceContext) throws HttpErrorPage { try { - return new HttpResource(httpClient, resourceContext, resourceContext.getValidators()); + return new HttpResource(httpClient, resourceContext); } catch (IOException e) { StringWriter out = new StringWriter(); e.printStackTrace(new PrintWriter(out)); HttpErrorPage httpErrorPage = new HttpErrorPage(HttpServletResponse.SC_BAD_GATEWAY, e.getMessage(), out.toString()); - httpErrorPage.initCause(e); + httpErrorPage.initCause(e); throw httpErrorPage; } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java 2011-03-24 13:15:35 UTC (rev 603) @@ -14,9 +14,8 @@ import org.slf4j.LoggerFactory; /** - * This renderer fixes links to resources, images and pages in pages retrieved - * by the WAT. This enables use of WAT without any special modifications of the - * generated urls on the provider side. + * This renderer fixes links to resources, images and pages in pages retrieved by the WAT. This enables use of WAT + * without any special modifications of the generated urls on the provider side. * * All href and src attributes are processed, except javascript links. * @@ -38,19 +37,17 @@ private String server = null; private String baseUrl; private String replacementUrl; - private int mode = ABSOLUTE; + private final boolean fixRelativeUrls; + private final int mode; /** - * Creates a renderer which fixes urls. The domain name and the url path are - * computed from the full url made of baseUrl + pageFullPath. + * Creates a renderer which fixes urls. The domain name and the url path are computed from the full url made of + * baseUrl + pageFullPath. * - * If mode is ABSOLUTE, all relative urls will be replaced by the full urls - * : + * If mode is ABSOLUTE, all relative urls will be replaced by the full urls : * <ul> - * <li>images/image.png is replaced by - * http://server/context/images/image.png</li> - * <li>/context/images/image.png is replaced by - * http://server/context/images/image.png</li> + * <li>images/image.png is replaced by http://server/context/images/image.png</li> + * <li>/context/images/image.png is replaced by http://server/context/images/image.png</li> * </ul> * * If mode is RELATIVE, context will be added to relative urls : @@ -63,14 +60,45 @@ * @param pageFullPath * Page as used in tag lib or using API * @param mode - * ResourceFixupRenderer.ABSOLUTE or - * ResourceFixupRenderer.RELATIVE + * ResourceFixupRenderer.ABSOLUTE or ResourceFixupRenderer.RELATIVE + * @param fixRelativeUrls + * defines whether relative URLs should be fixed + * @throws MalformedURLException + */ + public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, String pageFullPath, int mode) + throws MalformedURLException { + this(baseUrl, visibleBaseUrl, pageFullPath, mode, true); + } + + /** + * Creates a renderer which fixes urls. The domain name and the url path are computed from the full url made of + * baseUrl + pageFullPath. * + * If mode is ABSOLUTE, all relative urls will be replaced by the full urls : + * <ul> + * <li>images/image.png is replaced by http://server/context/images/image.png</li> + * <li>/context/images/image.png is replaced by http://server/context/images/image.png</li> + * </ul> + * + * If mode is RELATIVE, context will be added to relative urls : + * <ul> + * <li>images/image.png is replaced by /context/images/image.png</li> + * </ul> + * + * @param visibleBaseUrl + * Base url (same as configured in provider). + * @param pageFullPath + * Page as used in tag lib or using API + * @param mode + * ResourceFixupRenderer.ABSOLUTE or ResourceFixupRenderer.RELATIVE + * @param fixRelativeUrls + * defines whether relative URLs should be fixed * @throws MalformedURLException */ - public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, - String pageFullPath, int mode) throws MalformedURLException { + public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, String pageFullPath, int mode, boolean fixRelativeUrls) + throws MalformedURLException { this.mode = mode; + this.fixRelativeUrls = fixRelativeUrls; if (visibleBaseUrl != null && visibleBaseUrl.length() != 0) { this.baseUrl = removeLeadingSlash(baseUrl); @@ -143,8 +171,7 @@ return url; } // Keep absolute and javascript urls untouched. - if (url.startsWith("http://") || url.startsWith("https://") - || url.startsWith("#") || url.startsWith("javascript:")) { + if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("#") || url.startsWith("javascript:")) { LOG.debug("keeping absolute url: " + url); return url; } @@ -160,13 +187,13 @@ if (mode == ABSOLUTE) { url = server + url; } - // } else { - // // Process relative urls - // if (mode == ABSOLUTE) { - // url = server + pagePath + SLASH + url; - // } else { - // url = pagePath + SLASH + url; - // } + } else if (fixRelativeUrls) { + // Process relative urls + if (mode == ABSOLUTE) { + url = server + pagePath + SLASH + url; + } else { + url = pagePath + SLASH + url; + } } LOG.debug("url fixed: " + urlParam + " -> " + url); Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java 2011-03-24 13:01:39 UTC (rev 602) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java 2011-03-24 13:15:35 UTC (rev 603) @@ -35,7 +35,7 @@ public void doNotTestRedirect() throws Exception { HttpClient httpClient = EasyMock.createMock(HttpClient.class); HttpServletRequest originalRequest = EasyMock.createMock(HttpServletRequest.class); - HttpServletResponse originalResponse = EasyMock.createMock(HttpServletResponse.class); + HttpServletResponse originalResponse = EasyMock.createMock(HttpServletResponse.class); HttpResponse httpResponse = EasyMock.createMock(HttpResponse.class); HttpEntity entity = EasyMock.createMock(HttpEntity.class); StatusLine statusLine = EasyMock.createMock(StatusLine.class); @@ -47,24 +47,29 @@ props.setProperty("timeout", "5000"); props.setProperty("useCache", "false"); - Driver driver = new Driver("test", props); - ResourceContext resourceContext = new ResourceContext(driver, "/redirect.jsp", null , originalRequest, originalResponse); + ResourceContext resourceContext = new ResourceContext(driver, "/redirect.jsp", null, originalRequest, originalResponse); EasyMock.expect(originalRequest.getCharacterEncoding()).andReturn("UTF-8").anyTimes(); - EasyMock.expect(originalRequest.getQueryString()).andReturn("http://localhost:8080/webassembletool-app-aggregator/redirect.jsp").anyTimes(); - EasyMock.expect(originalRequest.getRequestURL()).andReturn(new StringBuffer("http://localhost:8080/webassembletool-app-aggregator/redirect.jsp")).anyTimes(); + EasyMock.expect(originalRequest.getQueryString()).andReturn( + "http://localhost:8080/webassembletool-app-aggregator/redirect.jsp").anyTimes(); + EasyMock.expect(originalRequest.getRequestURL()).andReturn( + new StringBuffer("http://localhost:8080/webassembletool-app-aggregator/redirect.jsp")).anyTimes(); EasyMock.expect(originalRequest.getSession(false)).andReturn(null).anyTimes(); EasyMock.expect(originalRequest.getRemoteUser()).andReturn(null).anyTimes(); - EasyMock.expect(originalRequest.getHeader("User-Agent")).andReturn("Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13").anyTimes(); - EasyMock.expect(originalRequest.getHeader("Accept")).andReturn("text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8").anyTimes(); + EasyMock.expect(originalRequest.getHeader("User-Agent")).andReturn( + "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13").anyTimes(); + EasyMock.expect(originalRequest.getHeader("Accept")).andReturn( + "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8").anyTimes(); EasyMock.expect(originalRequest.getHeader("Accept-Encoding")).andReturn("gzip,deflate").anyTimes(); EasyMock.expect(originalRequest.getHeader("Accept-Language")).andReturn("ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3").anyTimes(); EasyMock.expect(originalRequest.getHeader("Accept-Charset")).andReturn("windows-1251,utf-8;q=0.7,*;q=0.7").anyTimes(); EasyMock.expect(originalRequest.getHeader("Cache-Control")).andReturn(null).anyTimes(); EasyMock.expect(originalRequest.getHeader("Pragma")).andReturn(null).anyTimes(); - EasyMock.expect(httpClient.execute((HttpHost)EasyMock.anyObject(), (HttpRequest)EasyMock.anyObject(), (HttpContext)EasyMock.anyObject())).andReturn(httpResponse).anyTimes(); + EasyMock.expect( + httpClient.execute((HttpHost) EasyMock.anyObject(), (HttpRequest) EasyMock.anyObject(), + (HttpContext) EasyMock.anyObject())).andReturn(httpResponse).anyTimes(); EasyMock.expect(httpResponse.getStatusLine()).andReturn(statusLine).anyTimes(); EasyMock.expect(httpResponse.getEntity()).andReturn(entity).anyTimes(); @@ -79,7 +84,7 @@ } public HeaderElement[] getElements() throws ParseException { - return new HeaderElement[]{}; + return new HeaderElement[] {}; } }).anyTimes(); EasyMock.expect(entity.getContent()).andReturn(new ByteArrayInputStream(new byte[1024])); @@ -97,8 +102,7 @@ EasyMock.replay(httpClient, originalRequest, originalResponse, httpResponse, statusLine, header, entity); - - HttpResource httpResource = new HttpResource(httpClient, resourceContext, null); + HttpResource httpResource = new HttpResource(httpClient, resourceContext); assertEquals(HttpServletResponse.SC_MOVED_TEMPORARILY, httpResource.getStatusCode()); assertEquals(false, httpResource.hasResponseBody()); @@ -109,16 +113,14 @@ assertEquals(HttpServletResponse.SC_MOVED_TEMPORARILY, output.getStatusCode()); assertEquals("http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", output.getHeader("Location")); - - try{ - httpResource = new HttpResource(httpClient, resourceContext, null); + try { + httpResource = new HttpResource(httpClient, resourceContext); fail(); - }catch (IOException e) { + } catch (IOException e) { assertNotNull(e); assertTrue(e.getMessage().contains(driver.getBaseURL())); } - } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <leb...@us...> - 2011-03-24 13:44:38
|
Revision: 604 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=604&view=rev Author: lebedinskii Date: 2011-03-24 13:44:30 +0000 (Thu, 24 Mar 2011) Log Message: ----------- 43: Should be created own CacheStorage implementation (without external dependencies ) that will be used by default 1)With help of LinkedHashMap to implement LRU CacheStorage (http://fr.w3support.net/index.php?db=so&id=224868) 2)Move OSCache implementation to separate module (webassembletool-oscache) Modified Paths: -------------- trunk/pom.xml trunk/src/site/xdoc/cache.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java Added Paths: ----------- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/LRUMap.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/LRUMapTest.java trunk/webassembletool-oscache/ trunk/webassembletool-oscache/pom.xml trunk/webassembletool-oscache/src/ trunk/webassembletool-oscache/src/main/ trunk/webassembletool-oscache/src/main/java/ trunk/webassembletool-oscache/src/main/java/net/ trunk/webassembletool-oscache/src/main/java/net/webassembletool/ trunk/webassembletool-oscache/src/main/java/net/webassembletool/oscache/ trunk/webassembletool-oscache/src/main/java/net/webassembletool/oscache/OSCacheStorage.java trunk/webassembletool-oscache/src/main/resources/ trunk/webassembletool-oscache/src/main/resources/oscache.properties trunk/webassembletool-oscache/src/site/ trunk/webassembletool-oscache/src/site/site.xml trunk/webassembletool-oscache/src/site/xdoc/ trunk/webassembletool-oscache/src/site/xdoc/index.xml trunk/webassembletool-oscache/src/test/ trunk/webassembletool-oscache/src/test/java/ trunk/webassembletool-oscache/src/test/java/net/ trunk/webassembletool-oscache/src/test/java/net/webassembletool/ trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/ trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java trunk/webassembletool-oscache/src/test/resources/ Removed Paths: ------------- trunk/webassembletool-core/src/main/resources/oscache.properties Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/pom.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -298,6 +298,84 @@ </plugins> </pluginManagement> </build> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + </dependency> + <dependency> + <groupId>org.apache.httpcomponents</groupId> + <artifactId>httpclient</artifactId> + <version>4.1</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>opensymphony</groupId> + <artifactId>oscache</artifactId> + <version>2.4.1</version> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.8.2</version> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <version>3.0</version> + </dependency> + <dependency> + <groupId>org.eclipse.jetty</groupId> + <artifactId>jetty-server</artifactId> + <version>7.2.0.v20101020</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>2.0.1</version> + </dependency> + <dependency> + <groupId>nu.validator.htmlparser</groupId> + <artifactId>htmlparser</artifactId> + <version>1.2.1</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-mock</artifactId> + <version>2.0.8</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.springframework</groupId> + <artifactId>spring-core</artifactId> + <version>3.0.1.RELEASE</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.6</version> + <type>jar</type> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>jcl-over-slf4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-nop</artifactId> + <version>1.6.1</version> + </dependency> + </dependencies> + </dependencyManagement> <profiles> <profile> <id>release-sign-artifacts</id> @@ -329,6 +407,7 @@ <modules> <module>webassembletool-core</module> + <module>webassembletool-oscache</module> <module>webassembletool-taglib</module> <module>webassembletool-taglib-helper</module> <module>webassembletool-jsf</module> Modified: trunk/src/site/xdoc/cache.xml =================================================================== --- trunk/src/site/xdoc/cache.xml 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/src/site/xdoc/cache.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -10,12 +10,15 @@ <p> ESIGate includes a full <a href="http://www.w3.org/Protocols/rfc2616/rfc2616.html">RFC 2616</a> - compliant HTTP cache. The cache uses - <a href="http://www.opensymphony.com/oscache/">OsCache</a> - as a store. - The default cache settings defined in the + compliant HTTP cache. The cache uses in-memory LRUMap as a store. + Also it is possible to use + <a href="http://www.opensymphony.com/oscache/">OsCache</a>. + The OsCache as store can be enabled for a provider by setting the cacheStorageClassName + parameter to "net.webassembletool.oscache.OSCacheStorage" and adding webassembletool-oscache jar to the /WEB-INF/lib + directory of your application. + The default cache settings for OsCache defined in the oscache.properties file - included in the core jar can be overridden + included in the webassembletool-oscache jar can be overridden simply by creating a oscache.properties file in the /WEB-INF/classes directory of your Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/webassembletool-core/pom.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -15,13 +15,11 @@ <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> - <version>2.4</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> - <version>4.1</version> <type>jar</type> <scope>compile</scope> <exclusions> @@ -32,89 +30,59 @@ </exclusions> </dependency> <dependency> - <groupId>opensymphony</groupId> - <artifactId>oscache</artifactId> - <version>2.4.1</version> - <exclusions> - <exclusion> - <artifactId>jms</artifactId> - <groupId>javax.jms</groupId> - </exclusion> - <exclusion> - <artifactId>servlet-api</artifactId> - <groupId>javax.servlet</groupId> - </exclusion> - <exclusion> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> - <version>4.8.2</version> <scope>test</scope> </dependency> <dependency> <groupId>org.easymock</groupId> <artifactId>easymock</artifactId> - <version>3.0</version> <scope>test</scope> </dependency> <dependency> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-server</artifactId> - <version>7.2.0.v20101020</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> - <version>2.0.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>nu.validator.htmlparser</groupId> <artifactId>htmlparser</artifactId> - <version>1.2.1</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-mock</artifactId> - <version>2.0.8</version> <type>jar</type> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> - <version>3.0.1.RELEASE</version> <scope>test</scope> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> - <version>2.6</version> <type>jar</type> <scope>compile</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> - <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> - <version>1.6.1</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-nop</artifactId> - <version>1.6.1</version> <scope>test</scope> </dependency> </dependencies> Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-03-24 13:44:30 UTC (rev 604) @@ -90,7 +90,7 @@ .getProperty("cacheMaxFileSize")); } if (props.getProperty("cacheStorageClassName") != null) { - String cacheStorageClassName = props.getProperty("cacheStorageClass"); + String cacheStorageClassName = props.getProperty("cacheStorageClassName"); try { Class<? extends CacheStorage> cacheStorageClass = (Class<? extends CacheStorage>) this.getClass().getClassLoader().loadClass(cacheStorageClassName); if(cacheStorageClass != null) Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/DefaultCacheStorage.java 2011-03-24 13:44:30 UTC (rev 604) @@ -1,87 +1,137 @@ package net.webassembletool.cache; +import java.util.Collections; +import java.util.Comparator; +import java.util.Map; +import java.util.PriorityQueue; import java.util.Properties; -import org.apache.commons.lang.StringUtils; +public class DefaultCacheStorage implements CacheStorage { -import com.opensymphony.oscache.base.CacheEntry; -import com.opensymphony.oscache.base.EntryRefreshPolicy; -import com.opensymphony.oscache.base.NeedsRefreshException; -import com.opensymphony.oscache.general.GeneralCacheAdministrator; + private final Map<String, CacheEntry> cache = Collections + .synchronizedMap(new LRUMap<String, CacheEntry>()); + private final PriorityQueue<CacheEntry> ttlQueue = new PriorityQueue<DefaultCacheStorage.CacheEntry>( + 100, new CacheEntryComparator()); -public class DefaultCacheStorage implements CacheStorage{ - private final GeneralCacheAdministrator cache; + public void put(String key, Object value) { + removeExpiredEntries(); + cache.put(key, new CacheEntry(value)); + } - public DefaultCacheStorage() { - cache = new GeneralCacheAdministrator(); + public void put(String key, Object value, long ttl) { + removeExpiredEntries(); + CacheEntry cacheEntry = new CacheEntry(value, key, + System.currentTimeMillis() + ttl); + ttlQueue.add(cacheEntry); + cache.put(key, cacheEntry); } - public void put(String key, Object value) { - key = prepairKey(key); - cache.putInCache(key, value); + public Object get(String key) { + removeExpiredEntries(); + CacheEntry cacheEntry = cache.get(key); + return null != cacheEntry ? cacheEntry.getValue() : null; } - private String prepairKey(String key) { - // OsCache does not support empty String keys - if (StringUtils.isEmpty(key)) { - key = "/"; - } - return key; + public <T> T get(String key, Class<T> clazz) { + return clazz.cast(this.get(key)); } - public Object get(String key) { - key = prepairKey(key); - Object result = null; - try { - result = cache.getFromCache(key); - } catch (NeedsRefreshException e1) { - // If the cache is configured to be blocking, we have to do this to - // remove the lock. - cache.cancelUpdate(key); - } - return result; + public void touch(String key) { + this.get(key); } - public void put(String key, Object value, long ttl) { - key = prepairKey(key); - cache.putInCache(key, value, new StorageEntryRefreshPolicy(ttl)); - + public void init(Properties properties) { + } - public <T> T get(String key, Class<T> clazz) { - Object ret = get(key); - if(null == ret){ - return null; + private void removeExpiredEntries() { + if (ttlQueue.size() > 0) { + synchronized (cache) { + boolean needToProcess = true; + while (needToProcess) { + CacheEntry cacheEntry = ttlQueue.peek(); + if (cacheEntry != null + && cacheEntry.getTtl() < System.currentTimeMillis()) { + ttlQueue.remove(cacheEntry); + if (cache.containsValue(cacheEntry)) { + cache.remove(cacheEntry.getKey()); + } + } else { + needToProcess = false; + } + } + } + } - return clazz.cast(ret); } - public void touch(String key) { - key = prepairKey(key); - get(key); - } - - private static class StorageEntryRefreshPolicy implements EntryRefreshPolicy{ + private static class CacheEntry { + private final Object value; + private long ttl = -1; + private String key; - private static final long serialVersionUID = -4570614485500011699L; - long expireTime; + public CacheEntry(Object value, String key, long ttl) { - public StorageEntryRefreshPolicy(long ttl) { - super(); - this.expireTime = System.currentTimeMillis()+ ttl; + this.value = value; + this.key = key; + this.ttl = ttl; } - public boolean needsRefresh(CacheEntry arg0) { - if(expireTime <= System.currentTimeMillis()){ + public CacheEntry(Object value) { + this.value = value; + } + + public long getTtl() { + return ttl; + } + + public Object getValue() { + return value; + } + + public String getKey() { + return key; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) { return true; } - return false; + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + CacheEntry other = (CacheEntry) obj; + if (key == null) { + if (other.key != null) { + return false; + } + } else if (!key.equals(other.key)) { + return false; + } + if (ttl != other.ttl) { + return false; + } + if (value == null) { + if (other.value != null) { + return false; + } + } else if (!value.equals(other.value)) { + return false; + } + return true; } + } - public void init(Properties properties) { - + private static class CacheEntryComparator implements Comparator<CacheEntry> { + + public int compare(CacheEntry o1, CacheEntry o2) { + return (int) (o1.getTtl() - o2.getTtl()); + } } - } Added: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/LRUMap.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/LRUMap.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/LRUMap.java 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,24 @@ +package net.webassembletool.cache; + +import java.util.LinkedHashMap; + +public class LRUMap<K, V> extends LinkedHashMap<K, V>{ + private static final long serialVersionUID = 7760625028168125797L; + private int maximumSize = 0; + + + + public LRUMap(int maximumSize) { + super(maximumSize, 0.75f, true); + this.maximumSize = maximumSize; + } + + public LRUMap() { + this(1000); + } + + @Override + protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) { + return size() > maximumSize; + } +} Deleted: trunk/webassembletool-core/src/main/resources/oscache.properties =================================================================== --- trunk/webassembletool-core/src/main/resources/oscache.properties 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/webassembletool-core/src/main/resources/oscache.properties 2011-03-24 13:44:30 UTC (rev 604) @@ -1,5 +0,0 @@ -# Default cache configuration. -cache.memory=true -cache.capacity=1000 -cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache -cache.blocking=false \ No newline at end of file Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java 2011-03-24 13:15:35 UTC (rev 603) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java 2011-03-24 13:44:30 UTC (rev 604) @@ -40,6 +40,7 @@ assertNotNull(cache); String key = UUID.randomUUID().toString(); cache.put(key, "test", 300); + cache.put(key+"_bla-bla-bla", "test2", 30000); assertEquals("test", cache.get(key)); assertEquals("test", cache.get(key, String.class)); assertNull(cache.get(key+"_123")); Added: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/LRUMapTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/LRUMapTest.java (rev 0) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/LRUMapTest.java 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,46 @@ +package net.webassembletool.cache; + +import junit.framework.TestCase; + +public class LRUMapTest extends TestCase{ + public void testRemoveValueFromMap() { + LRUMap<String, String> cache = new LRUMap<String, String>(3); + cache.put("key1", "val1"); + cache.put("key2", "val2"); + cache.put("key3", "val3"); + cache.put("key4", "val4"); + assertEquals(3, cache.size()); + + assertFalse(cache.containsKey("key1")); + assertTrue(cache.containsKey("key2")); + assertTrue(cache.containsKey("key3")); + assertTrue(cache.containsKey("key4")); + + assertEquals(null, cache.get("key1")); + assertEquals("val2", cache.get("key2")); + assertEquals("val3", cache.get("key3")); + assertEquals("val4", cache.get("key4")); + } + + public void testRemoveLRUValueFromMap() { + LRUMap<String, String> cache = new LRUMap<String, String>(3); + cache.put("key1", "val1"); + cache.put("key2", "val2"); + cache.put("key3", "val3"); + assertNotNull(cache.get("key1")); + assertNotNull(cache.get("key2")); + assertTrue(cache.containsValue("val3")); + cache.put("key4", "val4"); + assertEquals(3, cache.size()); + + assertFalse("", cache.containsKey("key3")); + assertTrue(cache.containsKey("key1")); + assertTrue(cache.containsKey("key2")); + assertTrue(cache.containsKey("key4")); + + assertEquals(null, cache.get("key3")); + assertEquals("val1", cache.get("key1")); + assertEquals("val2", cache.get("key2")); + assertEquals("val4", cache.get("key4")); + } +} Added: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml (rev 0) +++ trunk/webassembletool-oscache/pom.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,75 @@ +<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> + <groupId>net.sourceforge.webassembletool</groupId> + <artifactId>webassembletool-oscache</artifactId> + <name>webassembletool-oscache</name> + <version>2.18-SNAPSHOT</version> + <parent> + <artifactId>webassembletool</artifactId> + <groupId>net.sourceforge.webassembletool</groupId> + <version>2.18-SNAPSHOT</version> + </parent> + <build> + </build> + <dependencies> + <dependency> + <groupId>opensymphony</groupId> + <artifactId>oscache</artifactId> + <exclusions> + <exclusion> + <artifactId>jms</artifactId> + <groupId>javax.jms</groupId> + </exclusion> + <exclusion> + <artifactId>servlet-api</artifactId> + <groupId>javax.servlet</groupId> + </exclusion> + <exclusion> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.easymock</groupId> + <artifactId>easymock</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>net.sourceforge.webassembletool</groupId> + <artifactId>webassembletool-core</artifactId> + <version>${project.version}</version> + <scope>provided</scope> + </dependency> + </dependencies> + <reporting> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>findbugs-maven-plugin</artifactId> + <version>2.3.1</version> + <configuration> + <locales>en</locales> + <threshold>Low</threshold> + <effort>Max</effort> + <debug>false</debug> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + <version>2.2</version> + </plugin> + </plugins> + </reporting> +</project> \ No newline at end of file Added: trunk/webassembletool-oscache/src/main/java/net/webassembletool/oscache/OSCacheStorage.java =================================================================== --- trunk/webassembletool-oscache/src/main/java/net/webassembletool/oscache/OSCacheStorage.java (rev 0) +++ trunk/webassembletool-oscache/src/main/java/net/webassembletool/oscache/OSCacheStorage.java 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,89 @@ +package net.webassembletool.oscache; + +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; + +import com.opensymphony.oscache.base.CacheEntry; +import com.opensymphony.oscache.base.EntryRefreshPolicy; +import com.opensymphony.oscache.base.NeedsRefreshException; +import com.opensymphony.oscache.general.GeneralCacheAdministrator; + +import net.webassembletool.cache.CacheStorage; + +public class OSCacheStorage implements CacheStorage { + private final GeneralCacheAdministrator cache; + + public OSCacheStorage() { + cache = new GeneralCacheAdministrator(); + + } + + public void put(String key, Object value) { + key = prepairKey(key); + cache.putInCache(key, value); + } + + private String prepairKey(String key) { + // OsCache does not support empty String keys + if (StringUtils.isEmpty(key)) { + key = "/"; + } + return key; + } + + public Object get(String key) { + key = prepairKey(key); + Object result = null; + try { + result = cache.getFromCache(key); + } catch (NeedsRefreshException e1) { + // If the cache is configured to be blocking, we have to do this to + // remove the lock. + cache.cancelUpdate(key); + } + return result; + } + + public void put(String key, Object value, long ttl) { + key = prepairKey(key); + cache.putInCache(key, value, new StorageEntryRefreshPolicy(ttl)); + + } + + public <T> T get(String key, Class<T> clazz) { + Object ret = get(key); + if(null == ret){ + return null; + } + return clazz.cast(ret); + } + + public void touch(String key) { + key = prepairKey(key); + get(key); + } + + private static class StorageEntryRefreshPolicy implements EntryRefreshPolicy{ + + private static final long serialVersionUID = -4570614485500011699L; + long expireTime; + + public StorageEntryRefreshPolicy(long ttl) { + super(); + this.expireTime = System.currentTimeMillis()+ ttl; + } + + public boolean needsRefresh(CacheEntry arg0) { + if(expireTime <= System.currentTimeMillis()){ + return true; + } + return false; + } + } + + public void init(Properties properties) { + + } + +} Added: trunk/webassembletool-oscache/src/main/resources/oscache.properties =================================================================== --- trunk/webassembletool-oscache/src/main/resources/oscache.properties (rev 0) +++ trunk/webassembletool-oscache/src/main/resources/oscache.properties 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,5 @@ +# Default cache configuration. +cache.memory=true +cache.capacity=1000 +cache.algorithm=com.opensymphony.oscache.base.algorithm.LRUCache +cache.blocking=false \ No newline at end of file Added: trunk/webassembletool-oscache/src/site/site.xml =================================================================== --- trunk/webassembletool-oscache/src/site/site.xml (rev 0) +++ trunk/webassembletool-oscache/src/site/site.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<project> + <body> + <menu ref="parent" /> + <menu ref="reports" /> + </body> +</project> \ No newline at end of file Added: trunk/webassembletool-oscache/src/site/xdoc/index.xml =================================================================== --- trunk/webassembletool-oscache/src/site/xdoc/index.xml (rev 0) +++ trunk/webassembletool-oscache/src/site/xdoc/index.xml 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<document> + <body> + <section name="About"> + <p> + This module contains the OSCache cache storage implementation. + </p> + </section> + </body> +</document> \ No newline at end of file Added: trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java =================================================================== --- trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java (rev 0) +++ trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java 2011-03-24 13:44:30 UTC (rev 604) @@ -0,0 +1,201 @@ +package net.webassembletool.cache; + +import java.util.HashMap; +import java.util.Map; +import java.util.Properties; +import java.util.UUID; +import java.util.Vector; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import junit.framework.TestCase; + +import org.easymock.EasyMock; +import org.easymock.IAnswer; + +import net.webassembletool.Driver; +import net.webassembletool.DriverConfiguration; +import net.webassembletool.HttpErrorPage; +import net.webassembletool.ResourceContext; +import net.webassembletool.cache.CacheEntry; +import net.webassembletool.cache.CacheStorage; +import net.webassembletool.cache.CachedResponse; +import net.webassembletool.oscache.OSCacheStorage; +import net.webassembletool.output.StringOutput; + +public class OSCacheStorageTest extends TestCase{ + + protected CacheStorage getCache() { + return new OSCacheStorage(); + } + + public void testPutGet(){ + CacheStorage cache = getCache(); + assertNotNull(cache); + String key = UUID.randomUUID().toString(); + cache.put(key, "test"); + assertEquals("test", cache.get(key)); + assertEquals("test", cache.get(key, String.class)); + assertNull(cache.get(key+"_123")); + assertNull(cache.get(key+"_123", String.class)); + } + + public void testPutWithTtl() throws Exception{ + CacheStorage cache = getCache(); + assertNotNull(cache); + String key = UUID.randomUUID().toString(); + cache.put(key, "test", 300); + assertEquals("test", cache.get(key)); + assertEquals("test", cache.get(key, String.class)); + assertNull(cache.get(key+"_123")); + assertNull(cache.get(key+"_123", String.class)); + Thread.sleep(350); + assertNull(cache.get(key)); + assertNull(cache.get(key)); + } + + public void testCachingCachedResponse() throws Exception{ + CacheStorage cache = getCache(); + + CachedResponse cachedResponse = new CachedResponse(); + String key = UUID.randomUUID().toString(); + cache.put(key, cachedResponse); + CachedResponse newCachedResponse = cache.get(key, CachedResponse.class); + + assertEquals(cachedResponse, newCachedResponse); + + byte[] byteArray = "test".getBytes("utf-8"); + Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("Date", "Wed, 02 Mar 2011 12:30:03 GMT"); + headers.put("Server", "Apache/2.2.12 (Ubuntu)"); + headers.put("Set-Cookie", "sdnsessionhash=5b55e10d5184470e607e0f0001781f77; path=/; HttpOnly"); + headers.put("Cache-Control", "private"); + headers.put("Pragma", "private"); + headers.put("x-ua-compatible", "IE=7"); + headers.put("Keep-Alive", "timeout=15, max=100"); + headers.put("Connection", "Keep-Alive"); + headers.put("Transfer-Encoding", "chunked"); + headers.put("Content-Type", "text/html; charset=windows-1251"); + + int statusCode = 200; + String statusMessage = "OK"; + + cachedResponse = new CachedResponse(byteArray, "utf-8", headers, statusCode, statusMessage); + key = UUID.randomUUID().toString(); + cache.put(key, cachedResponse); + newCachedResponse = cache.get(key, CachedResponse.class); + + assertEquals(cachedResponse, newCachedResponse); + } + + public void testCachingCacheEntry() throws Exception{ + CacheStorage cache = getCache(); + String url = "http://google.com"; + CacheEntry cacheEntry = new CacheEntry(url, cache); + String key = UUID.randomUUID().toString(); + + byte[] byteArray = "test".getBytes("utf-8"); + Map<String, Object> headers = new HashMap<String, Object>(); + headers.put("Date", "Wed, 02 Mar 2011 12:30:03 GMT"); + headers.put("Server", "Apache/2.2.12 (Ubuntu)"); + headers.put("Set-Cookie", "sdnsessionhash=5b55e10d5184470e607e0f0001781f77; path=/; HttpOnly"); + headers.put("Cache-Control", "private"); + headers.put("Pragma", "private"); + headers.put("x-ua-compatible", "IE=7"); + headers.put("Keep-Alive", "timeout=15, max=100"); + headers.put("Connection", "Keep-Alive"); + headers.put("Transfer-Encoding", "chunked"); + headers.put("Content-Type", "text/html; charset=windows-1251"); + + int statusCode = 200; + String statusMessage = "OK"; + + CachedResponse cachedResponse = new CachedResponse(byteArray, "utf-8", headers, statusCode, statusMessage); + + HttpServletRequest originalRequest = EasyMock.createMock(HttpServletRequest.class); + HttpServletResponse originalResponse = EasyMock.createMock(HttpServletResponse.class); + + final Map<String, String> requestHeaders = new HashMap<String, String>(); + requestHeaders.put("Host", "google.com"); + requestHeaders.put("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13"); + requestHeaders.put("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); + requestHeaders.put("Accept-Language", "ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3"); + requestHeaders.put("Accept-Encoding", "gzip,deflate"); + requestHeaders.put("Accept-Charset", "windows-1251,utf-8;q=0.7,*;q=0.7"); + requestHeaders.put("Keep-Alive", "115"); + requestHeaders.put("Connection", "keep-alive"); + requestHeaders.put("Cache-Control", "max-age=0"); + + EasyMock.expect(originalRequest.getHeaderNames()).andReturn(new Vector(requestHeaders.keySet()).elements()).anyTimes(); + EasyMock.expect(originalRequest.getHeader((String)EasyMock.anyObject())).andAnswer(new IAnswer<String>() { + + public String answer() throws Throwable { + return requestHeaders.get(EasyMock.getCurrentArguments()[0]); + } + }).anyTimes(); + EasyMock.expect(originalRequest.getMethod()).andReturn("GET").anyTimes(); + + EasyMock.replay(originalRequest, originalResponse); + + MockDriver mockDriver = new MockDriver("test"); + ResourceContext resourceContext = new ResourceContext(mockDriver, "/test", null, originalRequest, originalResponse); + + cacheEntry.put(resourceContext, cachedResponse); + cache.put(key, cacheEntry); + CacheEntry newCacheEntry = cache.get(key, CacheEntry.class); + assertEquals(cacheEntry, newCacheEntry); + assertEquals(cachedResponse, newCacheEntry.get(resourceContext)); + + } + + public void testConfigaurationWithOsCache(){ + Properties props = new Properties(); + props.setProperty("remoteUrlBase", "http://localhost:8080"); + props.setProperty("cacheRefreshDelay", "1"); + props.setProperty("cacheStorageClassName", OSCacheStorage.class.getName()+"_abra-cadabra"); + try{ + new DriverConfiguration("test2", props); + fail(); + }catch (Exception e) { + + } + + props.setProperty("cacheStorageClassName", OSCacheStorage.class.getName()); + assertEquals(OSCacheStorage.class, new DriverConfiguration("test2", props).getCacheStorageClass()); + } + + private static class MockDriver extends Driver { + private final HashMap<String, StringOutput> resources = new HashMap<String, StringOutput>(); + + public MockDriver(String name) { + this(name, new Properties()); + } + + public MockDriver(String name, Properties props) { + super(name, props); + } + + public void addResource(String relUrl, String content) { + StringOutput stringOutput = new StringOutput(); + stringOutput.setStatusCode(200); + stringOutput.setStatusMessage("OK"); + stringOutput.setCharsetName("ISO-8859-1"); + stringOutput.open(); + stringOutput.write(content); + resources.put(relUrl, stringOutput); + } + + @Override + protected StringOutput getResourceAsString(ResourceContext target) + throws HttpErrorPage { + StringOutput result = resources.get(target.getRelUrl()); + if (result == null) + throw new HttpErrorPage(404, "Not found", "The page: " + + target.getRelUrl() + " does not exist"); + return result; + } + + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sbe...@us...> - 2011-04-19 10:12:31
|
Revision: 611 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=611&view=rev Author: sbernatsky Date: 2011-04-19 10:12:22 +0000 (Tue, 19 Apr 2011) Log Message: ----------- http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=51 : add support for multiple header values Modified Paths: -------------- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/dir_testDirAndFile_-2075820840/file_3143036.headers trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/templateFromDisk...._-1358549384.headers trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile_-2075820840.headers trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile__74063495.headers trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testTemplateFromD..._-1053389445.headers trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileUtils.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/HeadersFile.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/Output.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/NullResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/Resource.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpClientResponseTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/output/OutputTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/util/Rfc2616Test.java Added Paths: ----------- trunk/webassembletool-app-aggregated1/src/main/webapp/multiple-headers.jsp trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/MultipleHeadersTest.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/file/ trunk/webassembletool-core/src/test/java/net/webassembletool/file/HeadersFileTest.java Added: trunk/webassembletool-app-aggregated1/src/main/webapp/multiple-headers.jsp =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/multiple-headers.jsp (rev 0) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/multiple-headers.jsp 2011-04-19 10:12:22 UTC (rev 611) @@ -0,0 +1,11 @@ +<%@ page contentType="text/html; charset=UTF-8" %> +<% +response.addHeader("header-name", "header-value-01"); +response.addHeader("header-name", "header-value-02"); +%> +<html> +<head> + <title>Sample with multiple headers with the same name</title> +</head> +<body>Finished.</body> +</html> Property changes on: trunk/webassembletool-app-aggregated1/src/main/webapp/multiple-headers.jsp ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-04-19 10:12:22 UTC (rev 611) @@ -154,8 +154,11 @@ WebResponse resp = webConversation.getResponse(req); assertEquals("Status should be " + HttpServletResponse.SC_MOVED_TEMPORARILY, HttpServletResponse.SC_MOVED_TEMPORARILY, resp.getResponseCode()); + String[] locations = resp.getHeaderFields("Location"); + assertNotNull(locations); + assertEquals("should be only one location: " + Arrays.asList(locations), 1, locations.length); assertEquals("Redirect header did not match", "http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", - resp.getHeaderField("Location")); + locations[0]); } public void testSpaceInUrl() throws Exception { Added: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/MultipleHeadersTest.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/MultipleHeadersTest.java (rev 0) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/MultipleHeadersTest.java 2011-04-19 10:12:22 UTC (rev 611) @@ -0,0 +1,40 @@ +package net.webassembletool.test.cases; + +import java.util.Arrays; + +import javax.servlet.http.HttpServletResponse; + +import junit.framework.TestCase; + +import com.meterware.httpunit.GetMethodWebRequest; +import com.meterware.httpunit.WebConversation; +import com.meterware.httpunit.WebRequest; +import com.meterware.httpunit.WebResponse; + +public class MultipleHeadersTest extends TestCase { + private final static String APPLICATION_PATH = "http://localhost:8080/webassembletool-app-aggregator/"; + private WebConversation webConversation; + + @Override + protected void setUp() { + webConversation = new WebConversation(); + webConversation.setExceptionsThrownOnErrorStatus(false); + } + + @Override + protected void tearDown() { + webConversation = null; + } + + public void testMultipleHeaders() throws Exception { + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "multiple-headers.jsp"); + WebResponse resp = webConversation.getResponse(req); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); + String[] actual = resp.getHeaderFields("header-name"); + assertNotNull("headers named 'header-name' should appear in response", actual); + assertEquals("there should be 2 headers", 2, actual.length); + Arrays.sort(actual); + assertEquals("unexpected header value", "header-value-01", actual[0]); + assertEquals("unexpected header value", "header-value-02", actual[1]); + } +} Property changes on: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/MultipleHeadersTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/dir_testDirAndFile_-2075820840/file_3143036.headers =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/dir_testDirAndFile_-2075820840/file_3143036.headers 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/dir_testDirAndFile_-2075820840/file_3143036.headers 2011-04-19 10:12:22 UTC (rev 611) @@ -1,5 +1,5 @@ #Headers -Date=Tue, 31 Aug 2010 09\:21\:23 GMT +Date=Tue, 31 Aug 2010 09:21:23 GMT 200=OK -Content-Type=text/html;charset\=ISO-8859-1 +Content-Type=text/html;charset=ISO-8859-1 Content-Length=443 Modified: trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/templateFromDisk...._-1358549384.headers =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/templateFromDisk...._-1358549384.headers 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/templateFromDisk...._-1358549384.headers 2011-04-19 10:12:22 UTC (rev 611) @@ -1,5 +1,5 @@ #Headers -Date=Tue, 31 Aug 2010 09\:21\:23 GMT +Date=Tue, 31 Aug 2010 09:21:23 GMT 200=OK -Content-Type=text/html;charset\=ISO-8859-1 +Content-Type=text/html;charset=ISO-8859-1 Content-Length=443 Modified: trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile_-2075820840.headers =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile_-2075820840.headers 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile_-2075820840.headers 2011-04-19 10:12:22 UTC (rev 611) @@ -1,5 +1,5 @@ #Headers -Date=Tue, 31 Aug 2010 09\:21\:23 GMT +Date=Tue, 31 Aug 2010 09:21:23 GMT 200=OK -Content-Type=text/html;charset\=ISO-8859-1 +Content-Type=text/html;charset=ISO-8859-1 Content-Length=443 Modified: trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile__74063495.headers =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile__74063495.headers 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testDirAndFile__74063495.headers 2011-04-19 10:12:22 UTC (rev 611) @@ -1,5 +1,5 @@ #Headers -Date=Tue, 31 Aug 2010 09\:21\:23 GMT +Date=Tue, 31 Aug 2010 09:21:23 GMT 200=OK -Content-Type=text/html;charset\=ISO-8859-1 +Content-Type=text/html;charset=ISO-8859-1 Content-Length=443 Modified: trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testTemplateFromD..._-1053389445.headers =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testTemplateFromD..._-1053389445.headers 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-app-aggregator/src/test/resources/cacheDir/testTemplateFromD..._-1053389445.headers 2011-04-19 10:12:22 UTC (rev 611) @@ -1,5 +1,5 @@ #Headers -Date=Tue, 31 Aug 2010 09\:21\:23 GMT +Date=Tue, 31 Aug 2010 09:21:23 GMT 200=OK Content-Type=text/html Content-Length=2500 Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-04-19 10:12:22 UTC (rev 611) @@ -10,10 +10,9 @@ import javax.servlet.http.HttpServletResponse; /** - * Represents the location of a requested resource with all the necessary - * parameters. When proxyMode is set to true, the resource should not be cached - * and any cookie or parameter coming from the original request should be - * forwarded to the target server. + * Represents the location of a requested resource with all the necessary parameters. When proxyMode is set to true, the + * resource should not be cached and any cookie or parameter coming from the original request should be forwarded to the + * target server. * * @author Francois-Xavier Bonnet */ @@ -48,8 +47,7 @@ this.proxy = proxyMode; } - public ResourceContext(Driver driver, String relUrl, - Map<String, String> parameters, HttpServletRequest originalRequest, + public ResourceContext(Driver driver, String relUrl, Map<String, String> parameters, HttpServletRequest originalRequest, HttpServletResponse originalResponse) { this.driver = driver; this.relUrl = relUrl; @@ -62,17 +60,6 @@ this.originalResponse = originalResponse; } - @Override - public ResourceContext clone() { - ResourceContext ret = new ResourceContext(driver, relUrl, parameters, - originalRequest, originalResponse); - ret.setPreserveHost(preserveHost); - ret.setProxy(proxy); - ret.setNeededForTransformation(neededForTransformation); - ret.setValidators(validators); - return ret; - } - public String getRelUrl() { return relUrl; } Added: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java 2011-04-19 10:12:22 UTC (rev 611) @@ -0,0 +1,84 @@ +package net.webassembletool.cache; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import net.webassembletool.resource.Resource; + +/** + * Base class for cached resources implementations. + * + * @author Stanislav Bernatsky + */ +abstract class BaseCachedResource extends Resource implements Serializable { + private static final long serialVersionUID = 1771883783632694287L; + protected final Map<String, List<String>> headers; + protected final int statusCode; + protected final String statusMessage; + + protected BaseCachedResource(Map<String, List<String>> headers, int statusCode, String statusMessage) { + this.headers = headers; + this.statusCode = statusCode; + this.statusMessage = statusMessage; + } + + @Override + public String getStatusMessage() { + return statusMessage; + } + + @Override + public int getStatusCode() { + return statusCode; + } + + @Override + public Collection<String> getHeaderNames() { + return headers.keySet(); + } + + @Override + public String getHeader(String key) { + String result = null; + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (key.equalsIgnoreCase(entry.getKey()) && !entry.getValue().isEmpty()) { + result = entry.getValue().get(0); + break; + } + } + return result; + } + + @Override + public Collection<String> getHeaders(String name) { + Collection<String> result = new HashSet<String>(); + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (name.equalsIgnoreCase(entry.getKey())) { + result.addAll(entry.getValue()); + break; + } + } + return result; + } + + public void addHeader(String name, String value) { + List<String> values = null; + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (name.equalsIgnoreCase(entry.getKey())) { + values = entry.getValue(); + break; + } + } + if (values == null) { + values = new ArrayList<String>(); + headers.put(name, values); + } + values.add(value); + } + +} Property changes on: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java ___________________________________________________________________ Added: svn:mime-type + text/plain Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-04-19 10:12:22 UTC (rev 611) @@ -1,6 +1,7 @@ package net.webassembletool.cache; import java.io.Serializable; +import java.util.Collection; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -40,15 +41,13 @@ private long lastClean = -1; /** - * A list a all responses for this ResourceContext. Only includes - * informations which can be used to decide if a cached response matches to - * a new resource context. On matching, the complete cache value need to be - * retrieved from cached. + * A list a all responses for this ResourceContext. Only includes informations which can be used to decide if a + * cached response matches to a new resource context. On matching, the complete cache value need to be retrieved + * from cached. * * <p> - * Responses described in responseSummaries may have been removed from - * cache. In that case, the retrieve operation fails and the summary is - * removed from this entry. + * Responses described in responseSummaries may have been removed from cache. In that case, the retrieve operation + * fails and the summary is removed from this entry. * */ private final List<CachedResponseSummary> responseSummaries = new CopyOnWriteArrayList<CachedResponseSummary>(); @@ -64,13 +63,11 @@ } /** - * Returns the first matching cache entry for this request, this entry may - * be valid or stale but Etag must match If-None-Match header from the - * request and vary headers must be the same in the request and in the - * original request that caused this entry to get cached. + * Returns the first matching cache entry for this request, this entry may be valid or stale but Etag must match + * If-None-Match header from the request and vary headers must be the same in the request and in the original + * request that caused this entry to get cached. * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content may have - * been updated thus need to be persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content may have been updated thus need to be persisted. * * @param resourceContext * @return the first matching cache entry for this request @@ -106,23 +103,20 @@ /** * - * Returns a cached response from cache. If the response is no longer in - * cache, any reference in CacheEntry is cleaned and entry is marked dirty. + * Returns a cached response from cache. If the response is no longer in cache, any reference in CacheEntry is + * cleaned and entry is marked dirty. * * @param summary * Summary of cached response * @return CachedResponse or null if no longer in cache. */ - private CachedResponse getCacheResponseAndClean( - CachedResponseSummary summary) { - CachedResponse cachedResponse = (CachedResponse) storage.get(summary - .getCacheKey()); + private CachedResponse getCacheResponseAndClean(CachedResponseSummary summary) { + CachedResponse cachedResponse = (CachedResponse) storage.get(summary.getCacheKey()); // Handle case when resource is no longer in cache. if (cachedResponse == null) { if (LOG.isDebugEnabled()) { - LOG.debug("Resource " + summary.getCacheKey() - + "is no longer in cache. Removing"); + LOG.debug("Resource " + summary.getCacheKey() + "is no longer in cache. Removing"); } if (responseSummaries.contains(summary)) { responseSummaries.remove(summary); @@ -134,8 +128,8 @@ } /** - * Return the first existing CacheResponse. If responses have been removed - * from cache, entry is updated and marked dirty. + * Return the first existing CacheResponse. If responses have been removed from cache, entry is updated and marked + * dirty. * * * @return CachedResponse or null @@ -152,16 +146,14 @@ } /** - * Computes http entity tags in the incoming request with the ones in all - * the cached response in order to make a conditional request to the server - * with headers "If-Modified-Since" and "If-None-Match" + * Computes http entity tags in the incoming request with the ones in all the cached response in order to make a + * conditional request to the server with headers "If-Modified-Since" and "If-None-Match" * * @param resourceContext * The resource we want to get * @param cachedResponse * The current stale version of the resource - * @return The headers "If-Modified-Since" and "If-None-Match" to add to the - * request + * @return The headers "If-Modified-Since" and "If-None-Match" to add to the request */ public Map<String, String> getValidators(ResourceContext resourceContext, Resource cachedResponse) { HashMap<String, String> result = new HashMap<String, String>(); @@ -169,8 +161,7 @@ if (ifNoneMatch != null) { result.put(HttpHeaders.IF_NONE_MATCH, ifNoneMatch); } - String ifModifiedSince = getIfModifiedSince(resourceContext, - cachedResponse); + String ifModifiedSince = getIfModifiedSince(resourceContext, cachedResponse); if (ifModifiedSince != null) { result.put(HttpHeaders.IF_MODIFIED_SINCE, ifModifiedSince); } @@ -179,10 +170,8 @@ private String getIfNoneMatch(ResourceContext resourceContext) { Set<String> etags = new HashSet<String>(); - if (resourceContext.isProxy() - && !resourceContext.isNeededForTransformation()) { - String ifNoneMatch = resourceContext.getOriginalRequest() - .getHeader(HttpHeaders.IF_NONE_MATCH); + if (resourceContext.isProxy() && !resourceContext.isNeededForTransformation()) { + String ifNoneMatch = resourceContext.getOriginalRequest().getHeader(HttpHeaders.IF_NONE_MATCH); if (ifNoneMatch != null) { Matcher matcher = ETAG_PATTERN.matcher(ifNoneMatch); while (!matcher.hitEnd()) { @@ -214,35 +203,27 @@ } private String getIfModifiedSince(ResourceContext resourceContext, Resource cachedResponse) { - String requestedIfModifiedSinceString = resourceContext - .getOriginalRequest().getHeader(HttpHeaders.IF_MODIFIED_SINCE); - Date requestedIfModifiedSinceDate = Rfc2616.getDateHeader( - resourceContext, HttpHeaders.IF_MODIFIED_SINCE); + String requestedIfModifiedSinceString = resourceContext.getOriginalRequest().getHeader(HttpHeaders.IF_MODIFIED_SINCE); + Date requestedIfModifiedSinceDate = Rfc2616.getDateHeader(resourceContext, HttpHeaders.IF_MODIFIED_SINCE); String cacheLastModifiedString = null; Date cacheLastModifiedDate = null; if (cachedResponse != null && cachedResponse.hasResponseBody()) { - cacheLastModifiedString = cachedResponse - .getHeader(HttpHeaders.LAST_MODIFIED); - cacheLastModifiedDate = Rfc2616.getDateHeader(cachedResponse, - HttpHeaders.LAST_MODIFIED); + cacheLastModifiedString = cachedResponse.getHeader(HttpHeaders.LAST_MODIFIED); + cacheLastModifiedDate = Rfc2616.getDateHeader(cachedResponse, HttpHeaders.LAST_MODIFIED); } - if (resourceContext.isNeededForTransformation() - || requestedIfModifiedSinceDate == null - || (cacheLastModifiedDate != null && cacheLastModifiedDate - .after(requestedIfModifiedSinceDate))) { + if (resourceContext.isNeededForTransformation() || requestedIfModifiedSinceDate == null + || (cacheLastModifiedDate != null && cacheLastModifiedDate.after(requestedIfModifiedSinceDate))) { return cacheLastModifiedString; } return requestedIfModifiedSinceString; } /** - * Selects the response to the request between a cache entry (if return code - * is 304) and the resource sent by the server (if return code is 200). - * Updates the cache. + * Selects the response to the request between a cache entry (if return code is 304) and the resource sent by the + * server (if return code is 200). Updates the cache. * * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content may have - * been updated thus need to be persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content may have been updated thus need to be persisted. * * @param resourceContext * @param cachedResponse @@ -263,13 +244,11 @@ // No e-tag specified by the server // The not modified response is for the if-modified-since we // sent - String sentIfModifiedSince = getIfModifiedSince( - resourceContext, cachedResponse); + String sentIfModifiedSince = getIfModifiedSince(resourceContext, cachedResponse); if (sentIfModifiedSince != null) { if (!resourceContext.isNeededForTransformation() - && sentIfModifiedSince.equals(resourceContext - .getOriginalRequest().getHeader( - HttpHeaders.IF_MODIFIED_SINCE))) { + && sentIfModifiedSince.equals(resourceContext.getOriginalRequest().getHeader( + HttpHeaders.IF_MODIFIED_SINCE))) { result = newResource; } else { result = cachedResponse; @@ -285,8 +264,7 @@ } } } else { - if (!resourceContext.isNeededForTransformation() - && Rfc2616.etagMatches(resourceContext, newResource)) { + if (!resourceContext.isNeededForTransformation() && Rfc2616.etagMatches(resourceContext, newResource)) { result = newResource; } else { result = findByEtag(etag); @@ -296,12 +274,10 @@ updateHeaders(cachedResponse, newResource); } if (result == null) { - LOG.warn("Invalid 304 response, neededForTransformation: " - + resourceContext.isNeededForTransformation() + LOG.warn("Invalid 304 response, neededForTransformation: " + resourceContext.isNeededForTransformation() + " etag: " + etag); - throw new HttpErrorPage( - HttpServletResponse.SC_PRECONDITION_FAILED, - "Invalid 304 response", "Invalid 304 response"); + throw new HttpErrorPage(HttpServletResponse.SC_PRECONDITION_FAILED, "Invalid 304 response", + "Invalid 304 response"); } } else { result = newResource; @@ -318,7 +294,7 @@ LOG.debug("findByEtag(" + etag + ")"); for (CachedResponseSummary summary : responseSummaries) { - if (etag.equals(summary.getHeader("Etag"))) { + if (etag.equals(Rfc2616.getEtag(summary))) { // seems the right resource. Try to get it from cache CachedResponse cachedResponse = getCacheResponseAndClean(summary); if (cachedResponse != null) { @@ -332,9 +308,9 @@ } private void copyHeader(Resource source, CachedResponse dest, String name) { - String value = source.getHeader(name); - if (value != null) { - dest.setHeader(name, value); + Collection<String> values = source.getHeaders(name); + for (String value : values) { + dest.addHeader(name, value); } } @@ -352,19 +328,17 @@ /** * Add a response to the cache. * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content will - * probably be updated thus need to be persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content will probably be updated thus need to be + * persisted. * * @param resourceContext - * must be the resourceContext used to get resource. Not the one - * of this cache entry. + * must be the resourceContext used to get resource. Not the one of this cache entry. * @param resource * the new response. */ public void put(ResourceContext resourceContext, CachedResponse resource) { // Don't put in cache null or not modified responses - if (resource != null - && resource.getStatusCode() != HttpServletResponse.SC_NOT_MODIFIED) { + if (resource != null && resource.getStatusCode() != HttpServletResponse.SC_NOT_MODIFIED) { // Inject headers from the original request. resource.setRequestHeadersFromRequest(resourceContext.getOriginalRequest()); @@ -399,43 +373,46 @@ } } } - - @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + (int) (lastClean ^ (lastClean >>> 32)); - result = prime - * result - + ((responseSummaries == null) ? 0 : responseSummaries - .hashCode()); + result = prime * result + ((responseSummaries == null) ? 0 : responseSummaries.hashCode()); result = prime * result + ((url == null) ? 0 : url.hashCode()); return result; } @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } CacheEntry other = (CacheEntry) obj; - if (lastClean != other.lastClean) + if (lastClean != other.lastClean) { return false; + } if (responseSummaries == null) { - if (other.responseSummaries != null) + if (other.responseSummaries != null) { return false; - } else if (!responseSummaries.equals(other.responseSummaries)) + } + } else if (!responseSummaries.equals(other.responseSummaries)) { return false; + } if (url == null) { - if (other.url != null) + if (other.url != null) { return false; - } else if (!url.equals(other.url)) + } + } else if (!url.equals(other.url)) { return false; + } return true; } @@ -466,11 +443,9 @@ Map<String, String> vary = Rfc2616.getVary(resourceContext, resource); if (vary != null) { cacheKey.append(" vary={"); - for (Iterator<Entry<String, String>> iterator = vary.entrySet() - .iterator(); iterator.hasNext();) { + for (Iterator<Entry<String, String>> iterator = vary.entrySet().iterator(); iterator.hasNext();) { Entry<String, String> header = iterator.next(); - cacheKey.append(header.getKey()).append("=") - .append(header.getValue()).append(";"); + cacheKey.append(header.getKey()).append("=").append(header.getValue()).append(";"); } cacheKey.append("}"); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-04-19 10:12:22 UTC (rev 611) @@ -1,45 +1,38 @@ package net.webassembletool.cache; import java.io.IOException; -import java.io.Serializable; import java.util.Arrays; -import java.util.Collection; import java.util.Date; import java.util.Enumeration; import java.util.HashMap; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import javax.servlet.http.HttpServletRequest; import net.webassembletool.output.Output; -import net.webassembletool.resource.Resource; import net.webassembletool.util.Rfc2616; /** - * Resource implementation that keeps the contents inside a byte array. A - * MemoryResource can be reused and kept in cache. + * Resource implementation that keeps the contents inside a byte array. A MemoryResource can be reused and kept in + * cache. * * @author Francois-Xavier Bonnet * */ -public class CachedResponse extends Resource implements Serializable{ +public class CachedResponse extends BaseCachedResource { private static final long serialVersionUID = 8125407854908774093L; private final byte[] byteArray; - private final Map<String, Object> headers; private final String charset; - private final int statusCode; - private final String statusMessage; private final Date localDate = new Date(); private Map<String, String> requestHeaders; - public CachedResponse(byte[] byteArray, String charset, Map<String, Object> headers, - int statusCode, String statusMessage) { + public CachedResponse(byte[] byteArray, String charset, Map<String, List<String>> headers, int statusCode, + String statusMessage) { + super(headers, statusCode, statusMessage); this.byteArray = byteArray; - this.headers = headers; this.charset = charset; - this.statusCode = statusCode; - this.statusMessage = statusMessage; } @Override @@ -52,12 +45,10 @@ } public CachedResponse() { - // Used to crate an empty resource + // Used to create an empty resource + super(null, 0, null); this.byteArray = null; - this.headers = null; this.charset = null; - this.statusCode = 0; - this.statusMessage = null; this.requestHeaders = null; } @@ -71,10 +62,10 @@ output.setStatus(statusCode, statusMessage); try { output.setCharsetName(charset); - for (Entry<String, Object> entry : headers.entrySet()) { - String key = entry.getKey(); - String value = entry.getValue().toString(); - output.addHeader(key, value); + for (Entry<String, List<String>> entry : headers.entrySet()) { + for (String value : entry.getValue()) { + output.addHeader(entry.getKey(), value); + } } output.open(); output.getOutputStream().write(byteArray, 0, byteArray.length); @@ -83,47 +74,16 @@ } } - public String getStatusMessage() { - return statusMessage; - } - @Override - public int getStatusCode() { - return statusCode; - } - - @Override - public Collection<String> getHeaderNames() { - return headers.keySet(); - } - - @Override - public final String getHeader(String key) { - for (Entry<String, Object> entry : headers.entrySet()) { - if (key.equalsIgnoreCase(entry.getKey())) { - return entry.getValue().toString(); - } - } - return null; - } - - public void setHeader(String name, String value) { - headers.put(name, value); - } - - @Override public Date getLocalDate() { return localDate; } @Override public String toString() { - return statusCode + " " + statusMessage + " age=" - + Rfc2616.getAge(this) + " stale=" + Rfc2616.isStale(this) + return statusCode + " " + statusMessage + " age=" + Rfc2616.getAge(this) + " stale=" + Rfc2616.isStale(this) + " hasBody=" + hasResponseBody(); } - - @Override public int hashCode() { @@ -132,54 +92,66 @@ result = prime * result + Arrays.hashCode(byteArray); result = prime * result + ((charset == null) ? 0 : charset.hashCode()); result = prime * result + ((headers == null) ? 0 : headers.hashCode()); - result = prime * result - + ((localDate == null) ? 0 : localDate.hashCode()); - result = prime * result - + ((requestHeaders == null) ? 0 : requestHeaders.hashCode()); + result = prime * result + ((localDate == null) ? 0 : localDate.hashCode()); + result = prime * result + ((requestHeaders == null) ? 0 : requestHeaders.hashCode()); result = prime * result + statusCode; - result = prime * result - + ((statusMessage == null) ? 0 : statusMessage.hashCode()); + result = prime * result + ((statusMessage == null) ? 0 : statusMessage.hashCode()); return result; } @Override public boolean equals(Object obj) { - if (this == obj) + if (this == obj) { return true; - if (obj == null) + } + if (obj == null) { return false; - if (getClass() != obj.getClass()) + } + if (getClass() != obj.getClass()) { return false; + } CachedResponse other = (CachedResponse) obj; - if (!Arrays.equals(byteArray, other.byteArray)) + if (!Arrays.equals(byteArray, other.byteArray)) { return false; + } if (charset == null) { - if (other.charset != null) + if (other.charset != null) { return false; - } else if (!charset.equals(other.charset)) + } + } else if (!charset.equals(other.charset)) { return false; + } if (headers == null) { - if (other.headers != null) + if (other.headers != null) { return false; - } else if (!headers.equals(other.headers)) + } + } else if (!headers.equals(other.headers)) { return false; + } if (localDate == null) { - if (other.localDate != null) + if (other.localDate != null) { return false; - } else if (!localDate.equals(other.localDate)) + } + } else if (!localDate.equals(other.localDate)) { return false; + } if (requestHeaders == null) { - if (other.requestHeaders != null) + if (other.requestHeaders != null) { return false; - } else if (!requestHeaders.equals(other.requestHeaders)) + } + } else if (!requestHeaders.equals(other.requestHeaders)) { return false; - if (statusCode != other.statusCode) + } + if (statusCode != other.statusCode) { return false; + } if (statusMessage == null) { - if (other.statusMessage != null) + if (other.statusMessage != null) { return false; - } else if (!statusMessage.equals(other.statusMessage)) + } + } else if (!statusMessage.equals(other.statusMessage)) { return false; + } return true; } @@ -214,8 +186,7 @@ } /** - * Set headers which were used to get this resource from the original - * HttpServletRequest. + * Set headers which were used to get this resource from the original HttpServletRequest. * <p> * Headers can then be retrieved from HttpServletRequest#getRequestHeaders() * @@ -240,16 +211,9 @@ } public CachedResponseSummary getSummary() { - CachedResponseSummary s = new CachedResponseSummary(); - + CachedResponseSummary s = new CachedResponseSummary(new HashMap<String, List<String>>(headers), statusCode, statusMessage); s.setResponseBody(this.hasResponseBody()); - s.setStatusCode(statusCode); s.setLocalDate(localDate); - - // Copy Response headers - Map<String, Object> headers2 = new HashMap<String, Object>(headers); - s.setHeaders(headers2); - // Copy Request headers Map<String, String> requestHeaders2 = new HashMap<String, String>(); if (requestHeaders != null) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-04-19 10:12:22 UTC (rev 611) @@ -1,31 +1,31 @@ package net.webassembletool.cache; import java.io.IOException; -import java.io.Serializable; -import java.util.Collection; import java.util.Date; +import java.util.List; import java.util.Map; import java.util.Map.Entry; import net.webassembletool.output.Output; -import net.webassembletool.resource.Resource; /** - * A summary of a response, which does not include body content. Can be used to - * check the validity of a resource before actually getting it. + * A summary of a response, which does not include body content. Can be used to check the validity of a resource before + * actually getting it. * * @author Nicolas Richeton * */ -public class CachedResponseSummary extends Resource implements Serializable { - private Map<String, Object> headers; - private int statusCode; +public class CachedResponseSummary extends BaseCachedResource { + private static final long serialVersionUID = 5229420665779140066L; private Map<String, String> requestHeaders; private boolean responseBody; private String cacheKey; private Date localDate; - private String statusMessage; + public CachedResponseSummary(Map<String, List<String>> headers, int statusCode, String statusMessage) { + super(headers, statusCode, statusMessage); + } + @Override public boolean equals(Object obj) { if (obj instanceof CachedResponseSummary && cacheKey != null) { @@ -52,22 +52,11 @@ this.cacheKey = cacheKey; } - public CachedResponseSummary() { - } - @Override public boolean hasResponseBody() { return responseBody; } - public void setHeaders(Map<String, Object> headers) { - this.headers = headers; - } - - public void setStatusCode(int statusCode) { - this.statusCode = statusCode; - } - public void setRequestHeaders(Map<String, String> requestHeaders) { this.requestHeaders = requestHeaders; } @@ -86,26 +75,6 @@ throw new IOException("CachedResponseSummary cannot be rendered"); } - @Override - public int getStatusCode() { - return statusCode; - } - - @Override - public Collection<String> getHeaderNames() { - return headers.keySet(); - } - - @Override - public final String getHeader(String key) { - for (Entry<String, Object> entry : headers.entrySet()) { - if (key.equalsIgnoreCase(entry.getKey().toString())) { - return entry.getValue().toString(); - } - } - return null; - } - /** * {@inheritDoc} * @@ -127,12 +96,4 @@ return cacheKey; } - @Override - public String getStatusMessage() { - return statusMessage; - } - - public void setStatusMessage(String statusMessage) { - this.statusMessage = statusMessage; - } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java 2011-04-19 10:12:22 UTC (rev 611) @@ -6,6 +6,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.Collection; +import java.util.List; import java.util.Map.Entry; import net.webassembletool.output.Output; @@ -41,8 +42,11 @@ @Override public void render(Output output) throws IOException { output.setStatus(headersFile.getStatusCode(), headersFile.getStatusMessage()); - for (Entry<String, Object> header : headersFile.getHeadersMap().entrySet()) { - output.addHeader(header.getKey(), header.getValue().toString()); + for (Entry<String, List<String>> header : headersFile.getHeadersMap().entrySet()) { + List<String> values = header.getValue(); + for (String value : values) { + output.addHeader(header.getKey(), value); + } } if (file != null) { @@ -76,11 +80,15 @@ if (StringUtils.isEmpty(name)) { return null; } - Object value = headersFile.getHeader(name); - return value != null ? value.toString() : null; + return headersFile.getHeader(name); } @Override + public Collection<String> getHeaders(String name) { + return headersFile.getHeaders(name); + } + + @Override public String getStatusMessage() { return headersFile.getStatusMessage(); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileUtils.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileUtils.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileUtils.java 2011-04-19 10:12:22 UTC (rev 611) @@ -4,10 +4,13 @@ import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; -import java.io.InputStream; -import java.io.OutputStream; +import java.io.InputStreamReader; +import java.io.LineNumberReader; +import java.io.OutputStreamWriter; +import java.io.PrintWriter; +import java.util.Date; +import java.util.List; import java.util.Map.Entry; -import java.util.Properties; import org.apache.commons.lang.StringUtils; @@ -21,15 +24,21 @@ } public static HeadersFile loadHeaders(File src) throws IOException { - InputStream in = new FileInputStream(src); + LineNumberReader in = new LineNumberReader(new InputStreamReader(new FileInputStream(src), "UTF-8")); try { - Properties prop = new Properties(); - prop.load(in); + HeadersFile result = new HeadersFile(); - HeadersFile result = new HeadersFile(); - for (Entry<Object, Object> header : prop.entrySet()) { - String key = header.getKey().toString(); - String value = header.getValue().toString(); + String line = null; + while ((line = in.readLine()) != null) { + if (line.startsWith("#")) { + continue; + } + int idx = line.indexOf('='); + if (idx == -1) { + continue; + } + String key = line.substring(0, idx).trim(); + String value = line.substring(idx + 1); if (StringUtils.isNumeric(key)) { result.setStatusCode(Integer.parseInt(key)); result.setStatusMessage(value); @@ -44,16 +53,17 @@ } } - public static void storeHeaders(File dest, HeadersFile headers) - throws IOException { - OutputStream out = new FileOutputStream(dest); + public static void storeHeaders(File dest, HeadersFile headers) throws IOException { + PrintWriter out = new PrintWriter(new OutputStreamWriter(new FileOutputStream(dest), "UTF-8")); try { - Properties prop = new Properties(); - for (Entry<String, Object> entry : headers.getHeadersMap().entrySet()) { - prop.setProperty(entry.getKey(), entry.getValue().toString()); + out.println("#Headers"); + out.println("#" + new Date().toString()); + for (Entry<String, List<String>> entry : headers.getHeadersMap().entrySet()) { + for (String value : entry.getValue()) { + out.println(entry.getKey() + "=" + value); + } } - prop.setProperty(Integer.toString(headers.getStatusCode()), headers.getStatusMessage()); - prop.store(out, "Headers"); + out.println(Integer.toString(headers.getStatusCode()) + "=" + headers.getStatusMessage()); } finally { out.close(); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/file/HeadersFile.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/file/HeadersFile.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/file/HeadersFile.java 2011-04-19 10:12:22 UTC (rev 611) @@ -1,38 +1,73 @@ package net.webassembletool.file; +import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; +import java.util.HashSet; +import java.util.List; import java.util.Map; +import java.util.Map.Entry; class HeadersFile { - private final Map<String, Object> headersMap; + private final Map<String, List<String>> headers; private int statusCode; private String statusMessage; public HeadersFile() { this(0, null); } + public HeadersFile(int statusCode, String statusMessage) { - this(new HashMap<String, Object>(), statusCode, statusMessage); + this(new HashMap<String, List<String>>(), statusCode, statusMessage); } - public HeadersFile(Map<String, Object> headersMap, int statusCode, String statusMessage) { - this.headersMap = headersMap; + public HeadersFile(Map<String, List<String>> headers, int statusCode, String statusMessage) { + this.headers = headers; this.statusCode = statusCode; this.statusMessage = statusMessage; } - public void addHeader(String key, Object value) { - headersMap.put(key.toLowerCase(), value); + public void addHeader(String name, String value) { + List<String> values = null; + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (name.equalsIgnoreCase(entry.getKey())) { + values = entry.getValue(); + break; + } + } + if (values == null) { + values = new ArrayList<String>(); + headers.put(name, values); + } + values.add(value); } - public Object getHeader(String key) { - return headersMap.get(key.toLowerCase()); + public String getHeader(String key) { + String result = null; + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (key.equalsIgnoreCase(entry.getKey()) && !entry.getValue().isEmpty()) { + result = entry.getValue().get(0); + break; + } + } + return result; } - public Map<String, Object> getHeadersMap() { - return headersMap; + public Collection<String> getHeaders(String key) { + Collection<String> result = new HashSet<String>(); + for (Entry<String, List<String>> entry : headers.entrySet()) { + if (key.equalsIgnoreCase(entry.getKey())) { + result.addAll(entry.getValue()); + break; + } + } + return result; } + public Map<String, List<String>> getHeadersMap() { + return headers; + } + public int getStatusCode() { return statusCode; } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/CachedHttpResourceFactory.java 2011-04-19 10:12:22 UTC (rev 611) @@ -27,14 +27,12 @@ import org.slf4j.LoggerFactory; public class CachedHttpResourceFactory implements ResourceFactory { - private static final Logger log = LoggerFactory - .getLogger(CachedHttpResourceFactory.class); - private ResourceFactory httpResourceFactory; - private DriverConfiguration config; + private static final Logger log = LoggerFactory.getLogger(CachedHttpResourceFactory.class); + private final ResourceFactory httpResourceFactory; + private final DriverConfiguration config; private final Cache cache; - public CachedHttpResourceFactory(ResourceFactory httpResourceFactory, - DriverConfiguration config) { + public CachedHttpResourceFactory(ResourceFactory httpResourceFactory, DriverConfiguration config) { super(); this.httpResourceFactory = httpResourceFactory; this.config = config; @@ -49,28 +47,25 @@ } public Resource getResource(ResourceContext resourceContext) throws HttpErrorPage { - String httpUrl = ResourceUtils - .getHttpUrlWithQueryString(resourceContext); - - ResourceProxyWithContext ret = new ResourceProxyWithContext(); + String httpUrl = ResourceUtils.getHttpUrlWithQueryString(resourceContext); + + ResourceProxyWithContext ret = new ResourceProxyWithContext(); ret.setResourceContext(resourceContext); ret.setCache(cache); ret.setHttpUrl(httpUrl); - + try { tryLoadFromCache(ret); - if(!ret.isReady()){ + if (!ret.isReady()) { tryLoadFromHttp(ret); } - if(!ret.isReady()) - { + if (!ret.isReady()) { tryLoadFromExpiredCache(ret); } - if(!ret.isReady()) - { + if (!ret.isReady()) { tryLoadFromFileSystem(ret); } - if(!ret.isReady()){ + if (!ret.isReady()) { loadWithError(ret); } return ret; @@ -81,11 +76,11 @@ // must discard the entry inside the cache or the file system // because it is not complete ret.setMemoryOutput(null); - + if (ret.getFileOutput() != null) { ret.getFileOutput().delete(); } - throw new ResponseException(httpUrl + " could not be retrieved", t); + throw new ResponseException(httpUrl + " could not be retrieved", t); } } @@ -110,10 +105,8 @@ private void tryLoadFromFileSystem(ResourceProxyWithContext ret) throws IOException { // Resource could not be loaded neither from HTTP, nor from the // cache, let's try from the file system - if (config.getLocalBase() != null - && Rfc2616.isCacheable(ret.getResourceContext())) { - ret.setFileResource(ResourceUtils.createFileResource( - config.getLocalBase(), ret.getResourceContext())); + if (config.getLocalBase() != null && Rfc2616.isCacheable(ret.getResourceContext())) { + ret.setFileResource(ResourceUtils.createFileResource(config.getLocalBase(), ret.getResourceContext())); if (!ret.getFileResource().isError()) { // on reinitialise l'output pour ne pas ecraser le fichier // stocke sur le disque @@ -138,14 +131,11 @@ // Try to load it from HTTP if (config.getBaseURL() != null) { // Prepare a FileOutput to store the result on the file system - if (config.isPutInCache() - && Rfc2616.isCacheable(ret.getResourceContext())) { - ret.setFileOutput( ResourceUtils.createFileOutput( - config.getLocalBase(), ret.getResourceContext())); + if (config.isPutInCache() && Rfc2616.isCacheable(ret.getResourceContext())) { + ret.setFileOutput(ResourceUtils.createFileOutput(config.getLocalBase(), ret.getResourceContext())); } - Map<String, String> validators = cache.getValidators( - ret.getResourceContext(), ret.getCachedResource()); + Map<String, String> validators = cache.getValidators(ret.getResourceContext(), ret.getCachedResource()); // ResourceContext resourceContext = ret.getResourceContext().clone(); ResourceContext resourceContext = ret.getResourceContext(); Map<String, String> originalValidators = resourceContext.getValidators(); @@ -155,8 +145,7 @@ } finally { resourceContext.setValidators(originalValidators); } - ret.setHttpResource(cache.select(ret.getResourceContext(), ret.getCachedResource(), - ret.getHttpResource())); + ret.setHttpResource(cache.select(ret.getResourceContext(), ret.getCachedResource(), ret.getHttpResource())); // If there is an error, we will try to reuse an old cache entry if (!ret.getHttpResource().isError()) { @@ -169,30 +158,27 @@ private void tryLoadFromCache(ResourceProxyWithContext ret) { if (Rfc2616.isCacheable(ret.getResourceContext())) { // Try to load the resource from cache - + ret.setCachedResource(cache.get(ret.getResourceContext())); boolean needsValidation = true; if (ret.getCachedResource() != null) { needsValidation = false; if (config.getCacheRefreshDelay() <= 0) { // Auto http cache - if (Rfc2616.needsValidation(ret.getResourceContext(), - ret.getCachedResource())) { + if (Rfc2616.needsValidation(ret.getResourceContext(), ret.getCachedResource())) { needsValidation = true; } } else { // Forced expiration delay if (Rfc2616.requiresRefresh(ret.getResourceContext()) - || Rfc2616.getAge(ret.getCachedResource()) > config - .getCacheRefreshDelay() * 1000L) { + || Rfc2616.getAge(ret.getCachedResource()) > config.getCacheRefreshDelay() * 1000L) { needsValidation = true; } } } if (log.isDebugEnabled()) { String message = "Needs validation=" + needsValidation; - message += " cacheRefreshDelay=" - + config.getCacheRefreshDelay(); + message += " cacheRefreshDelay=" + config.getCacheRefreshDelay(); if (ret.getCachedResource() != null) { message += " cachedResource=" + ret.getCachedResource(); } @@ -225,107 +211,83 @@ private Cache cache = null; private String httpUrl = null; private boolean ready = false; - public String getHttpUrl() { return httpUrl; } - - public void setHttpUrl(String httpUrl) { this.httpUrl = httpUrl; } - - public boolean isReady() { return ready; } - - public void setReady(boolean ready) { this.ready = ready; } - - public CachedResponse getCachedResource() { return cachedResource; } - - public void setProxyResource(Resource resource) { this.resource = resource; } - - public void setCachedResource(CachedResponse cachedResource) { this.cachedResource = cachedResource; } - public Resource getHttpResource() { return httpResource; } - public void setHttpResource(Resource httpResource) { this.httpResource = httpResource; } - public FileResource getFileResource() { return fileResource; } - public void setFileResource(FileResource fileResource) { this.fileResource = fileResource; } - public void setMemoryOutput(CacheOutput memoryOutput) { this.memoryOutput = memoryOutput; } - public FileOutput getFileOutput() { return fileOutput; } - public void setFileOutput(FileOutput fileOutput) { this.fileOutput = fileOutput; } - public ResourceContext getResourceContext() { return resourceContext; } - public void setResourceContext(ResourceContext resourceContext) { this.resourceContext = resourceContext; } - public void setCache(Cache cache) { this.cache = cache; } - @Override public void render(Output output) throws IOException { MultipleOutput multipleOutput = new MultipleOutput(); multipleOutput.addOutput(output); - if(null != this.memoryOutput){ + if (null != this.memoryOutput) { multipleOutput.addOutput(this.memoryOutput); } - if(null != this.fileOutput){ + if (null != this.fileOutput) { multipleOutput.addOutput(this.fileOutput); } resource.render(multipleOutput); @@ -360,38 +322,51 @@ } @Override + public Collection<String> getHeaders(String name) { + return resource.getHeaders(name); + } + + @Override public Collection<String> getHeaderNames() { return resource.getHeaderNames(); } + @Override public boolean isError() { return resource.isError(); } + @Override public int hashCode() { return resource.hashCode(); } + @Override public String getRequestHeader(String name) { return resource.getRequestHeader(name); } + @Override public boolean hasResponseBody() { return resource.hasResponseBody(); } + @Override public Date getLocalDate() { return resource.getLocalDate(); } + @Override public boolean equals(Object obj) { return resource.equals(obj); } + @Override public String toString() { return resource.toString(); } + @Override public String getStatusMessage() { return resource.getStatusMessage(); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-04-18 14:04:37 UTC (rev 610) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-04-19 10:12:22 UTC (rev 611) @@ -45,8 +45,7 @@ * */ public class HttpClientResponse { - private final static Logger LOG = LoggerFactory - .getLogger(HttpClientResponse.class); + private final static Logger LOG = LoggerFactory.getLogger(HttpClientResponse.class); private final HttpResponse httpResponse; private final HttpEntity httpEntity; private final int statusCode; @@ -54,18 +53,16 @@ private final String currentLocation; private final boolean error; - public static HttpClientResponse create(HttpHost httpHost, - HttpRequest basicHttpRequest, HttpClient httpClient, + public static HttpClientResponse create(HttpHost httpHost, HttpRequest basicHttpRequest, HttpClient httpClient, HttpContext httpContext) { try { - HttpResponse httpResponse = httpClient.execute(httpHost, - basicHttpRequest, httpContext); + LOG.debug(" -> create: " + basicHttpRequest.toString()); + HttpResponse httpResponse = httpClient.execute(httpHost, basicHttpRequest, httpContext); + LOG.debug(" -> create: " + httpResponse.toString()); int statusCode = httpResponse.getStatusLine().getStatusCode(); String currentLocation; - if (statusCode == HttpServletResponse.SC_MOVED_PERMANENTLY - || statusCode == HttpServletResponse.SC_MOVED_TEMPORARILY) { - currentLocation = httpResponse.getFirstHeader( - HttpHeaders.LOCATION).getValue(); + if (statusCode == HttpServletResponse.SC_MOVED_PERMANENTLY || statusCode == HttpServletResponse.SC_MOVED_TEMPORARILY) { + currentLocation = httpResponse.getFirstHeader(HttpHeaders.LOCATION).getValue(); } else { // Calculating the URL we may have been redirected to, as // automatic redirect following is activated @@ -74,36 +71,26 @@ LOG.debug(" -> create: " + statusCode + ";" + currentLocation); return new HttpClientResponse(httpResponse, currentLocation); } catch (HttpHostConnectException e) { - return new HttpClientResponse(HttpServletResponse.SC_BAD_GATEWAY, - "Connection refused"); + return new HttpClientResponse(HttpServletResponse.SC_BAD_GATEWAY, "Connection refused"); } catch (ConnectionPoolTimeoutException e) { - return new HttpClientResponse( - HttpServletResponse.SC_GATEWAY_TIMEOUT, - "Connection pool timeout"); + return new HttpClientResponse(HttpServletResponse.SC_GATEWAY_TIMEOUT, "Connection pool timeout"); } catch (ConnectTimeoutException e) { - return new HttpClientResponse( - HttpServletResponse.SC_GATEWAY_TIMEOUT, "Connect timeout"); + return new HttpClientResponse(HttpServletResponse.SC_GATEWAY_TIMEOUT, "Connect timeout"); } catch (SocketTimeoutException e) { - return new HttpClientResponse( - HttpServletResponse.SC_GATEWAY_TIMEOUT, "Socket timeout"); + return new HttpClientResponse(HttpServletResponse.SC_GATEWAY_TIMEOUT, "Socket timeout"); } catch (IOException e) { - return new HttpClientResponse( - HttpServletResponse.SC_INTERNAL_SERVER_ERROR, - "Error retrieving URL"); + return new HttpClientResponse(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Error retrieving URL"); } } static String buildLocation(HttpContext context) { StringBuffer buf = new StringBuffer(); - HttpHost host = (HttpHost) contex... [truncated message content] |
From: <ced...@us...> - 2011-04-26 18:27:48
|
Revision: 618 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=618&view=rev Author: cedric_brandes Date: 2011-04-26 18:27:41 +0000 (Tue, 26 Apr 2011) Log Message: ----------- Added example page and test for cookie filtering Modified Paths: -------------- trunk/webassembletool-app-aggregated1/src/main/webapp/index.html trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java Added Paths: ----------- trunk/webassembletool-app-aggregated1/src/main/webapp/cookies.jsp trunk/webassembletool-app-aggregated2/src/main/webapp/block-cookie.jsp trunk/webassembletool-app-aggregator/src/test/resources/cookies-firstcall.html trunk/webassembletool-app-aggregator/src/test/resources/cookies.html Added: trunk/webassembletool-app-aggregated1/src/main/webapp/cookies.jsp =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/cookies.jsp (rev 0) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/cookies.jsp 2011-04-26 18:27:41 UTC (rev 618) @@ -0,0 +1,55 @@ +<%@page import="java.util.Enumeration"%> +<%@page contentType="text/html; charset=UTF-8"%> +<% + response.addCookie(new Cookie("test0", "value0")); +%> +<% + response.addCookie(new Cookie("test1", "value1")); +%> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title>Cookies example</title> +</head> +<body style="background-color: yellow"> + <h1>Cookie test example</h1> + + Cookies for aggregated1 : + <% + Enumeration cookies = request.getHeaders("Cookie"); + boolean hasCookies = false; + int nbHeaders = 0; + if (cookies.hasMoreElements()) { + hasCookies = true; + %><ul> + <% + } + while (cookies.hasMoreElements()) { + %><li><%=cookies.nextElement().toString()%></li> + <% + nbHeaders++; + } + if (hasCookies) { + %> + </ul> + <% + } + %> + Number of Cookie headers : + <%=nbHeaders%> + <hr /> + + <!--$includeblock$aggregated2$block-cookie.jsp$myblock$--> + <!--$endincludeblock$--> + <hr /> + Total 4 cookies : + <ul> + <li>test0 and test1 are passed to aggregated1</li> + <li>test1, test2 and testjs are passed to aggregated2</li> + <li>test0 and test1 are set by aggregated1</li> + <li>test1 and test2 are set by aggregated2 (note that test1 has the last value set in the headers)</li> + <li>testjs is set by the navigator</li> + <li>Each application has its own JSESSIONID, which differ from aggregator</li> + </ul> +</body> \ No newline at end of file Modified: trunk/webassembletool-app-aggregated1/src/main/webapp/index.html =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/webapp/index.html 2011-04-26 18:26:13 UTC (rev 617) +++ trunk/webassembletool-app-aggregated1/src/main/webapp/index.html 2011-04-26 18:27:41 UTC (rev 618) @@ -22,7 +22,8 @@ <li><a href="template-mixed-encodings.jsp">Mixed encodings test</a></li> <li><a href="page-gzip.jsp">Page gzip</a></li> <li><a href="binary-gzip.jsp">Binary download gzip</a></li> - <li><a href="nestedinclude.html">Nested include</a></li> + <li><a href="nestedinclude.html">Nested include</a></li> + <li><a href="cookies.jsp">Cookies</a></li> </ul> </body> </html> \ No newline at end of file Added: trunk/webassembletool-app-aggregated2/src/main/webapp/block-cookie.jsp =================================================================== --- trunk/webassembletool-app-aggregated2/src/main/webapp/block-cookie.jsp (rev 0) +++ trunk/webassembletool-app-aggregated2/src/main/webapp/block-cookie.jsp 2011-04-26 18:27:41 UTC (rev 618) @@ -0,0 +1,56 @@ +<%@page import="java.util.Enumeration"%> +<%@page contentType="text/html; charset=UTF-8"%> +<% + response.addCookie(new Cookie("test1", "value11")); +%> +<% + response.addCookie(new Cookie("test2", "value2")); +%> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<title>Page containing blocks</title> +</head> +<body style="background-color: aqua"> + <div>Begin page</div> + <div style="border: 1px solid red"> + + <!--$beginblock$myblock$--> + <div style="background-color: aqua"> + + Cookies for aggregated2 : <br /> + <% + Enumeration cookies = request.getHeaders("Cookie"); + boolean hasCookies = false; + int nbHeaders = 0; + if (cookies.hasMoreElements()) { + hasCookies = true; + %><ul> + <% + } + while (cookies.hasMoreElements()) { + %><li><%=cookies.nextElement().toString()%></li> + <% + nbHeaders++; + } + if (hasCookies) { + %> + </ul> + <% + } + %> + Number of Cookie headers : + <%=nbHeaders%> + </div> + + <script type="text/javascript"> + <!-- + // Javascript-set cookie + document.cookie = "testjs=testJs;Path=/"; + //--> + </script> + <!--$endblock$myblock$--> + </div> +</body> +</html> \ No newline at end of file Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-26 18:26:13 UTC (rev 617) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-26 18:27:41 UTC (rev 618) @@ -1,4 +1,5 @@ -<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"> +<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> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> @@ -32,19 +33,25 @@ <type>jar</type> <scope>test</scope> </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-log4j12</artifactId> - <version>1.6.1</version> - <scope>runtime</scope> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.16</version> - <scope>runtime</scope> - </dependency> <dependency> + <groupId>rhino</groupId> + <artifactId>js</artifactId> + <version>1.7R2</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.6.1</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.16</version> + <scope>runtime</scope> + </dependency> + <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <version>${project.version}</version> Modified: trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties =================================================================== --- trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties 2011-04-26 18:26:13 UTC (rev 617) +++ trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties 2011-04-26 18:27:41 UTC (rev 618) @@ -6,7 +6,7 @@ # Required for Vary testing. filter=net.webassembletool.filter.CookieForwardingFilter cookieStore=net.webassembletool.cookie.FilteringCookieStore -forwardCookies=test-cookie +forwardCookies=test-cookie,test0,test1 discardCookies=test-cookie localBase=${basedir}/target/test-classes/cacheDir/ @@ -15,6 +15,9 @@ aggregated2.remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated2/ aggregated2.useCache=false aggregated2.timeout=5000 +aggregated2.filter=net.webassembletool.filter.CookieForwardingFilter +aggregated2.cookieStore=net.webassembletool.cookie.SerializableBasicCookieStore +aggregated2.forwardCookies=test1,test2,testjs nocacheaggregated1.remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated1/ nocacheaggregated1.uriEncoding=UTF-8 Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-04-26 18:26:13 UTC (rev 617) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/AggregatorTest.java 2011-04-26 18:27:41 UTC (rev 618) @@ -27,21 +27,38 @@ private final static String RESOURCES_PATH = "/"; private WebConversation webConversation; + private void doCookieSimpleTest(String page, String resultResource) + throws Exception { + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + page); + WebResponse resp = webConversation.getResponse(req); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, + resp.getResponseCode()); + assertEquals(getResource(resultResource).replaceAll("\r", "") + .replaceAll("\n", "").replaceAll("\t", "").replaceAll(" ", "") + .replaceAll("JSESSIONID=[^;]+;", ""), resp.getText() + .replaceAll("\r", "").replaceAll("\n", "").replaceAll("\t", "") + .replaceAll(" ", "").replaceAll("JSESSIONID=[^;]+;", "")); + } + private void doSimpleTest(String page) throws Exception { // We assume the file name is the name of the resource doSimpleTest(page, page); } - private void doSimpleTest(String page, String resultResource) throws Exception { + private void doSimpleTest(String page, String resultResource) + throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + page); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); - assertEquals(getResource(resultResource).replaceAll("\r", "").replaceAll("\n", ""), - resp.getText().replaceAll("\r", "").replaceAll("\n", "")); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, + resp.getResponseCode()); + assertEquals(getResource(resultResource).replaceAll("\r", "") + .replaceAll("\n", ""), resp.getText().replaceAll("\r", "") + .replaceAll("\n", "")); } private String getResource(String file) throws IOException { - InputStream inputStream = this.getClass().getResourceAsStream(RESOURCES_PATH + file); + InputStream inputStream = this.getClass().getResourceAsStream( + RESOURCES_PATH + file); String result = IOUtils.toString(inputStream, "UTF-8"); inputStream.close(); return result; @@ -59,7 +76,8 @@ } public void testBarInUrlParam() throws Exception { - doSimpleTest("resource%20with%20spaces.html?bar=foo%7Cfoo%26bar", "resource_with_spaces.html"); + doSimpleTest("resource%20with%20spaces.html?bar=foo%7Cfoo%26bar", + "resource_with_spaces.html"); } public void testBinaryGzip() throws Exception { @@ -84,10 +102,13 @@ } public void testChunkedEncoding() throws Exception { - WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "ChunkedEncodingServlet"); + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + + "ChunkedEncodingServlet"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); - assertEquals("Response body did not match", "Bonjour Monde !", resp.getText()); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, + resp.getResponseCode()); + assertEquals("Response body did not match", "Bonjour Monde !", + resp.getText()); } public void testCircularRedirect() throws Exception { @@ -95,6 +116,11 @@ doSimpleTest("blockwithredirect.jsp?count=10", "blockwithredirect.jsp"); } + public void testCookies() throws Exception { + doCookieSimpleTest("cookies.jsp", "cookies-firstcall.html"); + doCookieSimpleTest("cookies.jsp", "cookies.html"); + } + public void testESIInclude() throws Exception { doSimpleTest("esi-include.html"); } @@ -104,7 +130,8 @@ } public void testGetUnsafeCharacter() throws Exception { - doSimpleTest("get.jsp?myField={}|\\^~[]`&send=Post+this+form", "getUnsafeCharacter.jsp"); + doSimpleTest("get.jsp?myField={}|\\^~[]`&send=Post+this+form", + "getUnsafeCharacter.jsp"); } public void testMixedEncodings() throws Exception { @@ -112,8 +139,8 @@ } /** - * Test for a nested include : aggregated1 includes a block from aggregated2 and the block from aggregated2 includes - * a block from aggregated1 + * Test for a nested include : aggregated1 includes a block from aggregated2 + * and the block from aggregated2 includes a block from aggregated1 * * @throws Exception */ @@ -127,49 +154,65 @@ public void testPost() throws Exception { // Post request with a e-acute urlencoded using UTF-8 charset - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post.jsp", new ByteArrayInputStream( - "myField=%C3%A9".getBytes("UTF-8")), "application/x-www-form-urlencoded"); + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + + "post.jsp", new ByteArrayInputStream( + "myField=%C3%A9".getBytes("UTF-8")), + "application/x-www-form-urlencoded"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be 200", HttpServletResponse.SC_OK, resp.getResponseCode()); + assertEquals("Status should be 200", HttpServletResponse.SC_OK, + resp.getResponseCode()); assertEquals(getResource("post.jsp"), resp.getText()); } public void testRawPost() throws Exception { - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post_raw.jsp", new ByteArrayInputStream( + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + + "post_raw.jsp", new ByteArrayInputStream( "Hello smile!".getBytes("UTF-8")), "raw/post-data"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Response body did not match", "Posted body data : Hello smile!", resp.getText()); + assertEquals("Response body did not match", + "Posted body data : Hello smile!", resp.getText()); } public void testRawPostWithQueryString() throws Exception { - PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + "post_raw.jsp?param=smile", - new ByteArrayInputStream("Hello !".getBytes("UTF-8")), "raw/post-data"); + PostMethodWebRequest req = new PostMethodWebRequest(APPLICATION_PATH + + "post_raw.jsp?param=smile", new ByteArrayInputStream( + "Hello !".getBytes("UTF-8")), "raw/post-data"); WebResponse resp = webConversation.getResponse(req); - assertEquals("Response body did not match", "Posted body data : Hello !smile", resp.getText()); + assertEquals("Response body did not match", + "Posted body data : Hello !smile", resp.getText()); } public void testRedirect() throws Exception { - WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "redirect.jsp"); + WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + + "redirect.jsp"); webConversation.getClientProperties().setAutoRedirect(false); WebResponse resp = webConversation.getResponse(req); - assertEquals("Status should be " + HttpServletResponse.SC_MOVED_TEMPORARILY, HttpServletResponse.SC_MOVED_TEMPORARILY, + assertEquals("Status should be " + + HttpServletResponse.SC_MOVED_TEMPORARILY, + HttpServletResponse.SC_MOVED_TEMPORARILY, resp.getResponseCode()); String[] locations = resp.getHeaderFields("Location"); assertNotNull(locations); - assertEquals("should be only one location: " + Arrays.asList(locations), 1, locations.length); - assertEquals("Redirect header did not match", "http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", + assertEquals( + "should be only one location: " + Arrays.asList(locations), 1, + locations.length); + assertEquals( + "Redirect header did not match", + "http://localhost:8080/webassembletool-app-aggregator/redirected.jsp", locations[0]); } public void testSpaceInUrl() throws Exception { - doSimpleTest("resource%20with%20spaces.html", "resource_with_spaces.html"); + doSimpleTest("resource%20with%20spaces.html", + "resource_with_spaces.html"); } public void testSpecial404Error() throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "whatever"); WebResponse resp = webConversation.getResponse(req); // Should get a 404 error, not a 200 ! - assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, resp.getResponseCode()); + assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, + resp.getResponseCode()); } public void testSpecialCharactersInUrl() throws Exception { @@ -177,7 +220,8 @@ WebResponse resp = webConversation.getResponse(req); // Should get a 404 error but if the character is decoded to "[", it // will generate an invalid URL and a 500 error - assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, resp.getResponseCode()); + assertEquals("Status should be 404", HttpServletResponse.SC_NOT_FOUND, + resp.getResponseCode()); } public void testTemplate() throws Exception { @@ -190,7 +234,8 @@ } public void testTemplateFromDiskMixedEncoding() throws Exception { - doSimpleTest("testTemplateFromDiskMixedEncoding", "testTemplateFromDiskMixedEncoding.html"); + doSimpleTest("testTemplateFromDiskMixedEncoding", + "testTemplateFromDiskMixedEncoding.html"); } // Test la récupération depuis le cache disque @@ -202,8 +247,9 @@ public void testTemplateWithParams() throws Exception { /* - * Ensure aggregator "template" params are not forwarded to the backend template like it is the case for - * master/provider since these params are processed aggregator-side. + * Ensure aggregator "template" params are not forwarded to the backend + * template like it is the case for master/provider since these params + * are processed aggregator-side. */ doSimpleTest("templatewithparams.html"); } @@ -219,12 +265,14 @@ public void testZipDownload() throws Exception { WebRequest req = new GetMethodWebRequest(APPLICATION_PATH + "test.zip"); WebResponse resp = webConversation.getResponse(req); - InputStream inputStream = this.getClass().getResourceAsStream(RESOURCES_PATH + "test.zip"); + InputStream inputStream = this.getClass().getResourceAsStream( + RESOURCES_PATH + "test.zip"); byte[] expected = IOUtils.toByteArray(inputStream); inputStream.close(); byte[] result = IOUtils.toByteArray(resp.getInputStream()); inputStream.close(); - assertTrue("Response body did not match", Arrays.equals(expected, result)); + assertTrue("Response body did not match", + Arrays.equals(expected, result)); } } Added: trunk/webassembletool-app-aggregator/src/test/resources/cookies-firstcall.html =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cookies-firstcall.html (rev 0) +++ trunk/webassembletool-app-aggregator/src/test/resources/cookies-firstcall.html 2011-04-26 18:27:41 UTC (rev 618) @@ -0,0 +1,43 @@ + + + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title>Cookies example</title> +</head> +<body style="background-color: yellow"> + <h1>Cookie test example</h1> + + Cookies for aggregated1 : Number of Cookie headers : 0 + <hr /> + + + <div style="background-color: aqua"> + + Cookies for aggregated2 : <br /> Number of Cookie headers : 0 + </div> + + <script type="text/javascript"> + <!-- + // Javascript-set cookie + document.cookie = "testjs=testJs;Path=/"; + //--> + </script> + + <hr /> + Total 4 cookies : + <ul> + + <li>test0 and test1 are passed to aggregated1</li> + <li>test1, test2 and testjs are passed to aggregated2</li> + <li>test0 and test1 are set by aggregated1</li> + <li>test1 and test2 are set by aggregated2 (note that test1 has + the last value set in the headers)</li> + <li>testjs is set by the navigator</li> + <li>Each application has its own JSESSIONID, which differ from + aggregator</li> + + </ul> +</body> \ No newline at end of file Added: trunk/webassembletool-app-aggregator/src/test/resources/cookies.html =================================================================== --- trunk/webassembletool-app-aggregator/src/test/resources/cookies.html (rev 0) +++ trunk/webassembletool-app-aggregator/src/test/resources/cookies.html 2011-04-26 18:27:41 UTC (rev 618) @@ -0,0 +1,59 @@ + + + +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<title>Cookies example</title> +</head> +<body style="background-color: yellow"> + <h1>Cookie test example</h1> + + Cookies for aggregated1 : + <ul> + + <li>JSESSIONID=C456B8DD7F53E2499AD7D5A5EF035835; test0=value0; + test1=value11</li> + + </ul> + + Number of Cookie headers : 1 + <hr /> + + + <div style="background-color: aqua"> + + Cookies for aggregated2 : <br /> + <ul> + + <li>JSESSIONID=02271123926D47D2054E2B9F6994A6D7; test1=value11; + test2=value2; testjs=testJs</li> + + </ul> + + Number of Cookie headers : 1 + </div> + + <script type="text/javascript"> + <!-- + // Javascript-set cookie + document.cookie = "testjs=testJs;Path=/"; + //--> + </script> + + <hr /> + Total 4 cookies : + <ul> + + <li>test0 and test1 are passed to aggregated1</li> + <li>test1, test2 and testjs are passed to aggregated2</li> + <li>test0 and test1 are set by aggregated1</li> + <li>test1 and test2 are set by aggregated2 (note that test1 has + the last value set in the headers)</li> + <li>testjs is set by the navigator</li> + <li>Each application has its own JSESSIONID, which differ from + aggregator</li> + + </ul> +</body> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ced...@us...> - 2011-04-27 13:32:02
|
Revision: 620 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=620&view=rev Author: cedric_brandes Date: 2011-04-27 13:31:55 +0000 (Wed, 27 Apr 2011) Log Message: ----------- [maven-release-plugin] prepare release webassembletool-2.18 Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> @@ -139,9 +139,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</connection> - <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</developerConnection> - <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/trunk/</url> + <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</connection> + <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</developerConnection> + <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/tags/webassembletool-2.18</url> </scm> <build> <plugins> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -1,15 +1,14 @@ -<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"> +<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> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-master/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-cas/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-core/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-distribution/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-jsf/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-maven/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <modules> <module>webassembletool-staticassembly-plugin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-archetype</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>maven-archetype</packaging> <name>webassembletool-staticassembly-archetype</name> <description>Archetype that generate a staticassembly enabled project</description> @@ -10,7 +10,7 @@ <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <developers> <developer> Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -1,16 +1,15 @@ <?xml version="1.0"?> -<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/xsd/maven-4.0.0.xsd"> +<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-plugin</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>maven-plugin</packaging> <name>webassembletool-staticassembly-plugin</name> <parent> <artifactId>webassembletool-maven</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <description>Staticassembly Maven plugin Generate a set of HTML pages with reusable components found in modules folder.</description> <inceptionYear>2010</inceptionYear> @@ -18,7 +17,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>org.slf4j</groupId> Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-oscache/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-taglib/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-04-27 13:28:30 UTC (rev 619) +++ trunk/webassembletool-wicket/pom.xml 2011-04-27 13:31:55 UTC (rev 620) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ced...@us...> - 2011-04-27 13:32:48
|
Revision: 622 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=622&view=rev Author: cedric_brandes Date: 2011-04-27 13:32:41 +0000 (Wed, 27 Apr 2011) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> @@ -139,9 +139,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</connection> - <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</developerConnection> - <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/tags/webassembletool-2.18</url> + <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</connection> + <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</developerConnection> + <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/trunk/</url> </scm> <build> <plugins> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-master/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-cas/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-core/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-distribution/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-jsf/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-maven/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <modules> <module>webassembletool-staticassembly-plugin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-archetype</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>maven-archetype</packaging> <name>webassembletool-staticassembly-archetype</name> <description>Archetype that generate a staticassembly enabled project</description> @@ -10,7 +10,7 @@ <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <developers> <developer> Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,13 +3,13 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-plugin</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>webassembletool-staticassembly-plugin</name> <parent> <artifactId>webassembletool-maven</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <description>Staticassembly Maven plugin Generate a set of HTML pages with reusable components found in modules folder.</description> <inceptionYear>2010</inceptionYear> @@ -17,7 +17,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>org.slf4j</groupId> Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-oscache/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-taglib/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-04-27 13:32:12 UTC (rev 621) +++ trunk/webassembletool-wicket/pom.xml 2011-04-27 13:32:41 UTC (rev 622) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ced...@us...> - 2011-04-27 13:57:15
|
Revision: 623 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=623&view=rev Author: cedric_brandes Date: 2011-04-27 13:57:08 +0000 (Wed, 27 Apr 2011) Log Message: ----------- [maven-release-plugin] rollback the release of webassembletool-2.18 Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -1,14 +1,15 @@ -<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"> +<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> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-cas/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-facelet/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-master/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-app-provider/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-cas/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-core/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-distribution/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-jsf/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-maven/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <modules> <module>webassembletool-staticassembly-plugin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-archetype</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <packaging>maven-archetype</packaging> <name>webassembletool-staticassembly-archetype</name> <description>Archetype that generate a staticassembly enabled project</description> @@ -10,7 +10,7 @@ <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <developers> <developer> Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -1,15 +1,16 @@ <?xml version="1.0"?> -<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/xsd/maven-4.0.0.xsd"> +<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-plugin</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>webassembletool-staticassembly-plugin</name> <parent> <artifactId>webassembletool-maven</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <description>Staticassembly Maven plugin Generate a set of HTML pages with reusable components found in modules folder.</description> <inceptionYear>2010</inceptionYear> @@ -17,7 +18,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </dependency> <dependency> <groupId>org.slf4j</groupId> Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-oscache/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-taglib/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-04-27 13:32:41 UTC (rev 622) +++ trunk/webassembletool-wicket/pom.xml 2011-04-27 13:57:08 UTC (rev 623) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.18-SNAPSHOT</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ced...@us...> - 2011-04-27 14:03:10
|
Revision: 626 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=626&view=rev Author: cedric_brandes Date: 2011-04-27 14:02:59 +0000 (Wed, 27 Apr 2011) Log Message: ----------- [maven-release-plugin] prepare release webassembletool-2.18 Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> @@ -139,9 +139,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</connection> - <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</developerConnection> - <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/trunk/</url> + <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</connection> + <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</developerConnection> + <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/tags/webassembletool-2.18</url> </scm> <build> <plugins> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -1,15 +1,14 @@ -<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"> +<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> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-cas/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-facelet/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-master/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-app-provider/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-cas/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-core/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-distribution/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-jsf/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-maven/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <modules> <module>webassembletool-staticassembly-plugin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-archetype</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>maven-archetype</packaging> <name>webassembletool-staticassembly-archetype</name> <description>Archetype that generate a staticassembly enabled project</description> @@ -10,7 +10,7 @@ <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <developers> <developer> Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -1,16 +1,15 @@ <?xml version="1.0"?> -<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/xsd/maven-4.0.0.xsd"> +<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/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-plugin</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <packaging>maven-plugin</packaging> <name>webassembletool-staticassembly-plugin</name> <parent> <artifactId>webassembletool-maven</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <description>Staticassembly Maven plugin Generate a set of HTML pages with reusable components found in modules folder.</description> <inceptionYear>2010</inceptionYear> @@ -18,7 +17,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </dependency> <dependency> <groupId>org.slf4j</groupId> Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-oscache/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-taglib/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-04-27 14:00:35 UTC (rev 625) +++ trunk/webassembletool-wicket/pom.xml 2011-04-27 14:02:59 UTC (rev 626) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18-SNAPSHOT</version> + <version>2.18</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ced...@us...> - 2011-04-27 14:03:52
|
Revision: 628 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=628&view=rev Author: cedric_brandes Date: 2011-04-27 14:03:45 +0000 (Wed, 27 Apr 2011) Log Message: ----------- [maven-release-plugin] prepare for next development iteration Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> @@ -139,9 +139,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</connection> - <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.18</developerConnection> - <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/tags/webassembletool-2.18</url> + <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</connection> + <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</developerConnection> + <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/trunk/</url> </scm> <build> <plugins> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-cas/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-facelet/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-master/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-app-provider/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-cas/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-core/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-distribution/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-jsf/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-maven/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <modules> <module>webassembletool-staticassembly-plugin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-maven/webassembletool-staticassembly-archetype/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -2,7 +2,7 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-archetype</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>maven-archetype</packaging> <name>webassembletool-staticassembly-archetype</name> <description>Archetype that generate a staticassembly enabled project</description> @@ -10,7 +10,7 @@ <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <developers> <developer> Modified: trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-maven/webassembletool-staticassembly-plugin/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,13 +3,13 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-staticassembly-plugin</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <packaging>maven-plugin</packaging> <name>webassembletool-staticassembly-plugin</name> <parent> <artifactId>webassembletool-maven</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <description>Staticassembly Maven plugin Generate a set of HTML pages with reusable components found in modules folder.</description> <inceptionYear>2010</inceptionYear> @@ -17,7 +17,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </dependency> <dependency> <groupId>org.slf4j</groupId> Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-oscache/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-taglib/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-04-27 14:03:17 UTC (rev 627) +++ trunk/webassembletool-wicket/pom.xml 2011-04-27 14:03:45 UTC (rev 628) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.18</version> + <version>2.19-SNAPSHOT</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <fxb...@us...> - 2011-08-12 11:21:38
|
Revision: 634 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=634&view=rev Author: fxbonnet Date: 2011-08-12 11:21:29 +0000 (Fri, 12 Aug 2011) Log Message: ----------- http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=62 Cookie delete http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=61 EsiGate Cache problem http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=60 Random SocketExceptions http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=57 Cookies forwarding is broken in 2.18 Modified Paths: -------------- trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java trunk/webassembletool-app-casified-aggregated1/src/main/webapp/WEB-INF/web.xml trunk/webassembletool-app-casified-aggregated2/src/main/webapp/WEB-INF/web.xml trunk/webassembletool-app-master/src/main/resources/net/webassembletool/driver.properties trunk/webassembletool-app-master/src/main/webapp/user.jsp trunk/webassembletool-app-master/src/test/java/net/webassembletool/test/cases/MasterTest.java trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/SerializableBasicCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/FileUtils.java trunk/webassembletool-core/src/main/java/net/webassembletool/file/HeadersFile.java trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientRequest.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResource.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpResourceFactory.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/RewriteUtils.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/UnsupportedHttpMethodException.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/Output.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/resource/ResourceUtils.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverConfigurationTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverFactoryTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/UserContextTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/file/HeadersFileTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/filter/CookieForwardingFilterTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpClientResponseTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/http/HttpResourceTest.java trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/DriverUtils.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/IncludeBlockTag.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATBlock.java Added Paths: ----------- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/RequestCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStream.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStreamException.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/PropertiesUtil.java trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/RequestCookieStoreTest.java Removed Paths: ------------- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/SerializableBasicHttpContext.java trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/FilteringCookieStoreTest.java Modified: trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties =================================================================== --- trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-aggregated1/src/main/resources/net/webassembletool/driver.properties 2011-08-12 11:21:29 UTC (rev 634) @@ -5,7 +5,6 @@ # Required for Vary testing. filter=net.webassembletool.filter.CookieForwardingFilter -cookieStore=net.webassembletool.cookie.FilteringCookieStore forwardCookies=test-cookie discardCookies=test-cookie Modified: trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties =================================================================== --- trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-aggregator/src/main/resources/net/webassembletool/driver.properties 2011-08-12 11:21:29 UTC (rev 634) @@ -5,7 +5,6 @@ # Required for Vary testing. filter=net.webassembletool.filter.CookieForwardingFilter -cookieStore=net.webassembletool.cookie.FilteringCookieStore forwardCookies=test-cookie,test0,test1 discardCookies=test-cookie @@ -16,7 +15,6 @@ aggregated2.useCache=false aggregated2.timeout=5000 aggregated2.filter=net.webassembletool.filter.CookieForwardingFilter -aggregated2.cookieStore=net.webassembletool.cookie.SerializableBasicCookieStore aggregated2.forwardCookies=test1,test2,testjs nocacheaggregated1.remoteUrlBase=http://localhost:8080/webassembletool-app-aggregated1/ Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-08-12 11:21:29 UTC (rev 634) @@ -52,7 +52,8 @@ private final static String AGGREGATOR = "http://localhost:8080/webassembletool-app-aggregator/"; private final static String AGGREGATOR_NO_CACHE = "http://localhost:8080/webassembletool-app-aggregator/nocache/ag1/"; - private static final Logger LOG = LoggerFactory.getLogger(PerformanceTestCase.class); + private static final Logger LOG = LoggerFactory + .getLogger(PerformanceTestCase.class); /** * Execute a get request Modified: trunk/webassembletool-app-casified-aggregated1/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/src/main/webapp/WEB-INF/web.xml 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-casified-aggregated1/src/main/webapp/WEB-INF/web.xml 2011-08-12 11:21:29 UTC (rev 634) @@ -26,7 +26,7 @@ </init-param> <init-param> <param-name>redirectAfterValidation</param-name> - <param-value>true</param-value> + <param-value>false</param-value> </init-param> <init-param> <param-name>acceptAnyProxy</param-name> Modified: trunk/webassembletool-app-casified-aggregated2/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/src/main/webapp/WEB-INF/web.xml 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-casified-aggregated2/src/main/webapp/WEB-INF/web.xml 2011-08-12 11:21:29 UTC (rev 634) @@ -26,7 +26,7 @@ </init-param> <init-param> <param-name>redirectAfterValidation</param-name> - <param-value>true</param-value> + <param-value>false</param-value> </init-param> <init-param> <param-name>acceptAnyProxy</param-name> Modified: trunk/webassembletool-app-master/src/main/resources/net/webassembletool/driver.properties =================================================================== --- trunk/webassembletool-app-master/src/main/resources/net/webassembletool/driver.properties 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-master/src/main/resources/net/webassembletool/driver.properties 2011-08-12 11:21:29 UTC (rev 634) @@ -25,7 +25,6 @@ # Used for Vary testing filter=net.webassembletool.filter.CookieForwardingFilter -cookieStore=net.webassembletool.cookie.FilteringCookieStore forwardCookies=test-cookie discardCookies=test-cookie @@ -49,7 +48,6 @@ cache-auto.remoteUrlBase=http://localhost:8080/webassembletool-app-provider/ cache-auto.filter=net.webassembletool.filter.CookieForwardingFilter -cache-auto.cookieStore=net.webassembletool.cookie.FilteringCookieStore cache-auto.forwardCookies=test-cookie cache-auto.discardCookies=test-cookie cache-auto.timeout=2000 Modified: trunk/webassembletool-app-master/src/main/webapp/user.jsp =================================================================== --- trunk/webassembletool-app-master/src/main/webapp/user.jsp 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-master/src/main/webapp/user.jsp 2011-08-12 11:21:29 UTC (rev 634) @@ -6,7 +6,6 @@ <%@page import="net.webassembletool.cookie.SerializableBasicCookieStore"%> <%@taglib uri="http://www.sourceforge.net/webassembletool" prefix="assemble"%> <% - UserContext context = DriverFactory.getInstance().createNewUserContext(); + UserContext context = DriverFactory.getInstance().getUserContext(request); context.setUser("test"); - DriverFactory.getInstance().setUserContext(context, request); %><assemble:includeTemplate page="user.jsp" /> Modified: trunk/webassembletool-app-master/src/test/java/net/webassembletool/test/cases/MasterTest.java =================================================================== --- trunk/webassembletool-app-master/src/test/java/net/webassembletool/test/cases/MasterTest.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-app-master/src/test/java/net/webassembletool/test/cases/MasterTest.java 2011-08-12 11:21:29 UTC (rev 634) @@ -102,7 +102,7 @@ req.setHeaderField("if-modified-since", resp.getHeaderField("Last-modified")); resp = webConversation.getResponse(req); - assertEquals("Status should be 200", + assertEquals("Status should be 304", HttpServletResponse.SC_NOT_MODIFIED, resp.getResponseCode()); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/Driver.java 2011-08-12 11:21:29 UTC (rev 634) @@ -37,6 +37,7 @@ import net.webassembletool.http.CachedHttpResourceFactory; import net.webassembletool.http.HttpResourceFactory; import net.webassembletool.http.ResponseOutput; +import net.webassembletool.http.ResponseOutputStreamException; import net.webassembletool.output.Output; import net.webassembletool.output.StringOutput; import net.webassembletool.output.TextOnlyStringOutput; @@ -158,26 +159,26 @@ } /** - * Get current user context in session or null if no context exists. + * Get current user context in session or request. Context will be saved to + * session only if not empty. * * @param request * http request - * @param create - * if true and no current user context, it will be created and - * added to the session. - * @return UserContext or null + * + * @return UserContext */ - public final UserContext getUserContext(HttpServletRequest request, - boolean create) { - UserContext context = null; - HttpSession session = request.getSession(create); - if (session != null) { - String key = getContextKey(); - context = (UserContext) session.getAttribute(key); - if (context == null && create) { + public final UserContext getUserContext(HttpServletRequest request) { + String key = getContextKey(); + UserContext context = (UserContext) request.getAttribute(key); + if (context == null) { + HttpSession session = request.getSession(false); + if (session != null) { + context = (UserContext) session.getAttribute(key); + } + if (context == null) { context = createNewUserContext(); - setUserContext(context, request); } + request.setAttribute(key, context); } return context; } @@ -187,37 +188,28 @@ * * @return UserContext */ - public UserContext createNewUserContext() { + private UserContext createNewUserContext() { UserContext context = new UserContext( extension.getExtension(CustomCookieStore.class)); return context; } /** - * Add user context to session. + * Save user context to session only if not empty. * - * @param context - * UserContext to save. * @param request * http request. */ - public final void setUserContext(UserContext context, - HttpServletRequest request) { - HttpSession session = request.getSession(); - session.setAttribute(getContextKey(), context); + public final void saveUserContext(HttpServletRequest request) { + String key = getContextKey(); + UserContext context = (UserContext) request.getAttribute(key); + if (context != null && !context.isEmpty()) { + HttpSession session = request.getSession(); + session.setAttribute(key, context); + } } /** - * Returns the base URL used to retrieve contents from the provider - * application. - * - * @return the base URL as a String - */ - public final String getBaseURL() { - return config.getBaseURL(); - } - - /** * Retrieves a page from the provider application, evaluates XPath * expression if exists, applies XSLT transformation and writes result to a * Writer. @@ -494,6 +486,10 @@ resource = this.resourceFactory.getResource(resourceContext); try { Rfc2616.renderResource(config, resource, output); + } catch (ResponseOutputStreamException e) { + if (LOG.isInfoEnabled()) { + LOG.info("Client or network problem, ignoring", e); + } } catch (IOException e) { StringWriter out = new StringWriter(); e.printStackTrace(new PrintWriter(out)); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-08-12 11:21:29 UTC (rev 634) @@ -14,6 +14,8 @@ */ package net.webassembletool; +import java.net.MalformedURLException; +import java.net.URL; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -63,10 +65,19 @@ private static final String DEFAULT_PARSABLE_CONTENT_TYPES = "text/html, application/xhtml+xml"; private static final String DEFAULT_BLACK_LISTED_HEADERS = "Content-Length,Content-Encoding,Transfer-Encoding,Set-Cookie"; + private URL baseURLasURL = null; + public DriverConfiguration(String instanceName, Properties props) { this.instanceName = instanceName; // Remote application settings baseURL = props.getProperty("remoteUrlBase"); + try { + if (baseURL != null) { + baseURLasURL = new URL(baseURL); + } + } catch (MalformedURLException e1) { + throw new ConfigurationException(e1); + } if (props.getProperty("uriEncoding") != null) { uriEncoding = props.getProperty("uriEncoding"); } @@ -294,4 +305,8 @@ return parsableContentTypes; } + public URL getBaseURLasURL() { + return baseURLasURL; + } + } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-08-12 11:21:29 UTC (rev 634) @@ -3,6 +3,8 @@ import java.io.IOException; import java.io.Writer; +import javax.servlet.http.HttpServletResponse; + /** * Exception thrown when an error occurred retrieving a resource * @@ -33,4 +35,21 @@ public void render(Writer writer) throws IOException { writer.write(errorPageContent); } + + public void render(HttpServletResponse response) throws IOException { + try { + response.setStatus(statusCode); + Writer writer = response.getWriter(); + render(writer); + // If we cannot render the Exception to browser, do our best to + // render it in the log file + } catch (IllegalStateException e) { + throw new IOException( + "Response already committed, unable to render exception to browser", + this); + } catch (IOException e) { + throw new IOException("Unable to render exception to browser", this); + } + + } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ProxyServlet.java 2011-08-12 11:21:29 UTC (rev 634) @@ -18,7 +18,8 @@ */ public class ProxyServlet extends HttpServlet { private static final long serialVersionUID = 1L; - private static final Logger LOG = LoggerFactory.getLogger(ProxyServlet.class); + private static final Logger LOG = LoggerFactory + .getLogger(ProxyServlet.class); private String provider; @Override @@ -34,8 +35,7 @@ DriverFactory.getInstance(provider) .proxy(relUrl, request, response); } catch (HttpErrorPage e) { - response.setStatus(e.getStatusCode()); - e.render(response.getWriter()); + e.render(response); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/ResourceContext.java 2011-08-12 11:21:29 UTC (rev 634) @@ -10,9 +10,10 @@ import javax.servlet.http.HttpServletResponse; /** - * Represents the location of a requested resource with all the necessary parameters. When proxyMode is set to true, the - * resource should not be cached and any cookie or parameter coming from the original request should be forwarded to the - * target server. + * Represents the location of a requested resource with all the necessary + * parameters. When proxyMode is set to true, the resource should not be cached + * and any cookie or parameter coming from the original request should be + * forwarded to the target server. * * @author Francois-Xavier Bonnet */ @@ -47,7 +48,8 @@ this.proxy = proxyMode; } - public ResourceContext(Driver driver, String relUrl, Map<String, String> parameters, HttpServletRequest originalRequest, + public ResourceContext(Driver driver, String relUrl, + Map<String, String> parameters, HttpServletRequest originalRequest, HttpServletResponse originalResponse) { this.driver = driver; this.relUrl = relUrl; @@ -76,8 +78,8 @@ return proxy; } - public UserContext getUserContext(boolean create) { - return driver.getUserContext(originalRequest, create); + public UserContext getUserContext() { + return driver.getUserContext(originalRequest); } public boolean isNeededForTransformation() { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/RewriteProxyServlet.java 2011-08-12 11:21:29 UTC (rev 634) @@ -197,7 +197,8 @@ } - private static Logger logger = LoggerFactory.getLogger(RewriteProxyServlet.class); + private static Logger logger = LoggerFactory + .getLogger(RewriteProxyServlet.class); private static final long serialVersionUID = 8479657871058986339L; @@ -384,15 +385,13 @@ + targetQueryString); } DriverFactory.getInstance(conf.getProvider()) - .proxy( - newUrl, + .proxy(newUrl, new ReverseHttpRequest(request, targetQueryString), response); return; } catch (HttpErrorPage e) { - response.setStatus(e.getStatusCode()); - e.render(response.getWriter()); + e.render(response); } } else { // Create target @@ -404,12 +403,12 @@ targetFile = newUrl; } if (targetPort != null) { - target = new URL(targetScheme, request - .getServerName(), targetPort, targetFile) - .toString(); + target = new URL(targetScheme, + request.getServerName(), targetPort, + targetFile).toString(); } else { - target = new URL(targetScheme, request - .getServerName(), newUrl).toString(); + target = new URL(targetScheme, + request.getServerName(), newUrl).toString(); } // Redirect request and return; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/UserContext.java 2011-08-12 11:21:29 UTC (rev 634) @@ -18,11 +18,8 @@ import java.util.List; import net.webassembletool.cookie.CustomCookieStore; -import net.webassembletool.http.SerializableBasicHttpContext; -import org.apache.http.client.protocol.ClientContext; import org.apache.http.cookie.Cookie; -import org.apache.http.protocol.HttpContext; /** * User context that can be used in the master application to define the user @@ -37,18 +34,14 @@ private static final long serialVersionUID = 1L; private String user; private final CustomCookieStore cookieStore; - private final HttpContext httpContext; public UserContext(CustomCookieStore cookieStore) { if (cookieStore == null) { - throw new IllegalArgumentException("cookieStore implementation not set"); + throw new IllegalArgumentException( + "cookieStore implementation not set"); } this.cookieStore = cookieStore; - // Create local HTTP context - httpContext = new SerializableBasicHttpContext(); - // Bind custom cookie store to the local context - httpContext.setAttribute(ClientContext.COOKIE_STORE, cookieStore); } /** @@ -68,10 +61,6 @@ this.user = user; } - public HttpContext getHttpContext() { - return httpContext; - } - /** * @see java.lang.Object#toString() */ @@ -100,4 +89,12 @@ result.append("}"); return result.toString(); } + + public CustomCookieStore getCookieStore() { + return cookieStore; + } + + public boolean isEmpty() { + return user == null && cookieStore.getCookies().isEmpty(); + } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/aggregator/AggregatorServlet.java 2011-08-12 11:21:29 UTC (rev 634) @@ -22,7 +22,8 @@ */ public class AggregatorServlet extends HttpServlet { private static final long serialVersionUID = 1L; - private static final Logger LOG = LoggerFactory.getLogger(AggregatorServlet.class); + private static final Logger LOG = LoggerFactory + .getLogger(AggregatorServlet.class); private String provider; @Override @@ -43,8 +44,7 @@ new EsiRenderer(request, response, DriverFactory .getInstance(provider))); } catch (HttpErrorPage e) { - response.setStatus(e.getStatusCode()); - e.render(response.getWriter()); + e.render(response); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/authentication/RemoteUserAuthenticationHandler.java 2011-08-12 11:21:29 UTC (rev 634) @@ -38,7 +38,7 @@ public void preRequest(HttpClientRequest request, ResourceContext requestContext) { - UserContext userContext = requestContext.getUserContext(false); + UserContext userContext = requestContext.getUserContext(); String remoteUser = null; if (userContext != null && userContext.getUser() != null) { remoteUser = userContext.getUser(); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/BaseCachedResource.java 2011-08-12 11:21:29 UTC (rev 634) @@ -1,12 +1,11 @@ package net.webassembletool.cache; import java.io.Serializable; -import java.util.ArrayList; import java.util.Collection; -import java.util.HashSet; -import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; +import java.util.TreeSet; import net.webassembletool.resource.Resource; @@ -17,11 +16,12 @@ */ abstract class BaseCachedResource extends Resource implements Serializable { private static final long serialVersionUID = 1771883783632694287L; - protected final Map<String, List<String>> headers; + protected final Map<String, Set<String>> headers; protected final int statusCode; protected final String statusMessage; - protected BaseCachedResource(Map<String, List<String>> headers, int statusCode, String statusMessage) { + protected BaseCachedResource(Map<String, Set<String>> headers, + int statusCode, String statusMessage) { this.headers = headers; this.statusCode = statusCode; this.statusMessage = statusMessage; @@ -45,9 +45,10 @@ @Override public String getHeader(String key) { String result = null; - for (Entry<String, List<String>> entry : headers.entrySet()) { - if (key.equalsIgnoreCase(entry.getKey()) && !entry.getValue().isEmpty()) { - result = entry.getValue().get(0); + for (Entry<String, Set<String>> entry : headers.entrySet()) { + if (key.equalsIgnoreCase(entry.getKey()) + && !entry.getValue().isEmpty()) { + result = entry.getValue().iterator().next(); break; } } @@ -56,8 +57,8 @@ @Override public Collection<String> getHeaders(String name) { - Collection<String> result = new HashSet<String>(); - for (Entry<String, List<String>> entry : headers.entrySet()) { + Collection<String> result = new TreeSet<String>(); + for (Entry<String, Set<String>> entry : headers.entrySet()) { if (name.equalsIgnoreCase(entry.getKey())) { result.addAll(entry.getValue()); break; @@ -67,15 +68,15 @@ } public void addHeader(String name, String value) { - List<String> values = null; - for (Entry<String, List<String>> entry : headers.entrySet()) { + Set<String> values = null; + for (Entry<String, Set<String>> entry : headers.entrySet()) { if (name.equalsIgnoreCase(entry.getKey())) { values = entry.getValue(); break; } } if (values == null) { - values = new ArrayList<String>(); + values = new TreeSet<String>(); headers.put(name, values); } values.add(value); Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheEntry.java 2011-08-12 11:21:29 UTC (rev 634) @@ -33,7 +33,8 @@ private static final long serialVersionUID = 7110248280110189961L; private static final Logger LOG = LoggerFactory.getLogger(CacheEntry.class); private static final long CLEAN_DELAY = 15 * 60 * 1000; // 15 minutes; - private static final Pattern ETAG_PATTERN = Pattern.compile(",?\\s*((W/)?\"[^\"]*\")"); + private static final Pattern ETAG_PATTERN = Pattern + .compile(",?\\s*((W/)?\"[^\"]*\")"); private final String url; private transient CacheStorage storage; @@ -41,13 +42,15 @@ private long lastClean = -1; /** - * A list a all responses for this ResourceContext. Only includes informations which can be used to decide if a - * cached response matches to a new resource context. On matching, the complete cache value need to be retrieved - * from cached. + * A list a all responses for this ResourceContext. Only includes + * informations which can be used to decide if a cached response matches to + * a new resource context. On matching, the complete cache value need to be + * retrieved from cached. * * <p> - * Responses described in responseSummaries may have been removed from cache. In that case, the retrieve operation - * fails and the summary is removed from this entry. + * Responses described in responseSummaries may have been removed from + * cache. In that case, the retrieve operation fails and the summary is + * removed from this entry. * */ private final List<CachedResponseSummary> responseSummaries = new CopyOnWriteArrayList<CachedResponseSummary>(); @@ -63,11 +66,13 @@ } /** - * Returns the first matching cache entry for this request, this entry may be valid or stale but Etag must match - * If-None-Match header from the request and vary headers must be the same in the request and in the original - * request that caused this entry to get cached. + * Returns the first matching cache entry for this request, this entry may + * be valid or stale but Etag must match If-None-Match header from the + * request and vary headers must be the same in the request and in the + * original request that caused this entry to get cached. * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content may have been updated thus need to be persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content may have + * been updated thus need to be persisted. * * @param resourceContext * @return the first matching cache entry for this request @@ -103,20 +108,23 @@ /** * - * Returns a cached response from cache. If the response is no longer in cache, any reference in CacheEntry is - * cleaned and entry is marked dirty. + * Returns a cached response from cache. If the response is no longer in + * cache, any reference in CacheEntry is cleaned and entry is marked dirty. * * @param summary * Summary of cached response * @return CachedResponse or null if no longer in cache. */ - private CachedResponse getCacheResponseAndClean(CachedResponseSummary summary) { - CachedResponse cachedResponse = (CachedResponse) storage.get(summary.getCacheKey()); + private CachedResponse getCacheResponseAndClean( + CachedResponseSummary summary) { + CachedResponse cachedResponse = (CachedResponse) storage.get(summary + .getCacheKey()); // Handle case when resource is no longer in cache. if (cachedResponse == null) { if (LOG.isDebugEnabled()) { - LOG.debug("Resource " + summary.getCacheKey() + "is no longer in cache. Removing"); + LOG.debug("Resource " + summary.getCacheKey() + + "is no longer in cache. Removing"); } if (responseSummaries.contains(summary)) { responseSummaries.remove(summary); @@ -128,8 +136,8 @@ } /** - * Return the first existing CacheResponse. If responses have been removed from cache, entry is updated and marked - * dirty. + * Return the first existing CacheResponse. If responses have been removed + * from cache, entry is updated and marked dirty. * * * @return CachedResponse or null @@ -146,22 +154,26 @@ } /** - * Computes http entity tags in the incoming request with the ones in all the cached response in order to make a - * conditional request to the server with headers "If-Modified-Since" and "If-None-Match" + * Computes http entity tags in the incoming request with the ones in all + * the cached response in order to make a conditional request to the server + * with headers "If-Modified-Since" and "If-None-Match" * * @param resourceContext * The resource we want to get * @param cachedResponse * The current stale version of the resource - * @return The headers "If-Modified-Since" and "If-None-Match" to add to the request + * @return The headers "If-Modified-Since" and "If-None-Match" to add to the + * request */ - public Map<String, String> getValidators(ResourceContext resourceContext, Resource cachedResponse) { + public Map<String, String> getValidators(ResourceContext resourceContext, + Resource cachedResponse) { HashMap<String, String> result = new HashMap<String, String>(); String ifNoneMatch = getIfNoneMatch(resourceContext); if (ifNoneMatch != null) { result.put(HttpHeaders.IF_NONE_MATCH, ifNoneMatch); } - String ifModifiedSince = getIfModifiedSince(resourceContext, cachedResponse); + String ifModifiedSince = getIfModifiedSince(resourceContext, + cachedResponse); if (ifModifiedSince != null) { result.put(HttpHeaders.IF_MODIFIED_SINCE, ifModifiedSince); } @@ -170,8 +182,10 @@ private String getIfNoneMatch(ResourceContext resourceContext) { Set<String> etags = new HashSet<String>(); - if (resourceContext.isProxy() && !resourceContext.isNeededForTransformation()) { - String ifNoneMatch = resourceContext.getOriginalRequest().getHeader(HttpHeaders.IF_NONE_MATCH); + if (resourceContext.isProxy() + && !resourceContext.isNeededForTransformation()) { + String ifNoneMatch = resourceContext.getOriginalRequest() + .getHeader(HttpHeaders.IF_NONE_MATCH); if (ifNoneMatch != null) { Matcher matcher = ETAG_PATTERN.matcher(ifNoneMatch); while (!matcher.hitEnd()) { @@ -202,28 +216,37 @@ return null; } - private String getIfModifiedSince(ResourceContext resourceContext, Resource cachedResponse) { - String requestedIfModifiedSinceString = resourceContext.getOriginalRequest().getHeader(HttpHeaders.IF_MODIFIED_SINCE); - Date requestedIfModifiedSinceDate = Rfc2616.getDateHeader(resourceContext, HttpHeaders.IF_MODIFIED_SINCE); + private String getIfModifiedSince(ResourceContext resourceContext, + Resource cachedResponse) { + String requestedIfModifiedSinceString = resourceContext + .getOriginalRequest().getHeader(HttpHeaders.IF_MODIFIED_SINCE); + Date requestedIfModifiedSinceDate = Rfc2616.getDateHeader( + resourceContext, HttpHeaders.IF_MODIFIED_SINCE); String cacheLastModifiedString = null; Date cacheLastModifiedDate = null; if (cachedResponse != null && cachedResponse.hasResponseBody()) { - cacheLastModifiedString = cachedResponse.getHeader(HttpHeaders.LAST_MODIFIED); - cacheLastModifiedDate = Rfc2616.getDateHeader(cachedResponse, HttpHeaders.LAST_MODIFIED); + cacheLastModifiedString = cachedResponse + .getHeader(HttpHeaders.LAST_MODIFIED); + cacheLastModifiedDate = Rfc2616.getDateHeader(cachedResponse, + HttpHeaders.LAST_MODIFIED); } - if (resourceContext.isNeededForTransformation() || requestedIfModifiedSinceDate == null - || (cacheLastModifiedDate != null && cacheLastModifiedDate.after(requestedIfModifiedSinceDate))) { + if (resourceContext.isNeededForTransformation() + || requestedIfModifiedSinceDate == null + || (cacheLastModifiedDate != null && cacheLastModifiedDate + .after(requestedIfModifiedSinceDate))) { return cacheLastModifiedString; } return requestedIfModifiedSinceString; } /** - * Selects the response to the request between a cache entry (if return code is 304) and the resource sent by the - * server (if return code is 200). Updates the cache. + * Selects the response to the request between a cache entry (if return code + * is 304) and the resource sent by the server (if return code is 200). + * Updates the cache. * * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content may have been updated thus need to be persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content may have + * been updated thus need to be persisted. * * @param resourceContext * @param cachedResponse @@ -231,7 +254,8 @@ * @return The response to send to the client * @throws HttpErrorPage */ - public Resource select(ResourceContext resourceContext, CachedResponse cachedResponse, Resource newResource) + public Resource select(ResourceContext resourceContext, + CachedResponse cachedResponse, Resource newResource) throws HttpErrorPage { if (LOG.isDebugEnabled()) { LOG.debug("select(" + resourceContext.getRelUrl() + ")"); @@ -242,13 +266,15 @@ String etag = Rfc2616.getEtag(newResource); if (etag == null) { // No e-tag specified by the server - // The not modified response is for the if-modified-since we + // The not-modified response is for the if-modified-since we // sent - String sentIfModifiedSince = getIfModifiedSince(resourceContext, cachedResponse); + String sentIfModifiedSince = getIfModifiedSince( + resourceContext, cachedResponse); if (sentIfModifiedSince != null) { if (!resourceContext.isNeededForTransformation() - && sentIfModifiedSince.equals(resourceContext.getOriginalRequest().getHeader( - HttpHeaders.IF_MODIFIED_SINCE))) { + && sentIfModifiedSince.equals(resourceContext + .getOriginalRequest().getHeader( + HttpHeaders.IF_MODIFIED_SINCE))) { result = newResource; } else { result = cachedResponse; @@ -264,20 +290,29 @@ } } } else { - if (!resourceContext.isNeededForTransformation() && Rfc2616.etagMatches(resourceContext, newResource)) { + if (!resourceContext.isNeededForTransformation() + && ((resourceContext.getOriginalRequest().getHeader( + HttpHeaders.IF_NONE_MATCH) != null && Rfc2616 + .etagMatches(resourceContext, newResource)) || resourceContext + .getOriginalRequest().getHeader( + HttpHeaders.IF_MODIFIED_SINCE) != null)) { + result = newResource; } else { result = findByEtag(etag); + } } if (cachedResponse != null) { updateHeaders(cachedResponse, newResource); } if (result == null) { - LOG.warn("Invalid 304 response, neededForTransformation: " + resourceContext.isNeededForTransformation() + LOG.warn("Invalid 304 response, neededForTransformation: " + + resourceContext.isNeededForTransformation() + " etag: " + etag); - throw new HttpErrorPage(HttpServletResponse.SC_PRECONDITION_FAILED, "Invalid 304 response", - "Invalid 304 response"); + throw new HttpErrorPage( + HttpServletResponse.SC_PRECONDITION_FAILED, + "Invalid 304 response", "Invalid 304 response"); } } else { result = newResource; @@ -314,7 +349,8 @@ } } - private void updateHeaders(CachedResponse cachedResponse, Resource newResource) { + private void updateHeaders(CachedResponse cachedResponse, + Resource newResource) { copyHeader(newResource, cachedResponse, HttpHeaders.DATE); copyHeader(newResource, cachedResponse, HttpHeaders.CONTENT_TYPE); copyHeader(newResource, cachedResponse, HttpHeaders.CONTENT_LENGTH); @@ -328,20 +364,23 @@ /** * Add a response to the cache. * <p> - * Be sure to check CacheEntry#isDirty() on return. Entry content will probably be updated thus need to be - * persisted. + * Be sure to check CacheEntry#isDirty() on return. Entry content will + * probably be updated thus need to be persisted. * * @param resourceContext - * must be the resourceContext used to get resource. Not the one of this cache entry. + * must be the resourceContext used to get resource. Not the one + * of this cache entry. * @param resource * the new response. */ public void put(ResourceContext resourceContext, CachedResponse resource) { // Don't put in cache null or not modified responses - if (resource != null && resource.getStatusCode() != HttpServletResponse.SC_NOT_MODIFIED) { + if (resource != null + && resource.getStatusCode() != HttpServletResponse.SC_NOT_MODIFIED) { // Inject headers from the original request. - resource.setRequestHeadersFromRequest(resourceContext.getOriginalRequest()); + resource.setRequestHeadersFromRequest(resourceContext + .getOriginalRequest()); String key = getCacheKey(resourceContext, resource); @@ -379,7 +418,10 @@ final int prime = 31; int result = 1; result = prime * result + (int) (lastClean ^ (lastClean >>> 32)); - result = prime * result + ((responseSummaries == null) ? 0 : responseSummaries.hashCode()); + result = prime + * result + + ((responseSummaries == null) ? 0 : responseSummaries + .hashCode()); result = prime * result + ((url == null) ? 0 : url.hashCode()); return result; } @@ -431,7 +473,8 @@ * @param resource * @return */ - private String getCacheKey(ResourceContext resourceContext, Resource resource) { + private String getCacheKey(ResourceContext resourceContext, + Resource resource) { StringBuilder cacheKey = new StringBuilder(); cacheKey.append(url).append(" "); String etag = Rfc2616.getEtag(resource); @@ -443,9 +486,11 @@ Map<String, String> vary = Rfc2616.getVary(resourceContext, resource); if (vary != null) { cacheKey.append(" vary={"); - for (Iterator<Entry<String, String>> iterator = vary.entrySet().iterator(); iterator.hasNext();) { + for (Iterator<Entry<String, String>> iterator = vary.entrySet() + .iterator(); iterator.hasNext();) { Entry<String, String> header = iterator.next(); - cacheKey.append(header.getKey()).append("=").append(header.getValue()).append(";"); + cacheKey.append(header.getKey()).append("=") + .append(header.getValue()).append(";"); } cacheKey.append("}"); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-08-12 11:21:29 UTC (rev 634) @@ -5,9 +5,9 @@ import java.util.Date; import java.util.Enumeration; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import javax.servlet.http.HttpServletRequest; @@ -15,8 +15,8 @@ import net.webassembletool.util.Rfc2616; /** - * Resource implementation that keeps the contents inside a byte array. A MemoryResource can be reused and kept in - * cache. + * Resource implementation that keeps the contents inside a byte array. A + * MemoryResource can be reused and kept in cache. * * @author Francois-Xavier Bonnet * @@ -28,7 +28,8 @@ private final Date localDate = new Date(); private Map<String, String> requestHeaders; - public CachedResponse(byte[] byteArray, String charset, Map<String, List<String>> headers, int statusCode, + public CachedResponse(byte[] byteArray, String charset, + Map<String, Set<String>> headers, int statusCode, String statusMessage) { super(headers, statusCode, statusMessage); this.byteArray = byteArray; @@ -62,7 +63,7 @@ output.setStatus(statusCode, statusMessage); try { output.setCharsetName(charset); - for (Entry<String, List<String>> entry : headers.entrySet()) { + for (Entry<String, Set<String>> entry : headers.entrySet()) { for (String value : entry.getValue()) { output.addHeader(entry.getKey(), value); } @@ -81,7 +82,8 @@ @Override public String toString() { - return statusCode + " " + statusMessage + " age=" + Rfc2616.getAge(this) + " stale=" + Rfc2616.isStale(this) + return statusCode + " " + statusMessage + " age=" + + Rfc2616.getAge(this) + " stale=" + Rfc2616.isStale(this) + " hasBody=" + hasResponseBody(); } @@ -92,10 +94,13 @@ result = prime * result + Arrays.hashCode(byteArray); result = prime * result + ((charset == null) ? 0 : charset.hashCode()); result = prime * result + ((headers == null) ? 0 : headers.hashCode()); - result = prime * result + ((localDate == null) ? 0 : localDate.hashCode()); - result = prime * result + ((requestHeaders == null) ? 0 : requestHeaders.hashCode()); + result = prime * result + + ((localDate == null) ? 0 : localDate.hashCode()); + result = prime * result + + ((requestHeaders == null) ? 0 : requestHeaders.hashCode()); result = prime * result + statusCode; - result = prime * result + ((statusMessage == null) ? 0 : statusMessage.hashCode()); + result = prime * result + + ((statusMessage == null) ? 0 : statusMessage.hashCode()); return result; } @@ -186,7 +191,8 @@ } /** - * Set headers which were used to get this resource from the original HttpServletRequest. + * Set headers which were used to get this resource from the original + * HttpServletRequest. * <p> * Headers can then be retrieved from HttpServletRequest#getRequestHeaders() * @@ -211,7 +217,9 @@ } public CachedResponseSummary getSummary() { - CachedResponseSummary s = new CachedResponseSummary(new HashMap<String, List<String>>(headers), statusCode, statusMessage); + CachedResponseSummary s = new CachedResponseSummary( + new HashMap<String, Set<String>>(headers), statusCode, + statusMessage); s.setResponseBody(this.hasResponseBody()); s.setLocalDate(localDate); // Copy Request headers Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-08-12 11:21:29 UTC (rev 634) @@ -2,15 +2,15 @@ import java.io.IOException; import java.util.Date; -import java.util.List; import java.util.Map; import java.util.Map.Entry; +import java.util.Set; import net.webassembletool.output.Output; /** - * A summary of a response, which does not include body content. Can be used to check the validity of a resource before - * actually getting it. + * A summary of a response, which does not include body content. Can be used to + * check the validity of a resource before actually getting it. * * @author Nicolas Richeton * @@ -22,7 +22,8 @@ private String cacheKey; private Date localDate; - public CachedResponseSummary(Map<String, List<String>> headers, int statusCode, String statusMessage) { + public CachedResponseSummary(Map<String, Set<String>> headers, + int statusCode, String statusMessage) { super(headers, statusCode, statusMessage); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/CustomCookieStore.java 2011-08-12 11:21:29 UTC (rev 634) @@ -30,9 +30,4 @@ * */ public interface CustomCookieStore extends CookieStore, Serializable, Extension { - - /** - * Clean up cookies, removing unused ones. - */ - void cleanUpCookies(); } Deleted: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-08-05 08:36:35 UTC (rev 633) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/FilteringCookieStore.java 2011-08-12 11:21:29 UTC (rev 634) @@ -1,93 +0,0 @@ -/* - * Licensed 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 net.webassembletool.cookie; - -import java.util.Collection; -import java.util.Date; -import java.util.HashSet; -import java.util.List; -import java.util.Properties; - -import org.apache.http.cookie.Cookie; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Prevent specified cookies from being stored in the cookie store. - * - * @author Nicolas Richeton - * - */ -public class FilteringCookieStore extends SerializableBasicCookieStore { - /** Serialization ID. */ - private static final long serialVersionUID = -2112501012354521287L; - private static final Logger logger = LoggerFactory - .getLogger(FilteringCookieStore.class); - - private final Collection<String> discardCookies = new HashSet<String>(); - - /** - * Get names of the cookies which are forwarded. - * - * @return cookie name list. - */ - Collection<String> getForwardCookies() { - return discardCookies; - } - - /** - * {@inheritDoc} - * - * @see net.webassembletool.cookie.SerializableBasicCookieStore#init(java.util.Properties) - */ - @Override - public void init(Properties properties) { - // Parent init. - super.init(properties); - - // Cookies to discard - String cookiesProperty = properties.getProperty("discardCookies"); - if (cookiesProperty != null) { - String attributes[] = cookiesProperty.split(","); - for (String cookieName : attributes) { - discardCookies.add(cookieName.trim()); - if (logger.isInfoEnabled()) { - logger.info("Discarding cookie: " + cookieName); - } - } - } - } - - /** - * {@inheritDoc} - * - * @see net.webassembletool.cookie.SerializableBasicCookieStore#cleanUpCookies() - */ - @Override - public void cleanUpCookies() { - List<Cookie> cookies = getCookies(); - for (Cookie cookie : cookies) { - if (discardCookies.contains(cookie.getName())) { - if (logger.isInfoEnabled()) { - logger.info("Removing cookie: " + cookie.getName()); - } - SerializableBasicClientCookie2 newCookie = new SerializableBasicClientCookie2( - cookie); - newCookie.setExpiryDate(new Date(0)); - super.addCookie(newCookie); - } - } - } -} Added: trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/RequestCookieStore.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/RequestCookieStore.java (rev 0) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cookie/RequestCookieStore.java 2011-08-12 11:21:29 UTC (rev 634) @@ -0,0 +1,216 @@ +/* + * Licensed 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 net.webassembletool.cookie; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.Date; +import java.util.List; + +import javax.servlet.http.HttpServletResponse; + +import net.webassembletool.ResourceContext; +import net.webassembletool.http.HttpClientRequest; + +import org.apache.http.client.CookieStore; +import org.apache.http.cookie.Cookie; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * A CookieStore specific to current request. + * <ul> + * <li>It wraps the actual CookieStore for current user in order to store the + * cookies and send them back to the server.</li> + * <li>It retrieves the Cookies from incoming request to send them to the server + * if they match the list of forwarded cookies.</li> + * <li>It filters the Cookies according to the discardCookies list.</li> + * <li>It forwards the cookies that should be forwarded according to + * forwardCookies list.</li> + * </ul> + * + * @see CookieStore + * + * @author Nicolas Richeton + * + */ +public class RequestCookieStore implements CookieStore { + private static final Logger logger = LoggerFactory + .getLogger(RequestCookieStore.class); + + private final Collection<String> discardCookies; + private final Collection<String> forwardCookies; + private final CookieStore actualCookieStore; + private final ResourceContext resourceContext; + + public RequestCookieStore(Collection<String> discardCookies, + Collection<String> forwardCookies, CookieStore actualCookieStore, + HttpClientRequest request, ResourceContext resourceContext) { + this.discardCookies = discardCookies; + this.forwardCookies = forwardCookies; + this.actualCookieStore = actualCookieStore; + this.resourceContext = resourceContext; + } + + public void addCookie(Cookie cookie) { + HttpServletResponse response = resourceContext.getOriginalResponse(); + String name = cookie.getName(); + if (discardCookies.contains(name) + || (discardCookies.contains("*") && !forwardCookies + .contains(name))) { + logger.debug("Discarding cookie " + cookie.toString()); + } else if (forwardCookies.contains(name) + || forwardCookies.contains("*")) { + response.addCookie(rewriteCookie(cookie, resourceContext)); + } else { + logger.debug("Storing cookie to CookieStore " + cookie.toString()); + actualCookieStore.addCookie(cookie); + } + + } + + static javax.servlet.http.Cookie rewriteCookie(Cookie cookie, + ResourceContext resourceContext) { + String name = cookie.getName(); + // Rewrite domain + String originalDomain = cookie.getDomain(); + String providerHostName = resourceContext.getDriver() + .getConfiguration().getBaseURLasURL().getHost(); + String requestHostName = resourceContext.getOriginalRequest() + .getServerName(); + String domain = rewriteDomain(originalDomain, providerHostName, + requestHostName); + // Rewrite path + String originalPath = cookie.getPath(); + String requestPath = resourceContext.getOriginalRequest().getPathInfo(); + String path = originalPath; + if (!requestPath.startsWith(originalPath)) { + path = "/"; + } + // Rewrite secure + boolean secure = false; + if (cookie.isSecure() + && resourceContext.getOriginalRequest().isSecure()) { + secure = true; + } + // Rewrite name if JSESSIONID because it will interfere with current + // server session + if ("JSESSIONID".equalsIgnoreCase(name)) { + name = "_" + name; + } + javax.servlet.http.Cookie cookieToForward = new javax.servlet.http.Cookie( + name, cookie.getValue()); + if (domain != null) { + cookieToForward.setDomain(domain); + } + cookieToForward.setPath(path); + cookieToForward.setSecure(secure); + cookieToForward.setComment(cookie.getComment()); + cookieToForward.setVersion(cookie.getVersion()); + Date expiryDate = cookie.getExpiryDate(); + if (expiryDate != null) { + int maxAge = ((Long) ((cookie.getExpiryDate().getTime() - System + .currentTimeMillis()) / 1000)).intValue(); + // According to Cookie class specification, a negative value + // would be considered as no value. That is not what we want! + if (maxAge < 0) { + maxAge = 0; + } + cookieToForward.setMaxAge(maxAge); + } + logger.debug("Forwarding cookie " + cookie.toString() + " -> " + + cookieToForward.toString()); + return cookieToForward; + } + + static String rewriteDomain(String originalDomain, String providerHostName, + String requestHostName) { + String domain = null; + if (!providerHostName.equals(originalDomain)) { + // if original domain starts with ".", remove it. + if (originalDomain.startsWith(".")) { + originalDomain = originalDomain.substring(1); + } + String[] originalDomainParts = originalDomain.split("\\."); + String[] requestHostNameParts = requestHostName.split("\\."); + int targetLength = Math.min(originalDomainParts.length, + requestHostNameParts.length); + if (targetLength == requestHostNameParts.length) { + // The bigger domain we can use is request host name, it is like + // returning null as domaine name! + return null; + } + domain = ""; + for (int i = requestHostNameParts.length; i > requestHostNameParts.length + - targetLength; i--) { + domain = "." + requestHostNameParts[i - 1] + domain; + } + } + return domain; + } + + public List<Cookie> getCookies() { + List<Cookie> cookies = new ArrayList<Cookie>(); + // Get all the cookies from actual CookieStore + cookies.addAll(actualCookieStore.getCookies()); + // add all the cookies from browser to be accepted by policy + // (should be right domain, unsecure, path /) + javax.servlet.http.Cookie[] requestCookies = resourceContext + .getOriginalRequest().getCookies(); + if (requestCookies != null) { + for (javax.servlet.http.Cookie cookie : r... [truncated message content] |
From: <fxb...@us...> - 2011-08-17 14:26:26
|
Revision: 636 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=636&view=rev Author: fxbonnet Date: 2011-08-17 14:26:13 +0000 (Wed, 17 Aug 2011) Log Message: ----------- Fixed javadoc warnings http://sourceforge.net/apps/mantisbt/webassembletool/view.php?id=56 Modified Paths: -------------- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java trunk/webassembletool-core/src/main/java/net/webassembletool/esi/AttemptElement.java trunk/webassembletool-core/src/main/java/net/webassembletool/esi/ExceptElement.java trunk/webassembletool-core/src/main/java/net/webassembletool/esi/IncludeElement.java trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStream.java trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStreamException.java trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/PropertiesUtil.java trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverFactoryTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cache/SerializeCacheStorageTest.java trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/RequestCookieStoreTest.java trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeBlockComponent.java trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeTemplateComponent.java trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/UIComponentUtils.java trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/VarsTag.java trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/WhenTag.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatBufferedContainer.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/AbstractWatDriverContainer.java trunk/webassembletool-wicket/src/main/java/net/webassembletool/wicket/container/WATError.java Removed Paths: ------------- trunk/webassembletool-core/src/test/java/net/webassembletool/RewriteProxyServletTest.java Modified: trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java =================================================================== --- trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-app-aggregator/src/test/java/net/webassembletool/test/cases/PerformanceTestCase.java 2011-08-17 14:26:13 UTC (rev 636) @@ -60,7 +60,6 @@ * * @param path * @param page - * @return * @throws Exception */ private void doGet(String path, String page) throws Exception { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/DriverConfiguration.java 2011-08-17 14:26:13 UTC (rev 636) @@ -299,7 +299,7 @@ * List of parsable content types. Default is text/html, * application/xhtml+xml * - * @return + * @return List of parsable content types. */ public List<String> getParsableContentTypes() { return parsableContentTypes; Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/HttpErrorPage.java 2011-08-17 14:26:13 UTC (rev 636) @@ -44,11 +44,12 @@ // If we cannot render the Exception to browser, do our best to // render it in the log file } catch (IllegalStateException e) { - throw new IOException( + throw new ResponseException( "Response already committed, unable to render exception to browser", this); } catch (IOException e) { - throw new IOException("Unable to render exception to browser", this); + throw new ResponseException( + "Unable to render exception to browser", this); } } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CacheStorage.java 2011-08-17 14:26:13 UTC (rev 636) @@ -2,39 +2,46 @@ import java.util.Properties; -public interface CacheStorage{ +public interface CacheStorage { /** * Put value in the cache + * * @param key * @param value */ void put(String key, Object value); + /** * Put value in the cache for defined time in milliseconds + * * @param key * @param value * @param ttl */ void put(String key, Object value, long ttl); + /** * Return value by key + * * @param key - * @return */ - Object get(String key); - - /** + Object get(String key); + + /** * Return value by key + * * @param key - * @return */ - <T> T get(String key, Class<T> clazz); - /** - * Touch value - * @param key - */ - void touch(String key); - /** + <T> T get(String key, Class<T> clazz); + + /** + * Touch value + * + * @param key + */ + void touch(String key); + + /** * Initialize the cacheStorage using the given properties. * * @param properties Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponse.java 2011-08-17 14:26:13 UTC (rev 636) @@ -163,7 +163,7 @@ /** * {@inheritDoc} * - * @see net.webassembletool.resource.Resource#getRequestHeaders() + * @see net.webassembletool.resource.Resource#getRequestHeader(String key) */ @Override public String getRequestHeader(String key) { @@ -180,8 +180,6 @@ /** * Set headers which were used to get this resource. - * - * @param requestHeaders */ public void setRequestHeader(String name, String value) { if (requestHeaders == null) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/cache/CachedResponseSummary.java 2011-08-17 14:26:13 UTC (rev 636) @@ -79,7 +79,7 @@ /** * {@inheritDoc} * - * @see net.webassembletool.resource.Resource#getRequestHeaders() + * @see net.webassembletool.resource.Resource#getRequestHeader(String) */ @Override public String getRequestHeader(String key) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/esi/AttemptElement.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/esi/AttemptElement.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/esi/AttemptElement.java 2011-08-17 14:26:13 UTC (rev 636) @@ -29,10 +29,9 @@ }; private boolean closed = false; - private HttpServletRequest request; public void setRequest(HttpServletRequest request) { - this.request = request; + // Not used } public boolean isClosed() { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/esi/ExceptElement.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/esi/ExceptElement.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/esi/ExceptElement.java 2011-08-17 14:26:13 UTC (rev 636) @@ -29,10 +29,9 @@ }; private boolean closed = false; - private HttpServletRequest request; public void setRequest(HttpServletRequest request) { - this.request = request; + // Not used } public boolean isClosed() { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/esi/IncludeElement.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/esi/IncludeElement.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/esi/IncludeElement.java 2011-08-17 14:26:13 UTC (rev 636) @@ -65,8 +65,8 @@ new Date()))) { getOut(out, stack).append(ic.getFragment()); } else { - driver.render(page, null, getOut(out, stack), esiRenderer - .getRequest(), esiRenderer.getResponse(), + driver.render(page, null, getOut(out, stack), + esiRenderer.getRequest(), esiRenderer.getResponse(), new BlockRenderer(null, page)); } } catch (Exception e) { @@ -109,7 +109,7 @@ private Appendable getOut(Appendable out, ElementStack stack) { Appendable res = out; - TryElement tre = getTryElement(stack); + getTryElement(stack); Element e3 = stack.pop(); if (stack.isEmpty()) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/filter/CookieForwardingFilter.java 2011-08-17 14:26:13 UTC (rev 636) @@ -80,8 +80,8 @@ /** * Retrieves the wrapper to the CookieStore and forwards th * - * @see net.webassembletool.filter.Filter#postRequest(net.webassembletool.http.HttpClientResponse, - * net.webassembletool.output.Output) + * @see net.webassembletool.filter.Filter#postRequest(HttpClientResponse, + * ResourceContext) */ public void postRequest(HttpClientResponse response, ResourceContext context) { // Nothing to do Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/HttpClientResponse.java 2011-08-17 14:26:13 UTC (rev 636) @@ -56,6 +56,7 @@ private final String currentLocation; private final boolean error; private CookieStore cookieStore; + private InputStream content; public static HttpClientResponse create(HttpHost httpHost, HttpRequest httpRequest, HttpClient httpClient, @@ -130,9 +131,9 @@ } public void finish() { - if (httpEntity != null) { + if (content != null) { try { - httpEntity.consumeContent(); + content.close(); } catch (IOException e) { LOG.warn("Could not close response stream properly", e); } @@ -160,7 +161,8 @@ } public InputStream openStream() throws IllegalStateException, IOException { - return httpEntity.getContent(); + content = httpEntity.getContent(); + return content; } public String getHeader(String name) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStream.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStream.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStream.java 2011-08-17 14:26:13 UTC (rev 636) @@ -17,9 +17,6 @@ import java.io.IOException; import java.io.OutputStream; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - /** * Wrapper for servlet OutputStream that wraps underlying IOExceptions to be * able to distinguish them later from other kinds of IOExceptions @@ -28,8 +25,6 @@ * */ public class ResponseOutputStream extends OutputStream { - private final static Logger LOG = LoggerFactory - .getLogger(ResponseOutputStream.class); private final OutputStream outputStream; public ResponseOutputStream(OutputStream outputStream) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStreamException.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStreamException.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/http/ResponseOutputStreamException.java 2011-08-17 14:26:13 UTC (rev 636) @@ -16,8 +16,10 @@ import java.io.IOException; -public class ResponseOutputStreamException extends IOException { +import net.webassembletool.ResponseException; +public class ResponseOutputStreamException extends ResponseException { + private static final long serialVersionUID = 1L; public ResponseOutputStreamException(IOException cause) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/output/TextOnlyStringOutput.java 2011-08-17 14:26:13 UTC (rev 636) @@ -17,7 +17,7 @@ * whether content is of type text before buffering it. If no header indicates * whether this input is text the output is directly forwarded to binaryOutput * specified in construction time. For details on how text content is detected - * look at {@link ResourceUtils#isTextContentType(String)}. The + * look at {@link ResourceUtils#isTextContentType(String, List)}. The * {@link #hasTextBuffer()} method can be used to check whether the content has * been buffered. Notice that {@link #hasTextBuffer()} throws * IllegalStateException see its javadoc for details. Notice the nothing is done Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/renderers/ResourceFixupRenderer.java 2011-08-17 14:26:13 UTC (rev 636) @@ -14,8 +14,9 @@ import org.slf4j.LoggerFactory; /** - * This renderer fixes links to resources, images and pages in pages retrieved by the WAT. This enables use of WAT - * without any special modifications of the generated urls on the provider side. + * This renderer fixes links to resources, images and pages in pages retrieved + * by the WAT. This enables use of WAT without any special modifications of the + * generated urls on the provider side. * * All href and src attributes are processed, except javascript links. * @@ -23,14 +24,19 @@ * */ public class ResourceFixupRenderer implements Renderer { - private static final Logger LOG = LoggerFactory.getLogger(ResourceFixupRenderer.class); + private static final Logger LOG = LoggerFactory + .getLogger(ResourceFixupRenderer.class); public static final int ABSOLUTE = 0; public static final int RELATIVE = 1; public static final char SLASH = '/'; private static final Pattern URL_PATTERNS[] = new Pattern[] { - Pattern.compile("<([^>]+)(src|href|action|background)=\"([^\"]+)\"([^>]*)>", Pattern.CASE_INSENSITIVE), - Pattern.compile("<([^>]+)(src|href|action|background)='([^']+)'([^>]*)>", Pattern.CASE_INSENSITIVE) }; + Pattern.compile( + "<([^>]+)(src|href|action|background)=\"([^\"]+)\"([^>]*)>", + Pattern.CASE_INSENSITIVE), + Pattern.compile( + "<([^>]+)(src|href|action|background)='([^']+)'([^>]*)>", + Pattern.CASE_INSENSITIVE) }; private String contextAdd = null; private String contextRemove = null; private String pagePath = null; @@ -41,13 +47,16 @@ private final int mode; /** - * Creates a renderer which fixes urls. The domain name and the url path are computed from the full url made of - * baseUrl + pageFullPath. + * Creates a renderer which fixes urls. The domain name and the url path are + * computed from the full url made of baseUrl + pageFullPath. * - * If mode is ABSOLUTE, all relative urls will be replaced by the full urls : + * If mode is ABSOLUTE, all relative urls will be replaced by the full urls + * : * <ul> - * <li>images/image.png is replaced by http://server/context/images/image.png</li> - * <li>/context/images/image.png is replaced by http://server/context/images/image.png</li> + * <li>images/image.png is replaced by + * http://server/context/images/image.png</li> + * <li>/context/images/image.png is replaced by + * http://server/context/images/image.png</li> * </ul> * * If mode is RELATIVE, context will be added to relative urls : @@ -60,24 +69,26 @@ * @param pageFullPath * Page as used in tag lib or using API * @param mode - * ResourceFixupRenderer.ABSOLUTE or ResourceFixupRenderer.RELATIVE - * @param fixRelativeUrls - * defines whether relative URLs should be fixed + * ResourceFixupRenderer.ABSOLUTE or + * ResourceFixupRenderer.RELATIVE * @throws MalformedURLException */ - public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, String pageFullPath, int mode) - throws MalformedURLException { + public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, + String pageFullPath, int mode) throws MalformedURLException { this(baseUrl, visibleBaseUrl, pageFullPath, mode, true); } /** - * Creates a renderer which fixes urls. The domain name and the url path are computed from the full url made of - * baseUrl + pageFullPath. + * Creates a renderer which fixes urls. The domain name and the url path are + * computed from the full url made of baseUrl + pageFullPath. * - * If mode is ABSOLUTE, all relative urls will be replaced by the full urls : + * If mode is ABSOLUTE, all relative urls will be replaced by the full urls + * : * <ul> - * <li>images/image.png is replaced by http://server/context/images/image.png</li> - * <li>/context/images/image.png is replaced by http://server/context/images/image.png</li> + * <li>images/image.png is replaced by + * http://server/context/images/image.png</li> + * <li>/context/images/image.png is replaced by + * http://server/context/images/image.png</li> * </ul> * * If mode is RELATIVE, context will be added to relative urls : @@ -90,12 +101,14 @@ * @param pageFullPath * Page as used in tag lib or using API * @param mode - * ResourceFixupRenderer.ABSOLUTE or ResourceFixupRenderer.RELATIVE + * ResourceFixupRenderer.ABSOLUTE or + * ResourceFixupRenderer.RELATIVE * @param fixRelativeUrls * defines whether relative URLs should be fixed * @throws MalformedURLException */ - public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, String pageFullPath, int mode, boolean fixRelativeUrls) + public ResourceFixupRenderer(String baseUrl, String visibleBaseUrl, + String pageFullPath, int mode, boolean fixRelativeUrls) throws MalformedURLException { this.mode = mode; this.fixRelativeUrls = fixRelativeUrls; @@ -166,12 +179,14 @@ } if (replacementUrl != null && url.startsWith(baseUrl)) { - url = new StringBuffer(replacementUrl).append(url.substring(baseUrl.length())).toString(); + url = new StringBuffer(replacementUrl).append( + url.substring(baseUrl.length())).toString(); LOG.debug("fix absolute url: " + urlParam + " -> " + url); return url; } // Keep absolute and javascript urls untouched. - if (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("#") || url.startsWith("javascript:")) { + if (url.startsWith("http://") || url.startsWith("https://") + || url.startsWith("#") || url.startsWith("javascript:")) { LOG.debug("keeping absolute url: " + url); return url; } @@ -201,7 +216,8 @@ } /** {@inheritDoc} */ - public void render(ResourceContext requestContext, String src, Writer out) throws IOException { + public void render(ResourceContext requestContext, String src, Writer out) + throws IOException { out.write(replace(src).toString()); } @@ -223,8 +239,10 @@ while (m.find()) { LOG.trace("found match: " + m); String url = fixUrl(m.group(3)); - url = url.replaceAll("\\$", "\\\\\\$"); // replace '$' -> '\$' as it denotes group - StringBuffer tagReplacement = new StringBuffer("<$1$2=\"").append(url).append("\""); + url = url.replaceAll("\\$", "\\\\\\$"); // replace '$' -> '\$' + // as it denotes group + StringBuffer tagReplacement = new StringBuffer("<$1$2=\"") + .append(url).append("\""); if (m.groupCount() > 3) { tagReplacement.append("$4"); } Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/util/PropertiesUtil.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/util/PropertiesUtil.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/util/PropertiesUtil.java 2011-08-17 14:26:13 UTC (rev 636) @@ -25,7 +25,6 @@ * * @param properties * @param propertyName - * @return */ public static Collection<String> parseListedProperty(Properties properties, String propertyName) { Modified: trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java =================================================================== --- trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/main/java/net/webassembletool/util/Rfc2616.java 2011-08-17 14:26:13 UTC (rev 636) @@ -101,17 +101,19 @@ } /** - * Create a map of all headers and their values which are mentioned in the Vary header of "resource". + * Create a map of all headers and their values which are mentioned in the + * Vary header of "resource". * * <p> - * This method is used to get the headers from an existing cached resource. (Cache side) + * This method is used to get the headers from an existing cached resource. + * (Cache side) * * <p> - * When doing a new request on this resource, the cached resource can be used if all headers values contained in the - * returned map are exactly the same than the ones in the new request. + * When doing a new request on this resource, the cached resource can be + * used if all headers values contained in the returned map are exactly the + * same than the ones in the new request. * * @param resource - * @return */ public final static Map<String, String> getVary(Resource resource) { String varyString = resource.getHeader("Vary"); @@ -130,16 +132,18 @@ } /** - * Create a map of all headers and their values in resourceContext#getOriginalRequest() which are mentioned in the - * Vary header of "resource". + * Create a map of all headers and their values in + * resourceContext#getOriginalRequest() which are mentioned in the Vary + * header of "resource". * * <p> - * This method is used to get the headers from a new, upcoming request. (Client side) + * This method is used to get the headers from a new, upcoming request. + * (Client side) * * @param resource - * @return */ - public final static Map<String, String> getVary(ResourceContext resourceContext, Resource resource) { + public final static Map<String, String> getVary( + ResourceContext resourceContext, Resource resource) { HttpServletRequest request = resourceContext.getOriginalRequest(); String varyString = resource.getHeader("Vary"); if (varyString != null) { @@ -158,20 +162,22 @@ } /** - * Ensure that "resourceContext" matches "resource" according to the Vary header of "resource". "resource" is - * usually a cached resource. + * Ensure that "resourceContext" matches "resource" according to the Vary + * header of "resource". "resource" is usually a cached resource. * * @param resourceContext * @param resource * @return true if resource matches according to "Vary" */ - public final static boolean varyMatches(ResourceContext resourceContext, Resource resource) { + public final static boolean varyMatches(ResourceContext resourceContext, + Resource resource) { Map<String, String> vary = getVary(resource); if (vary == null) { return true; } else { HttpServletRequest request = resourceContext.getOriginalRequest(); - for (Iterator<Entry<String, String>> iterator = vary.entrySet().iterator(); iterator.hasNext();) { + for (Iterator<Entry<String, String>> iterator = vary.entrySet() + .iterator(); iterator.hasNext();) { Entry<String, String> header = iterator.next(); String key = header.getKey(); String value = header.getValue(); @@ -184,7 +190,8 @@ } } - public final static boolean needsValidation(ResourceContext resourceContext, Resource resource) { + public final static boolean needsValidation( + ResourceContext resourceContext, Resource resource) { if (resource == null) { return true; } @@ -212,7 +219,8 @@ return resource.getHeader("Etag"); } - public final static boolean etagMatches(ResourceContext resourceContext, Resource resource) { + public final static boolean etagMatches(ResourceContext resourceContext, + Resource resource) { String etag = getEtag(resource); if (etag == null) { return true; @@ -234,7 +242,8 @@ public final static Date getExpiration(Resource resource) { Date date = getDate(resource); Long maxAge = null; - CacheControlResponseHeader cacheControl = CacheControlResponseHeader.parse(resource); + CacheControlResponseHeader cacheControl = CacheControlResponseHeader + .parse(resource); if (cacheControl != null) { if (cacheControl.maxAge != null) { maxAge = cacheControl.maxAge; @@ -281,7 +290,8 @@ // expiration value SHOULD be no more than some fraction of the interval // since that time. A typical setting of this fraction might be 10%. if (lastModified != null) { - return new Date(date.getTime() + (date.getTime() - lastModified.getTime()) / 10); + return new Date(date.getTime() + + (date.getTime() - lastModified.getTime()) / 10); } return null; } @@ -291,17 +301,20 @@ } public final static boolean isCacheable(Resource resource) { - CacheControlResponseHeader cacheControl = CacheControlResponseHeader.parse(resource); + CacheControlResponseHeader cacheControl = CacheControlResponseHeader + .parse(resource); if (cacheControl == null) { // Check expire header, if not a valid date, assume no cache - if (resource.getHeader("Expires") != null && getDateHeader(resource, "Expires") == null) { + if (resource.getHeader("Expires") != null + && getDateHeader(resource, "Expires") == null) { return false; } } if (cacheControl._public) { return true; } - if (cacheControl._private || cacheControl.noCache || cacheControl.noStore || cacheControl.mustRevalidate + if (cacheControl._private || cacheControl.noCache + || cacheControl.noStore || cacheControl.mustRevalidate || cacheControl.proxyRevalidate || cacheControl.maxAge <= 0) { return false; } @@ -309,22 +322,26 @@ } /** - * A Resource is cacheable if the HTTP method is GET or HEAD according to HTTP specification. Additionnaly, if we - * are not in proxy mode, the driver will send a GET method as we are not proxying the original request but only - * including an element. In that case, the response is cacheable. + * A Resource is cacheable if the HTTP method is GET or HEAD according to + * HTTP specification. Additionnaly, if we are not in proxy mode, the driver + * will send a GET method as we are not proxying the original request but + * only including an element. In that case, the response is cacheable. * * @param context * @return true if the resource is cacheable */ public final static boolean isCacheable(ResourceContext context) { String method = context.getOriginalRequest().getMethod(); - return !context.isProxy() || "GET".equalsIgnoreCase(method) || "HEAD".equalsIgnoreCase(method); + return !context.isProxy() || "GET".equalsIgnoreCase(method) + || "HEAD".equalsIgnoreCase(method); } - public final static boolean matches(ResourceContext resourceContext, Resource cachedResponse) { + public final static boolean matches(ResourceContext resourceContext, + Resource cachedResponse) { String method = resourceContext.getOriginalRequest().getMethod(); - if (!"HEAD".equalsIgnoreCase(method) && !cachedResponse.hasResponseBody()) { + if (!"HEAD".equalsIgnoreCase(method) + && !cachedResponse.hasResponseBody()) { return false; } if (!etagMatches(resourceContext, cachedResponse)) { @@ -341,8 +358,10 @@ return convertDate(dateString); } - public final static Date getDateHeader(ResourceContext resourceContext, String name) { - String dateString = resourceContext.getOriginalRequest().getHeader(name); + public final static Date getDateHeader(ResourceContext resourceContext, + String name) { + String dateString = resourceContext.getOriginalRequest() + .getHeader(name); return convertDate(dateString); } @@ -367,16 +386,18 @@ String cacheControl = originalRequest.getHeader("Cache-control"); if (cacheControl != null) { cacheControl = cacheControl.toLowerCase(); - if (cacheControl.contains("no-cache") || cacheControl.contains("no-store") - || cacheControl.contains("must-revalidate") || cacheControl.contains("max-age=0")) { + if (cacheControl.contains("no-cache") + || cacheControl.contains("no-store") + || cacheControl.contains("must-revalidate") + || cacheControl.contains("max-age=0")) { return true; } } return false; } - public final static void renderResource(DriverConfiguration config, Resource resource, Output output) throws IOException, - HttpErrorPage { + public final static void renderResource(DriverConfiguration config, + Resource resource, Output output) throws IOException, HttpErrorPage { if (resource.isError()) { String errorPageContent; StringOutput stringOutput = new StringOutput(); @@ -388,8 +409,10 @@ output.open(); output.write(errorPageContent); output.close(); - throw new HttpErrorPage(resource.getStatusCode(), resource.getStatusMessage(), errorPageContent); - } else if (HttpServletResponse.SC_NOT_MODIFIED == resource.getStatusCode()) { + throw new HttpErrorPage(resource.getStatusCode(), + resource.getStatusMessage(), errorPageContent); + } else if (HttpServletResponse.SC_NOT_MODIFIED == resource + .getStatusCode()) { output.setStatusCode(resource.getStatusCode()); output.setStatusMessage(resource.getStatusMessage()); copyHeaders(config, resource, output); @@ -403,7 +426,8 @@ } /** Copies end-to-end headers from a resource to an output. */ - public final static void copyHeaders(DriverConfiguration config, Resource resource, Output output) { + public final static void copyHeaders(DriverConfiguration config, + Resource resource, Output output) { for (String headerName : resource.getHeaderNames()) { if (!config.isBlackListed(headerName)) { Collection<String> values = resource.getHeaders(headerName); Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/DriverFactoryTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/DriverFactoryTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/DriverFactoryTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -1,7 +1,7 @@ package net.webassembletool; import java.io.File; -import java.io.FileWriter; +import java.io.FileOutputStream; import java.io.IOException; import java.net.URL; import java.util.Properties; @@ -81,13 +81,14 @@ + "driver-ext.properties"); try { - FileWriter defaultWriter = new FileWriter(driverPropsFile); - FileWriter extWriter = new FileWriter(extendedPropsFile); - defaultProps.store(defaultWriter, "driver.properties"); - extendedProps.store(extWriter, "driver.properties"); + FileOutputStream defaultOutputStream = new FileOutputStream( + driverPropsFile); + FileOutputStream extOutputStream = new FileOutputStream(extendedPropsFile); + defaultProps.store(defaultOutputStream, "driver.properties"); + extendedProps.store(extOutputStream, "driver.properties"); - defaultWriter.close(); - extWriter.close(); + defaultOutputStream.close(); + extOutputStream.close(); } catch (IOException e) { fail(e.getMessage()); Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/DriverTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -155,7 +155,7 @@ localBase.mkdirs(); props.setProperty("localBase", localBase.getCanonicalPath()); - MockDriver provider = new MockDriver("mockTestProxy", props); + new MockDriver("mockTestProxy", props); String relUrl = "/wiki/"; final ByteArrayOutputStream outByte = new ByteArrayOutputStream(); @@ -298,8 +298,7 @@ props.setProperty("remoteUrlBase", "http://localhost:" + SERVER_PORT); props.setProperty("cacheRefreshDelay", "1"); - MockDriver provider = new MockDriver( - "mockTestProxyWithCacheRefreshDelay", props); + new MockDriver("mockTestProxyWithCacheRefreshDelay", props); String relUrl = "/wiki/"; final ByteArrayOutputStream outByte = new ByteArrayOutputStream(); ServletOutputStream out = new ServletOutputStream() { @@ -490,7 +489,7 @@ Properties props = new Properties(); props.setProperty("remoteUrlBase", "http://localhost:" + SERVER_PORT); props.setProperty("useCache", "false"); - MockDriver provider = new MockDriver("mockTestProxyWithoutCache", props); + new MockDriver("mockTestProxyWithoutCache", props); String relUrl = "/wiki/Portal:Contents"; final ByteArrayOutputStream outByte = new ByteArrayOutputStream(); ServletOutputStream out = new ServletOutputStream() { Deleted: trunk/webassembletool-core/src/test/java/net/webassembletool/RewriteProxyServletTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/RewriteProxyServletTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/RewriteProxyServletTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -1,15 +0,0 @@ -package net.webassembletool; - -import junit.framework.TestCase; - -import org.springframework.mock.web.MockHttpServletRequest; -import org.springframework.mock.web.MockHttpServletResponse; - -public class RewriteProxyServletTest extends TestCase { - - public void testSimple() { - - MockHttpServletRequest request = new MockHttpServletRequest(); - MockHttpServletResponse response = new MockHttpServletResponse(); - } -} Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/BaseCachedResourceTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -108,6 +108,8 @@ private static class MockBaseCachedResource extends BaseCachedResource { + private static final long serialVersionUID = 8431287643239757126L; + public MockBaseCachedResource(Map<String, Set<String>> headers, int statusCode, String statusMessage) { super(headers, statusCode, statusMessage); Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/CacheStorageTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -140,7 +140,8 @@ requestHeaders.put("Cache-Control", "max-age=0"); EasyMock.expect(originalRequest.getHeaderNames()) - .andReturn(new Vector(requestHeaders.keySet()).elements()) + .andReturn( + new Vector<String>(requestHeaders.keySet()).elements()) .anyTimes(); EasyMock.expect( originalRequest.getHeader((String) EasyMock.anyObject())) Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cache/SerializeCacheStorageTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cache/SerializeCacheStorageTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cache/SerializeCacheStorageTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -2,7 +2,6 @@ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.HashMap; @@ -57,7 +56,7 @@ ret.getContent()); ObjectInputStream oin = new ObjectInputStream(is); Object obj = oin.readObject(); - if(null != obj && CacheEntry.class.isInstance(obj)){ + if (null != obj && CacheEntry.class.isInstance(obj)) { CacheEntry.class.cast(obj).setStorage(this); } return obj; @@ -70,7 +69,6 @@ return null; } - public <T> T get(String key, Class<T> clazz) { Object ret = get(key); if (null != ret) { @@ -85,8 +83,8 @@ } private class SerializeCacheEntry { - private byte[] content; - private long ttl; + private final byte[] content; + private final long ttl; public SerializeCacheEntry(byte[] content, long ttl) { super(); @@ -104,7 +102,7 @@ } public void init(Properties properties) { - + } } Modified: trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/RequestCookieStoreTest.java =================================================================== --- trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/RequestCookieStoreTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-core/src/test/java/net/webassembletool/cookie/RequestCookieStoreTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -1,11 +1,7 @@ package net.webassembletool.cookie; import junit.framework.TestCase; -import net.webassembletool.Driver; -import net.webassembletool.ResourceContext; -import org.easymock.EasyMock; - public class RequestCookieStoreTest extends TestCase { public void testRewriteDomain() { assertEquals(null, RequestCookieStore.rewriteDomain("provider1", @@ -28,11 +24,4 @@ "www.foo.com")); } - public void testRewriteCookie() { - ResourceContext resourceContext = EasyMock - .createMock(ResourceContext.class); - Driver driver = EasyMock.createMock(Driver.class); - // TODO Add some tests - } - } Modified: trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeBlockComponent.java =================================================================== --- trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeBlockComponent.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeBlockComponent.java 2011-08-17 14:26:13 UTC (rev 636) @@ -18,48 +18,24 @@ public class IncludeBlockComponent extends UIComponentBase implements ReplaceableTag { + private Boolean displayErrorPage; private String name; private String page; private String provider; - private Boolean displayErrorPage; private Map<String, String> replaceRules = new HashMap<String, String>(); - public String getName() { - return UIComponentUtils.getParam(this, "name", name); - } - - public void setName(String name) { - this.name = name; - } - - public String getPage() { - return UIComponentUtils.getParam(this, "page", page); - } - - public void setPage(String page) { - this.page = page; - } - - public String getProvider() { - return UIComponentUtils.getParam(this, "provider", provider); - } - - public void setProvider(String provider) { - this.provider = provider; - } - - public boolean isDisplayErrorPage() { - return UIComponentUtils.getParam(this, "displayErrorPage", - displayErrorPage); - } - - public void setDisplayErrorPage(boolean displayErrorPage) { - this.displayErrorPage = displayErrorPage; - } - @Override - public String getFamily() { - return IncludeBlockComponent.class.getPackage().toString(); + public void encodeChildren(FacesContext context) throws IOException { + @SuppressWarnings("rawtypes") + Iterator it = getChildren().iterator(); + while (it.hasNext()) { + UIComponent child = (UIComponent) it.next(); + UIComponentUtils.renderChild(child); + if (child instanceof ReplaceComponent) { + ReplaceComponent rc = (ReplaceComponent) child; + replaceRules.put(rc.getExpression(), rc.getValue()); + } + } } @Override @@ -74,34 +50,43 @@ getName(), writer, request, response, replaceRules, null, false); } catch (HttpErrorPage re) { - if (isDisplayErrorPage()) + if (isDisplayErrorPage()) { writer.write(re.getMessage()); + } } } @Override - public void encodeChildren(FacesContext context) throws IOException { - @SuppressWarnings("unchecked") - Iterator it = getChildren().iterator(); - while (it.hasNext()) { - UIComponent child = (UIComponent) it.next(); - UIComponentUtils.renderChild(child); - if (child instanceof ReplaceComponent) { - ReplaceComponent rc = (ReplaceComponent) child; - replaceRules.put(rc.getExpression(), rc.getValue()); - } - } + public String getFamily() { + return IncludeBlockComponent.class.getPackage().toString(); } - public Map<String, String> getReplaceRules() { - return replaceRules; + public String getName() { + return UIComponentUtils.getParam(this, "name", name); } + public String getPage() { + return UIComponentUtils.getParam(this, "page", page); + } + + public String getProvider() { + return UIComponentUtils.getParam(this, "provider", provider); + } + @Override public boolean getRendersChildren() { return true; } + public Map<String, String> getReplaceRules() { + return replaceRules; + } + + public boolean isDisplayErrorPage() { + return UIComponentUtils.getParam(this, "displayErrorPage", + displayErrorPage); + } + @Override @SuppressWarnings("unchecked") public void restoreState(FacesContext context, Object state) { @@ -126,4 +111,20 @@ return values; } + public void setDisplayErrorPage(boolean displayErrorPage) { + this.displayErrorPage = displayErrorPage; + } + + public void setName(String name) { + this.name = name; + } + + public void setPage(String page) { + this.page = page; + } + + public void setProvider(String provider) { + this.provider = provider; + } + } Modified: trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeTemplateComponent.java =================================================================== --- trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeTemplateComponent.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/IncludeTemplateComponent.java 2011-08-17 14:26:13 UTC (rev 636) @@ -18,52 +18,33 @@ public class IncludeTemplateComponent extends UIComponentBase implements ReplaceableTag { + private Boolean displayErrorPage; private String name; private String page; + private final Map<String, String> params = new HashMap<String, String>(); private String provider; - private Boolean displayErrorPage; - private Map<String, String> replaceRules = new HashMap<String, String>(); - private Map<String, String> params = new HashMap<String, String>(); + private final Map<String, String> replaceRules = new HashMap<String, String>(); - public String getName() { - return UIComponentUtils.getParam(this, "name", name); - } + @Override + public void encodeChildren(FacesContext context) throws IOException { + @SuppressWarnings("rawtypes") + Iterator it = getChildren().iterator(); + while (it.hasNext()) { + UIComponent child = (UIComponent) it.next(); + UIComponentUtils.renderChild(child); + if (child instanceof ReplaceComponent) { + ReplaceComponent rc = (ReplaceComponent) child; + replaceRules.put(rc.getExpression(), rc.getValue()); + } + if (child instanceof IncludeParamComponent) { + IncludeParamComponent ip = (IncludeParamComponent) child; + params.put(ip.getName(), ip.getValue()); + } + } - public void setName(String name) { - this.name = name; } - public String getPage() { - return UIComponentUtils.getParam(this, "page", page); - } - - public void setPage(String page) { - this.page = page; - } - - public String getProvider() { - return UIComponentUtils.getParam(this, "provider", provider); - } - - public void setProvider(String provider) { - this.provider = provider; - } - - public boolean isDisplayErrorPage() { - return UIComponentUtils.getParam(this, "displayErrorPage", - displayErrorPage); - } - - public void setDisplayErrorPage(boolean displayErrorPage) { - this.displayErrorPage = displayErrorPage; - } - @Override - public String getFamily() { - return IncludeTemplateComponent.class.getPackage().toString(); - } - - @Override public void encodeEnd(FacesContext context) throws IOException { ResponseWriter writer = context.getResponseWriter(); HttpServletRequest request = (HttpServletRequest) context @@ -75,39 +56,43 @@ getName(), writer, request, response, params, replaceRules, null, false); } catch (HttpErrorPage re) { - if (isDisplayErrorPage()) + if (isDisplayErrorPage()) { writer.write(re.getMessage()); + } } } @Override - public void encodeChildren(FacesContext context) throws IOException { - @SuppressWarnings("unchecked") - Iterator it = getChildren().iterator(); - while (it.hasNext()) { - UIComponent child = (UIComponent) it.next(); - UIComponentUtils.renderChild(child); - if (child instanceof ReplaceComponent) { - ReplaceComponent rc = (ReplaceComponent) child; - replaceRules.put(rc.getExpression(), rc.getValue()); - } - if (child instanceof IncludeParamComponent) { - IncludeParamComponent ip = (IncludeParamComponent) child; - params.put(ip.getName(), ip.getValue()); - } - } + public String getFamily() { + return IncludeTemplateComponent.class.getPackage().toString(); + } + public String getName() { + return UIComponentUtils.getParam(this, "name", name); } - public Map<String, String> getReplaceRules() { - return replaceRules; + public String getPage() { + return UIComponentUtils.getParam(this, "page", page); } + public String getProvider() { + return UIComponentUtils.getParam(this, "provider", provider); + } + @Override public boolean getRendersChildren() { return true; } + public Map<String, String> getReplaceRules() { + return replaceRules; + } + + public boolean isDisplayErrorPage() { + return UIComponentUtils.getParam(this, "displayErrorPage", + displayErrorPage); + } + @Override public void restoreState(FacesContext context, Object state) { Object[] values = (Object[]) state; @@ -129,4 +114,20 @@ return values; } + public void setDisplayErrorPage(boolean displayErrorPage) { + this.displayErrorPage = displayErrorPage; + } + + public void setName(String name) { + this.name = name; + } + + public void setPage(String page) { + this.page = page; + } + + public void setProvider(String provider) { + this.provider = provider; + } + } Modified: trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/UIComponentUtils.java =================================================================== --- trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/UIComponentUtils.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-jsf/src/main/java/net/webassembletool/jsf/UIComponentUtils.java 2011-08-17 14:26:13 UTC (rev 636) @@ -10,18 +10,35 @@ import javax.faces.el.ValueBinding; public class UIComponentUtils { - public final static void renderChildren(UIComponent component) - throws IOException { - if (component.getChildCount() > 0) { - @SuppressWarnings("unchecked") - Iterator it = component.getChildren().iterator(); - while (it.hasNext()) { - UIComponent child = (UIComponent) it.next(); - renderChild(child); + public static Boolean getParam(UIComponent uiComponent, String name, + Boolean currentValue) { + if (currentValue != null) { + return currentValue; + } else { + FacesContext facesContext = FacesContext.getCurrentInstance(); + ValueBinding valueBinding = uiComponent.getValueBinding(name); + if (valueBinding != null) { + return Boolean.valueOf((String) valueBinding + .getValue(facesContext)); } } + return null; } + public final static String getParam(UIComponent uiComponent, String name, + String currentValue) { + if (currentValue != null) { + return currentValue; + } else { + FacesContext facesContext = FacesContext.getCurrentInstance(); + ValueBinding valueBinding = uiComponent.getValueBinding(name); + if (valueBinding != null) { + return (String) valueBinding.getValue(facesContext); + } + } + return null; + } + public final static void renderChild(UIComponent child) throws IOException { if (!(child.isRendered())) { return; @@ -36,6 +53,18 @@ child.encodeEnd(facesContext); } + public final static void renderChildren(UIComponent component) + throws IOException { + if (component.getChildCount() > 0) { + @SuppressWarnings("rawtypes") + Iterator it = component.getChildren().iterator(); + while (it.hasNext()) { + UIComponent child = (UIComponent) it.next(); + renderChild(child); + } + } + } + public final static String renderChildrenToString(UIComponent component) throws IOException { FacesContext facesContext = FacesContext.getCurrentInstance(); @@ -48,31 +77,4 @@ return stringWriter.toString(); } - public final static String getParam(UIComponent uiComponent, String name, - String currentValue) { - if (currentValue != null) { - return currentValue; - } else { - FacesContext facesContext = FacesContext.getCurrentInstance(); - ValueBinding valueBinding = uiComponent.getValueBinding(name); - if (valueBinding != null) - return (String) valueBinding.getValue(facesContext); - } - return null; - } - - public static Boolean getParam(UIComponent uiComponent, String name, - Boolean currentValue) { - if (currentValue != null) { - return currentValue; - } else { - FacesContext facesContext = FacesContext.getCurrentInstance(); - ValueBinding valueBinding = uiComponent.getValueBinding(name); - if (valueBinding != null) - return Boolean.valueOf((String) valueBinding - .getValue(facesContext)); - } - return null; - } - } Modified: trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java =================================================================== --- trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-oscache/src/test/java/net/webassembletool/cache/OSCacheStorageTest.java 2011-08-17 14:26:13 UTC (rev 636) @@ -2,13 +2,11 @@ import java.util.Collections; import java.util.HashMap; -import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Properties; import java.util.Set; import java.util.UUID; -import java.util.Vector; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -188,16 +186,6 @@ super(name, props); } - public void addResource(String relUrl, String content) { - StringOutput stringOutput = new StringOutput(); - stringOutput.setStatusCode(200); - stringOutput.setStatusMessage("OK"); - stringOutput.setCharsetName("ISO-8859-1"); - stringOutput.open(); - stringOutput.write(content); - resources.put(relUrl, stringOutput); - } - @Override protected StringOutput getResourceAsString(ResourceContext target) throws HttpErrorPage { Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/AttemptTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -8,6 +8,8 @@ public class AttemptTag extends BodyTagSupport { + private static final long serialVersionUID = 1L; + @Override public int doAfterBody() throws JspTagException { // find parent Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ChooseTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -4,6 +4,7 @@ public class ChooseTag extends TagSupport { + private static final long serialVersionUID = 1L; private boolean condition; private boolean hasCondition; Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/CommentTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -4,7 +4,7 @@ public class CommentTag extends BodyTagSupport { - private String text; + private static final long serialVersionUID = 1L; @Override public int doEndTag() { @@ -17,6 +17,6 @@ } public void setText(String text) { - this.text = ""; + // Just ignore } } Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/ExceptTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -8,6 +8,8 @@ public class ExceptTag extends BodyTagSupport { + private static final long serialVersionUID = 1L; + @Override public int doAfterBody() throws JspTagException { // find parent Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/IncludeTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -10,6 +10,7 @@ public class IncludeTag extends BodyTagSupport { + private static final long serialVersionUID = 1L; private String alt = null; private final String errorMessage = "An ESI Processor can fetch neither the 'src' nor the 'alt' sources"; private String onerror = null; Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/OtherwiseTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -8,6 +8,8 @@ public class OtherwiseTag extends BodyTagSupport { + private static final long serialVersionUID = 1L; + @Override public int doAfterBody() throws JspTagException { // find parent Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/RemoveTag.java 2011-08-17 14:26:13 UTC (rev 636) @@ -4,6 +4,8 @@ public class RemoveTag extends BodyTagSupport { + private static final long serialVersionUID = 1L; + @Override public int doAfterBody() { return SKIP_BODY; Modified: trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java =================================================================== --- trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java 2011-08-17 11:40:41 UTC (rev 635) +++ trunk/webassembletool-taglib/src/main/java/net/webassembletool/taglib/esi/TryTag.java 2011-08-17 14:26:13 UT... [truncated message content] |
From: <fxb...@us...> - 2011-08-18 12:29:15
|
Revision: 639 http://webassembletool.svn.sourceforge.net/webassembletool/?rev=639&view=rev Author: fxbonnet Date: 2011-08-18 12:29:08 +0000 (Thu, 18 Aug 2011) Log Message: ----------- [maven-release-plugin] prepare release webassembletool-2.19 Modified Paths: -------------- trunk/pom.xml trunk/webassembletool-app-aggregated1/pom.xml trunk/webassembletool-app-aggregated2/pom.xml trunk/webassembletool-app-aggregator/pom.xml trunk/webassembletool-app-cas/pom.xml trunk/webassembletool-app-casified-aggregated1/pom.xml trunk/webassembletool-app-casified-aggregated2/pom.xml trunk/webassembletool-app-casified-aggregator/pom.xml trunk/webassembletool-app-facelet/pom.xml trunk/webassembletool-app-master/pom.xml trunk/webassembletool-app-provider/pom.xml trunk/webassembletool-cas/pom.xml trunk/webassembletool-core/pom.xml trunk/webassembletool-distribution/pom.xml trunk/webassembletool-jsf/pom.xml trunk/webassembletool-maven/pom.xml trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml trunk/webassembletool-oscache/pom.xml trunk/webassembletool-taglib/pom.xml trunk/webassembletool-taglib-helper/pom.xml trunk/webassembletool-wicket/pom.xml Modified: trunk/pom.xml =================================================================== --- trunk/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,7 +4,7 @@ <artifactId>webassembletool</artifactId> <packaging>pom</packaging> <name>webassembletool</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <ciManagement> <system>continuum</system> <url>http://java.nantes.intranet:8082/continuum/projectGroupSummary.action?projectGroupId=36</url> @@ -139,9 +139,9 @@ </developer> </developers> <scm> - <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</connection> - <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/trunk</developerConnection> - <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/trunk/</url> + <connection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.19</connection> + <developerConnection>scm:svn:https://webassembletool.svn.sourceforge.net/svnroot/webassembletool/tags/webassembletool-2.19</developerConnection> + <url>http://webassembletool.svn.sourceforge.net/viewvc/webassembletool/tags/webassembletool-2.19</url> </scm> <build> <plugins> Modified: trunk/webassembletool-app-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated1/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-aggregated1/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated1</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-aggregated1</finalName> @@ -31,7 +31,7 @@ <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> </dependencies> </project> Modified: trunk/webassembletool-app-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-aggregated2/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-aggregated2/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregated2</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-aggregated2</finalName> Modified: trunk/webassembletool-app-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-aggregator/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-aggregator/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-aggregator</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-cas/pom.xml =================================================================== --- trunk/webassembletool-app-cas/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-cas/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-cas</artifactId> <packaging>war</packaging> <name>webassembletool-app-cas</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-cas</finalName> Modified: trunk/webassembletool-app-casified-aggregated1/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-casified-aggregated1/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated1</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated1</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated1</finalName> Modified: trunk/webassembletool-app-casified-aggregated2/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-casified-aggregated2/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregated2</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregated2</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-casified-aggregated2</finalName> Modified: trunk/webassembletool-app-casified-aggregator/pom.xml =================================================================== --- trunk/webassembletool-app-casified-aggregator/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-casified-aggregator/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-casified-aggregator</artifactId> <packaging>war</packaging> <name>webassembletool-app-casified-aggregator</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-facelet/pom.xml =================================================================== --- trunk/webassembletool-app-facelet/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-facelet/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-facelet</artifactId> <packaging>war</packaging> <name>webassembletool-app-facelet</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-master/pom.xml =================================================================== --- trunk/webassembletool-app-master/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-master/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-master</artifactId> <packaging>war</packaging> <name>webassembletool-app-master</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-app-provider/pom.xml =================================================================== --- trunk/webassembletool-app-provider/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-app-provider/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -4,11 +4,11 @@ <artifactId>webassembletool-app-provider</artifactId> <packaging>war</packaging> <name>webassembletool-app-provider</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> <finalName>webassembletool-app-provider</finalName> Modified: trunk/webassembletool-cas/pom.xml =================================================================== --- trunk/webassembletool-cas/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-cas/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> <name>webassembletool-cas</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-core/pom.xml =================================================================== --- trunk/webassembletool-core/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-core/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> <name>webassembletool-core</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> </build> Modified: trunk/webassembletool-distribution/pom.xml =================================================================== --- trunk/webassembletool-distribution/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-distribution/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,103 +3,103 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-distribution</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <name>webassembletool-distribution</name> <packaging>pom</packaging> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-core</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-cas</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-provider</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-master</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated1</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregated2</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-aggregator</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-cas</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated1</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregated2</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-casified-aggregator</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> <dependency> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-app-facelet</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <type>war</type> </dependency> </dependencies> Modified: trunk/webassembletool-jsf/pom.xml =================================================================== --- trunk/webassembletool-jsf/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-jsf/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-jsf</artifactId> <name>webassembletool-jsf</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-maven/pom.xml =================================================================== --- trunk/webassembletool-maven/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-maven/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -2,14 +2,14 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <packaging>pom</packaging> <name>webassembletool-maven</name> <description>ESIGate Maven Root Project</description> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <modules> <module>webassembletool-maven-skin</module> Modified: trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml =================================================================== --- trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-maven/webassembletool-maven-skin/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -2,12 +2,12 @@ <modelVersion>4.0.0</modelVersion> <groupId>net.sourceforge.webassembletool.maven</groupId> <artifactId>webassembletool-maven-skin</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <name>webassembletool-maven-skin</name> <description>ESIGate Site Skin</description> <parent> <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-maven</artifactId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> </project> \ No newline at end of file Modified: trunk/webassembletool-oscache/pom.xml =================================================================== --- trunk/webassembletool-oscache/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-oscache/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-oscache</artifactId> <name>webassembletool-oscache</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <build> </build> Modified: trunk/webassembletool-taglib/pom.xml =================================================================== --- trunk/webassembletool-taglib/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-taglib/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib</artifactId> <name>webassembletool-taglib</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-taglib-helper/pom.xml =================================================================== --- trunk/webassembletool-taglib-helper/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-taglib-helper/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-taglib-helper</artifactId> <name>webassembletool-taglib-helper</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <dependencies> <dependency> Modified: trunk/webassembletool-wicket/pom.xml =================================================================== --- trunk/webassembletool-wicket/pom.xml 2011-08-18 11:17:26 UTC (rev 638) +++ trunk/webassembletool-wicket/pom.xml 2011-08-18 12:29:08 UTC (rev 639) @@ -3,11 +3,11 @@ <groupId>net.sourceforge.webassembletool</groupId> <artifactId>webassembletool-wicket</artifactId> <name>webassembletool-wicket</name> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> <parent> <artifactId>webassembletool</artifactId> <groupId>net.sourceforge.webassembletool</groupId> - <version>2.19-SNAPSHOT</version> + <version>2.19</version> </parent> <description>WAT components for Apache Wicket.</description> <inceptionYear>2009</inceptionYear> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |