Author: hlship
Date: Fri Jul 15 00:12:54 2011
New Revision: 1146928

URL: http://svn.apache.org/viewvc?rev=1146928&view=rev
Log:
TAP5-1366: Refactoring and insert <meta> just before existing <meta>, or at end 
of <head>

Modified:
    
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java

Modified: 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
URL: 
http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java?rev=1146928&r1=1146927&r2=1146928&view=diff
==============================================================================
--- 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
 (original)
+++ 
tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DocumentLinkerImpl.java
 Fri Jul 15 00:12:54 2011
@@ -116,12 +116,27 @@ public class DocumentLinkerImpl implemen
         if (!omitGeneratorMetaTag && isHtmlRoot)
         {
             Element head = findOrCreateElement(root, "head", true);
-            head.element("meta", "name", "generator", "content", 
tapestryBanner);
+
+            Element existingMeta = head.find("meta");
+
+            addElementBefore(head, existingMeta, "meta", "name", "generator", 
"content", tapestryBanner);
         }
 
         addScriptElements(root);
     }
 
+    private static void addElementBefore(Element container, Element 
insertionPoint, String name, String... namesAndValues)
+    {
+        if (insertionPoint == null)
+        {
+            container.element(name, namesAndValues);
+            return;
+        }
+
+        insertionPoint.elementBefore(name, namesAndValues);
+    }
+
+
     private void addScriptElements(Element root)
     {
         if (scripts.isEmpty() && !hasDynamicScript)
@@ -245,11 +260,7 @@ public class DocumentLinkerImpl implemen
         {
             public void work(String scriptURL)
             {
-                Element e =
-                        insertionPoint == null ? headElement.element("script") 
:
-                                insertionPoint.elementBefore("script");
-
-                e.attributes("type", "text/javascript", "src", scriptURL);
+                addElementBefore(headElement, insertionPoint, "script", 
"type", "text/javascript", "src", scriptURL);
             }
         };
 


Reply via email to