[ 
https://issues.apache.org/jira/browse/SHINDIG-571?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

John Hjelmstad resolved SHINDIG-571.
------------------------------------

    Resolution: Fixed

> Create shared intermediary representation of mutable HTML content for Gadget 
> and HttpResponse to use.
> -----------------------------------------------------------------------------------------------------
>
>                 Key: SHINDIG-571
>                 URL: https://issues.apache.org/jira/browse/SHINDIG-571
>             Project: Shindig
>          Issue Type: Sub-task
>          Components: Common Components (Java)
>            Reporter: John Hjelmstad
>            Assignee: John Hjelmstad
>
> While it still appears to make sense to have two Content Rewriter APIs, one 
> for HTTP responses (makeRequest et al) and one for Gadget rewriting, it 
> remains true that most rewriters will treat each relatively the same: obtain 
> contents, manipulate, output.
> As much code as possible should be shared for each rewriter API. This is 
> facilitated by a shared notion of mutable HTML content - the type that's 
> actually rewritten.
> Thus I'd like to create a new class, MutableHtmlContent, which has the 
> following methods:
> MutableHtmlContent.setContent(String)
> String MutableHtmlContent.getContent()
> ParsedHtmlNode MutableHtmlContent.getParseTree()
> ...in other words, the content manipulation methods from Gadget pulled out 
> into a context-agnostic object that simply maintains a String and its 
> parse-tree equivalent.
> This code will be shared between Gadget and HttpResponse. At present, this 
> arrangement seems convenient:
> 1. Gadget extends MutableHtmlContent. It could simply contain a 
> MutableHtmlContent object as well, but doing so would simply have it passing 
> through same-named methods. This can be changed later if conditions dictate.
> 2. Augment HttpResponse with a new method: 
> HttpResponse.getMutableHtmlContent(), which returns a MutableHtmlContent if 
> the MIME type is appropriate. A "force" option could be provided here as well.
> Given these changes, rewriters can easily be implemented in terms of helper 
> methods that consume and manipulate MutableHtmlContent in the majority case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to