Author: lryan
Date: Mon Nov 10 17:31:38 2008
New Revision: 712902

URL: http://svn.apache.org/viewvc?rev=712902&view=rev
Log:
Make <html> tag detection and parsing case-insensitive and slightly faster

Modified:
    
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingContentRewriter.java

Modified: 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingContentRewriter.java
URL: 
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingContentRewriter.java?rev=712902&r1=712901&r2=712902&view=diff
==============================================================================
--- 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingContentRewriter.java
 (original)
+++ 
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/render/RenderingContentRewriter.java
 Mon Nov 10 17:31:38 2008
@@ -81,7 +81,8 @@
 public class RenderingContentRewriter implements ContentRewriter {
   private static final Logger LOG = 
Logger.getLogger(RenderingContentRewriter.class.getName());
   static final Pattern DOCUMENT_SPLIT_PATTERN = Pattern.compile(
-      "(.*)<head>(.*?)<\\/head>(?:.*)<body(.*?)>(.*?)<\\/body>(?:.*)", 
Pattern.DOTALL);
+      "(.*)<head>(.*?)<\\/head>(?:.*)<body(.*?)>(.*?)<\\/body>(?:.*)", 
Pattern.DOTALL |
+      Pattern.CASE_INSENSITIVE);
   static final int BEFORE_HEAD_GROUP = 1;
   static final int HEAD_GROUP = 2;
   static final int BODY_ATTRIBUTES_GROUP = 3;
@@ -389,7 +390,9 @@
    */
   private GadgetContent createGadgetContent(Gadget gadget, MutableContent 
mutableContent) {
     String doc = mutableContent.getContent();
-    if (doc.contains("<html>") && doc.contains("</html>")) {
+    // Quick check for full document tags
+    String head = doc.substring(0, Math.min(150, doc.length()));
+    if (head.contains("<HTML") || head.contains("<html")) {
       Matcher matcher = DOCUMENT_SPLIT_PATTERN.matcher(doc);
       if (matcher.matches()) {
         GadgetContent content = new GadgetContent();


Reply via email to