From: <bra...@us...> - 2009-11-06 02:37:22
|
Revision: 2896 http://archive-access.svn.sourceforge.net/archive-access/?rev=2896&view=rev Author: bradtofel Date: 2009-11-06 02:37:07 +0000 (Fri, 06 Nov 2009) Log Message: ----------- Improved comments, and now includes many more examples of the various Archival URL replay options. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml Added Paths: ----------- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlSaxReplay.xml Modified: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml 2009-11-06 02:28:19 UTC (rev 2895) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlReplay.xml 2009-11-06 02:37:07 UTC (rev 2896) @@ -2,23 +2,59 @@ <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" + default-init-method="init"> +<!-- + The following bean controls how HTTP headers from original documents + are returned to clients. This configuration will cause + all original HTTP headers to be prefixed with "X-Archive-Orig-". To return + the original HTTP headers as-is (except for Content-Length) comment out the + "prefix" property. This has significant implications on caching and cookies. + --> <bean id="archivalurlhttpheaderprocessor" class="org.archive.wayback.replay.RedirectRewritingHttpHeaderProcessor"> <property name="prefix" value="X-Archive-Orig-" /> </bean> - <bean id="archivaldateredirectingreplayrenderer" class="org.archive.wayback.replay.DateRedirectReplayRenderer" /> +<!-- + Renderer for both CSS and Javascript, causing a comment containing + archive inforation to be inserted in the returned documents. + --> <bean id="archivalcssreplayrenderer" class="org.archive.wayback.archivalurl.ArchivalUrlCSSReplayRenderer"> <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> + <property name="jspInserts"> + <list> + <value>/WEB-INF/replay/ArchiveCSSComment.jsp</value> + </list> + </property> </bean> + <bean id="archivaljsreplayrenderer" class="org.archive.wayback.archivalurl.ArchivalUrlJSReplayRenderer"> + <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> + <property name="jspInserts"> + <list> + <value>/WEB-INF/replay/ArchiveCSSComment.jsp</value> + </list> + </property> + </bean> +<!-- + Renderer which rewrites mms:// URLs inside ASX mime types to be http:// + --> <bean id="archivalasxreplayrenderer" class="org.archive.wayback.archivalurl.ArchivalUrlASXReplayRenderer"> <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> </bean> + +<!-- + Renderer which returns documents as-is. Suitable for images, binary formats, + and anything else Wayback doesn't know how to handle yet. + --> <bean id="archivaltransparentreplayrenderer" class="org.archive.wayback.replay.TransparentReplayRenderer"> <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> </bean> +<!-- + The following bean is an example of the experimental Regex-Based + server-side HTML rewriting Renderer + --> <bean id="archivalserversidehtmlreplayrenderer" class="org.archive.wayback.archivalurl.ServerSideHTMLReplayRenderer"> <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> <property name="jspInserts"> @@ -31,14 +67,40 @@ </property> </bean> +<!-- + Custom rules for rewriting HTML content using a SAX parser, for fine-tuned + server-side rewriting. + --> + <import resource="ArchivalUrlSaxReplay.xml"/> + +<!-- + The following bean is an example of the new SAX based rewriting renderer. It + also uses a pluggable character encoding detector, which could allow clients + to issue special requests to Wayback to alter the detection strategy. + --> + <bean id="archivalsaxreplayrenderer" class="org.archive.wayback.archivalurl.ArchivalUrlSAXRewriteReplayRenderer"> + <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> + <property name="charsetDetector"> + <bean class="org.archive.wayback.replay.charset.RotatingCharsetDetector"/> + </property> + <property name="rules" ref="archivalSAXRules"/> + </bean> + +<!-- + The following bean is an example of the "classic" or most mature ArchivalUrl + Replay system - it uses a combination of server-side regex rewriting and + a client-side javascript insert to rewite links within an HTML page. +--> <bean id="archivalclientsidehtmlreplayrenderer" class="org.archive.wayback.archivalurl.ClientSideHTMLReplayRenderer"> <constructor-arg><ref bean="archivalurlhttpheaderprocessor"/></constructor-arg> <property name="jspInserts"> <list> + <value>/WEB-INF/replay/Timeline.jsp</value> +<!-- + <value>/WEB-INF/replay/DisclaimerHead.jsp</value> <value>/WEB-INF/replay/ArchiveComment.jsp</value> <value>/WEB-INF/replay/ClientSideJSInsert.jsp</value> <value>/WEB-INF/replay/Disclaimer.jsp</value> -<!-- <value>/WEB-INF/replay/Timeline.jsp</value> <value>/WEB-INF/replay/DebugBanner.jsp</value> --> @@ -46,15 +108,36 @@ </property> </bean> +<!-- + The main Archival URL replay dispatcher. It uses a list of Selectors to + determine which ReplayRenderer should be used for each document. + --> <bean id="archivalurlreplay" class="org.archive.wayback.replay.SelectorReplayDispatcher"> <property name="selectors"> <list> <!-- REDIRECT IF NOT EXACT DATE --> <bean class="org.archive.wayback.replay.selector.DateMismatchSelector"> - <property name="renderer" ref="archivaldateredirectingreplayrenderer"/> + <property name="renderer"> + <bean class="org.archive.wayback.archivalurl.ArchivalUrlDateRedirectReplayRenderer" /> + </property> </bean> + <!-- Explicit (via "cs_" flag) CSS REPLAY --> + <bean class="org.archive.wayback.replay.selector.CSSRequestSelector"> + <property name="renderer" ref="archivalcssreplayrenderer"/> + </bean> + + <!-- Explicit (via "js_" flag) JS REPLAY --> + <bean class="org.archive.wayback.replay.selector.JSRequestSelector"> + <property name="renderer" ref="archivaljsreplayrenderer"/> + </bean> + + <!-- Explicit (via "im_" flag) IMG REPLAY --> + <bean class="org.archive.wayback.replay.selector.IMGRequestSelector"> + <property name="renderer" ref="archivaltransparentreplayrenderer"/> + </bean> + <!-- HTML REPLAY --> <bean class="org.archive.wayback.replay.selector.MimeTypeSelector"> <property name="mimeContains"> @@ -63,8 +146,12 @@ <value>application/xhtml</value> </list> </property> + <property name="renderer" ref="archivalsaxreplayrenderer"/> +<!-- <property name="renderer" ref="archivalclientsidehtmlreplayrenderer"/> + --> </bean> + <!-- CSS REPLAY --> <bean class="org.archive.wayback.replay.selector.MimeTypeSelector"> Added: trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlSaxReplay.xml =================================================================== --- trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlSaxReplay.xml (rev 0) +++ trunk/archive-access/projects/wayback/wayback-webapp/src/main/webapp/WEB-INF/ArchivalUrlSaxReplay.xml 2009-11-06 02:37:07 UTC (rev 2896) @@ -0,0 +1,163 @@ +<?xml version="1.0" encoding="UTF-8"?> +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.springframework.org/schema/beans + http://www.springframework.org/schema/beans/spring-beans-2.5.xsd" + default-init-method="init"> + + + <bean id="anchorURLRewriter" + class="org.archive.wayback.replay.html.transformer.URLStringTransformer"> + </bean> + <bean id="imageURLRewriter" + class="org.archive.wayback.replay.html.transformer.URLStringTransformer"> + <property name="flags" value="im_" /> + </bean> + <bean id="jsURLRewriter" + class="org.archive.wayback.replay.html.transformer.URLStringTransformer"> + <property name="flags" value="js_" /> + </bean> + <bean id="cssURLRewriter" + class="org.archive.wayback.replay.html.transformer.URLStringTransformer"> + <property name="flags" value="cs_" /> + </bean> + <bean id="baseHrefHandler" + class="org.archive.wayback.replay.html.transformer.BaseHrefStringTransformer"> + </bean> + <bean id="cssAttributeHandler" + class="org.archive.wayback.replay.html.transformer.InlineCSSStringTransformer"> + </bean> + <bean id="cssBlockHandler" + class="org.archive.wayback.replay.html.transformer.BlockCSSStringTransformer"> + </bean> + + + + <bean id="archivalSAXRules" + class="org.archive.wayback.replay.html.ReplayParseEventDelegator"> + <property name="parserVisitors"> + <list> + <bean class="org.archive.wayback.replay.html.rules.CommentRule"> + </bean> + <bean + class="org.archive.wayback.replay.html.rules.AfterBodyStartTagJSPExecRule"> + <property name="jspPath" value="/WEB-INF/replay/DebugBanner.jsp" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="A" /> + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="IMG" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="imageURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="SCRIPT" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="jsURLRewriter" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="BASE" /> + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="baseHrefHandler" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="modifyAttributeName" value="BACKGROUND" /> + <property name="transformer" ref="imageURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="FRAME" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="INPUT" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="imageURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="IFRAME" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="META" /> + <property name="modifyAttributeName" value="URL" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="FORM" /> + <property name="modifyAttributeName" value="ACTION" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + + <property name="tagName" value="LINK" /> + <property name="whereAttributeName" value="rel" /> + <property name="whereAttributeValue" value="Stylesheet" /> + + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="cssURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="LINK" /> + <property name="whereAttributeName" value="rel" /> + <property name="whereAttributeValue" value="shortcut icon" /> + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="imageURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="LINK" /> + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="AREA" /> + <property name="modifyAttributeName" value="HREF" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="OBJECT" /> + <property name="modifyAttributeName" value="CODEBASE" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="OBJECT" /> + <property name="modifyAttributeName" value="CDATA" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="APPLET" /> + <property name="modifyAttributeName" value="CODEBASE" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="APPLET" /> + <property name="modifyAttributeName" value="ARCHIVE" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="tagName" value="EMBED" /> + <property name="modifyAttributeName" value="SRC" /> + <property name="transformer" ref="anchorURLRewriter" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.StyleContentRule"> + <property name="transformer" ref="cssBlockHandler" /> + </bean> + <bean class="org.archive.wayback.replay.html.rules.AttributeModifyingRule"> + <property name="modifyAttributeName" value="style" /> + <property name="transformer" ref="cssAttributeHandler" /> + </bean> + </list> + </property> + </bean> + +</beans> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |