Modified: 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/desktop/core.src.js
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/desktop/core.src.js?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/desktop/core.src.js
 (original)
+++ 
portals/jetspeed-2/portal/trunk/applications/jetspeed/src/main/webapp/javascript/jetspeed/desktop/core.src.js
 Mon Apr 20 18:31:00 2009
@@ -491,16 +491,42 @@
 {
     var jsObj = jetspeed;
     var headTagElems = [];
+    var headTagElemsByMergeHint = [];
     var childTagElems = jsObj.getHead().childNodes;
     
     // retrieve the current head tag elements
     if (childTagElems)
     {
+        var reDojoRequires = /^header\.dojo\.requires/;
+        var reDojo = /^header\.dojo\./;
+        
         for (var i = 0; i < childTagElems.length; i++)
         {
             if (childTagElems[i].nodeType == dojo.dom.ELEMENT_NODE)
             {
                 headTagElems.push(childTagElems[i]);
+                if (childTagElems[i].tagName == "SCRIPT")
+                {
+                    var mergeHint = 
childTagElems[i].getAttribute("org.apache.portals.portal.page.head.element.contribution.merge.hint");
+                    // TODO: HeaderResourceImpl needs to write some dojo 
sections separately.
+                    if (mergeHint == "header.dojo.parameters")
+                    {
+                        mergeHint = "header.dojo.config";
+                    }
+                    else if (reDojoRequires.test(mergeHint))
+                    {
+                        mergeHint = "header.dojo.requires";
+                    }
+                    
+                    if (mergeHint && reDojo.test(mergeHint))
+                    {
+                        if (!headTagElemsByMergeHint[mergeHint])
+                        {
+                            headTagElemsByMergeHint[mergeHint] = [];
+                        }
+                        
headTagElemsByMergeHint[mergeHint].push(childTagElems[i]);
+                    }
+                }
             }
         }
     }
@@ -519,6 +545,7 @@
         if (!id) id = childNode.getAttribute("ID");
         if (!id) id = childNode.getAttribute("Id");
         if (!id) id = childNode.getAttribute("iD");
+        var mergeHint = 
childNode.getAttribute("org.apache.portals.portal.page.head.element.contribution.merge.hint");
         var tagName = childNode.tagName;
         var matched = false;
 
@@ -539,35 +566,87 @@
         
         if (!matched)
         {
-            // not matched, insert the new head element in the current 
insertionIndex and increase the insertion index.
-            var headElem = jetspeed.createHeadElement(childNode);
-            
-            if (jsObj.UAie)
+            if (headTagElemsByMergeHint[mergeHint])
             {
-                if (tagName == "SCRIPT" && childNode.text)
+                if (jsObj.UAie)
                 {
-                    headElem.text = childNode.value;
+                    var headTagElemsByMergeHintArray = 
headTagElemsByMergeHint[mergeHint];
+                    var lines = childNode.text.split(/\n/);
+                    for (var i = 0; i < lines.length; i++)
+                    {
+                        var found = false;
+                        for (var j = 0; j < 
headTagElemsByMergeHintArray.length; j++)
+                        {
+                            var existingLine = 
headTagElemsByMergeHintArray[j].text;
+                            if (existingLine && existingLine.indexOf(lines[i]) 
>= 0)
+                            {
+                                found = true;
+                                break;
+                            }
+                        }
+                        if (!found)
+                        {
+                            var lastLine = 
headTagElemsByMergeHintArray[headTagElemsByMergeHintArray.length - 1].text;
+                            
headTagElemsByMergeHintArray[headTagElemsByMergeHintArray.length - 1].text = 
(lastLine ? lastLine + "\r\n": "") + lines[i];
+                        }
+                    }
                 }
-                else if (tagName == "STYLE" && childNode.text)
+                else if (childNode.textContent)
                 {
-                    headElem.styleSheet.cssText = childNode.text;
+                    var headTagElemsByMergeHintArray = 
headTagElemsByMergeHint[mergeHint];
+                    var lines = childNode.textContent.split(/\n/);
+                    for (var i = 0; i < lines.length; i++)
+                    {
+                        var found = false;
+                        for (var j = 0; j < 
headTagElemsByMergeHintArray.length; j++)
+                        {
+                            var existingLine = 
headTagElemsByMergeHintArray.textContent;
+                            if (existingLine && existingLine.indexOf(lines[i]) 
>= 0)
+                            {
+                                found = true;
+                                break;
+                            }
+                        }
+                        if (!found)
+                        {
+                            var lastLine = 
headTagElemsByMergeHintArray[headTagElemsByMergeHintArray.length - 
1].textContent;
+                            
headTagElemsByMergeHintArray[headTagElemsByMergeHintArray.length - 
1].textContent = (lastLine ? lastLine + "\r\n": "") + lines[i];
+                        }
+                    }
                 }
             }
-            else if (childNode.textContent)
-            {
-                
headElem.appendChild(document.createTextNode(childNode.textContent));
-            }
-            
-            if (headTagElems[insertionIndex])
-            {
-                jsObj.getHead().insertBefore(headElem, 
headTagElems[insertionIndex]);
-            }
             else
             {
-                jsObj.getHead().appendChild(scriptElem);
+                // not matched, insert the new head element in the current 
insertionIndex and increase the insertion index.
+                var headElem = jetspeed.createHeadElement(childNode);
+                
+                if (jsObj.UAie)
+                {
+                    if (tagName == "SCRIPT" && childNode.text)
+                    {
+                        headElem.text = childNode.value;
+                    }
+                    else if (tagName == "STYLE" && childNode.text)
+                    {
+                        headElem.styleSheet.cssText = childNode.text;
+                    }
+                }
+                else if (childNode.textContent)
+                {
+                    
headElem.appendChild(document.createTextNode(childNode.textContent));
+                }
+                
+                if (headTagElems[insertionIndex])
+                {
+                    jsObj.getHead().insertBefore(headElem, 
headTagElems[insertionIndex]);
+                }
+                else
+                {
+                    jsObj.getHead().appendChild(scriptElem);
+                }
+                
+                ++insertionIndex;
             }
-            
-            ++insertionIndex; 
         }
     }
 }

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-header-resource/src/main/java/org/apache/jetspeed/headerresource/impl/HeaderResourceImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-header-resource/src/main/java/org/apache/jetspeed/headerresource/impl/HeaderResourceImpl.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-header-resource/src/main/java/org/apache/jetspeed/headerresource/impl/HeaderResourceImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-header-resource/src/main/java/org/apache/jetspeed/headerresource/impl/HeaderResourceImpl.java
 Mon Apr 20 18:31:00 2009
@@ -16,24 +16,24 @@
  */
 package org.apache.jetspeed.headerresource.impl;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.LinkedHashSet;
-import java.util.Map;
 import java.util.List;
-import java.util.ArrayList;
+import java.util.Map;
 import java.util.Set;
 
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.container.url.BasePortalURL;
 import org.apache.jetspeed.headerresource.HeaderResource;
 import org.apache.jetspeed.headerresource.HeaderResourceLib;
+import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
 import org.apache.jetspeed.request.RequestContext;
 
-import org.apache.commons.lang.StringUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
 /**
  * Default implementation for HeaderResource
  * 
@@ -346,7 +346,9 @@
                         {
                             if ( requiresScriptBlock && ! inScriptBlock )
                             {
-                                header.append( "<script 
language=\"JavaScript\" type=\"text/javascript\">" ).append( EOL );
+                                header.append( "<script 
language=\"JavaScript\" type=\"text/javascript\" ")
+                                .append( 
HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_ATTRIBUTE 
).append( "=\"" )
+                                .append( headerName ).append( "\">" ).append( 
EOL );
                                 inScriptBlock = true;
                             }
                             else if ( requiresStyleBlock && ! inStyleBlock )
@@ -1007,7 +1009,8 @@
         StringBuffer initOut = new StringBuffer();
         // <script type="text/javascript" 
src='http://localhost:8080/jetspeed/javascript/dojo/dojo.js'></script>
         // 
src='$jetspeedDesktop.getPortalResourceUrl("/javascript/dojo/dojo.js")'
-        initOut.append( "<script type=\"text/javascript\" src=\"" ).append( 
getPortalResourceUrl( dojoGetPath(), false ) ).append( "dojo.js" ).append( 
"\"></script>" );
+        initOut.append( "<script type=\"text/javascript\" src=\"" ).append( 
getPortalResourceUrl( dojoGetPath(), false ) ).append( "dojo.js" )
+        .append( "\" 
id=\"").append(HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_ELEMENT_ID_DOJO_LIBRARY_INCLUDE).append("\"></script>"
 );
         return initOut.toString();
     }
     protected String dojoGenerateWriteincludes()

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/HeaderAggregatorImpl.java
 Mon Apr 20 18:31:00 2009
@@ -17,20 +17,17 @@
 package org.apache.jetspeed.aggregator.impl;
 
 import java.io.IOException;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.HashMap;
-import java.util.List;
 import java.util.ArrayList;
 import java.util.Collections;
-
-import javax.portlet.Portlet;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
+import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.aggregator.PageAggregator;
-import org.apache.jetspeed.container.state.NavigationalState;
 import org.apache.jetspeed.container.url.BasePortalURL;
 import org.apache.jetspeed.decoration.DecorationFactory;
 import org.apache.jetspeed.exception.JetspeedException;
@@ -40,14 +37,7 @@
 import org.apache.jetspeed.headerresource.HeaderResourceLib;
 import org.apache.jetspeed.om.page.ContentFragment;
 import org.apache.jetspeed.om.page.ContentPage;
-import org.apache.jetspeed.om.portlet.PortletApplication;
-import org.apache.jetspeed.portlet.PortletHeaderRequest;
-import org.apache.jetspeed.portlet.PortletHeaderResponse;
-import org.apache.jetspeed.portlet.SupportsHeaderPhase;
 import org.apache.jetspeed.request.RequestContext;
-import org.apache.jetspeed.PortalReservedParameters;
-import org.apache.jetspeed.om.portlet.PortletDefinition;
-import org.apache.jetspeed.container.PortletWindow;
 
 /**
  * HeaderAggregator builds the content required to render a page of portlets.
@@ -1046,94 +1036,8 @@
         {
             context.setAttribute( 
PortalReservedParameters.HEADER_NAMED_RESOURCE_REGISTRY_ATTRIBUTE, 
getHeaderResourceRegistry() );
         }
-        
-        // handle maximized state
-        boolean atLeastOneHasHeaderPhase = false;
-        NavigationalState nav = context.getPortalURL().getNavigationalState();
-        PortletWindow window = nav.getMaximizedWindow();
-        if ( null != window )
-        {
-            ContentFragment maxedContentFragment = 
page.getContentFragmentById( window.getId().toString() );
-            if ( maxedContentFragment != null )
-            {
-                atLeastOneHasHeaderPhase = renderHeaderFragment( context, 
maxedContentFragment );
-            }
-        }
-        else
-        {
-            atLeastOneHasHeaderPhase = aggregateAndRender( root, context, page 
);
-        }
-        
-        if ( atLeastOneHasHeaderPhase )
-        {
-            
-        }
     }
 
-    protected boolean aggregateAndRender( ContentFragment fragment, 
RequestContext context, ContentPage page )
-    {
-        boolean atLeastOneHasHeaderPhase = false;
-        boolean hasHeaderPhase = false;
-        if ( fragment.getContentFragments() != null && 
fragment.getContentFragments().size() > 0 )
-        {
-            Iterator children = fragment.getContentFragments().iterator();
-            while (children.hasNext())
-            {
-                ContentFragment child = (ContentFragment) children.next();
-                if ( ! "hidden".equals( fragment.getState() ) )
-                {
-                    hasHeaderPhase = aggregateAndRender( child, context, page 
);
-                    if ( hasHeaderPhase )
-                    {
-                        atLeastOneHasHeaderPhase = true;
-                    }
-                }
-            }
-        }
-        hasHeaderPhase = renderHeaderFragment( context, fragment );
-        if ( hasHeaderPhase )
-        {
-            atLeastOneHasHeaderPhase = true;
-        }
-        return atLeastOneHasHeaderPhase;
-    }
-    
-    protected boolean renderHeaderFragment( RequestContext context, 
ContentFragment fragment )
-    {
-        try
-        {
-            if ( !fragment.getType().equals( ContentFragment.LAYOUT ) )
-            {
-                PortletWindow portletWindow = context.getPortletWindow( 
fragment );
-                if (portletWindow.isValid())
-                {
-                    PortletDefinition pd = 
portletWindow.getPortletDefinition();
-                    if ( 
getPortletFactory().isPortletApplicationRegistered((PortletApplication)pd.getApplication()
 ) )
-                    {
-                        String portletApplicationContextPath = 
pd.getApplication().getContextPath();
-                        Portlet portlet = 
getPortletFactory().getPortletInstance( 
context.getConfig().getServletContext().getContext( 
portletApplicationContextPath ), pd ).getRealPortlet();            
-                        if ( portlet != null && portlet instanceof 
SupportsHeaderPhase )
-                        {
-                            log.debug( "renderHeaderFragment: " + 
pd.getPortletName() + " supports header phase" );
-                            
-                            HeaderResource hr = 
getHeaderResourceFactory().getHeaderResource( context, this.baseUrlAccess, 
isDesktop(), getHeaderConfiguration() );
-                            PortletHeaderRequest headerRequest = new 
PortletHeaderRequestImpl( context, portletWindow, portletApplicationContextPath 
);
-                            PortletHeaderResponse headerResponse = new 
PortletHeaderResponseImpl( context, hr, isDesktop(), getHeaderConfiguration(), 
getHeaderResourceRegistry() );
-                            ((SupportsHeaderPhase)portlet).doHeader( 
headerRequest, headerResponse );
-                            return true;
-                        }
-                    }
-                }
-            }
-            return false;
-        }
-        catch ( Exception e )
-        {
-            log.error( "renderHeaderFragment failed", e );
-        }
-        return false;
-    }
-    
     protected PortletFactory getPortletFactory()
     {
         return this.factory;

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/velocity/JetspeedPowerToolImpl.java
 Mon Apr 20 18:31:00 2009
@@ -885,10 +885,16 @@
     public String getDojoConfigurations()
     {
         HttpServletRequest request = getRequestContext().getRequest();
-        StringBuilder sb = new StringBuilder(128);
-        sb.append("var djConfig = {jetspeed: {}};\r\n");
-        sb.append("djConfig.baseScriptUri = \"" + request.getContextPath() + 
"/javascript/dojo/\";\r\n");
-        sb.append("djConfig.jetspeed.servletPath = \"" + 
request.getServletPath() + "\";");
+        StringBuilder sb = new StringBuilder(256);
+        
+        sb.append("<script language=\"JavaScript\" type=\"text/javascript\" ")
+        
.append(HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_ATTRIBUTE).append("=\"")
+        
.append(HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_CONFIG).append("\">\r\n")
+        .append("var djConfig = {jetspeed: {}};\r\n")
+        .append("djConfig.baseScriptUri = \"" + request.getContextPath() + 
"/javascript/dojo/\";\r\n")
+        .append("djConfig.jetspeed.servletPath = \"" + 
request.getServletPath() + "\";\r\n")
+        .append("</script>");
+        
         return sb.toString();
     }
 

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/headerresource/HeaderResource.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/headerresource/HeaderResource.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/headerresource/HeaderResource.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/headerresource/HeaderResource.java
 Mon Apr 20 18:31:00 2009
@@ -18,6 +18,8 @@
 
 import java.util.Map;
 
+import org.apache.jetspeed.portlet.HeaderPhaseSupportConstants;
+
 /**
  * HeaderResource has tags information to put them into &lt;head&gt; tag.
  * 
@@ -63,11 +65,11 @@
     public final static String HEADER_SECTION_NAME_PREFIX_DOJO = 
"header.dojo.";
     public final static String HEADER_SECTION_DOJO_PARAMETERS = 
"header.dojo.parameters";
     public final static String HEADER_SECTION_DOJO_PREINIT = 
"header.dojo.preinit";
-    public final static String HEADER_SECTION_DOJO_CONFIG = 
"header.dojo.config";
+    public final static String HEADER_SECTION_DOJO_CONFIG = 
HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_CONFIG;
     public final static String HEADER_SECTION_DOJO_INIT = "header.dojo.init";
-    public final static String HEADER_SECTION_DOJO_REQUIRES_CORE = 
"header.dojo.requires.core";
+    public final static String HEADER_SECTION_DOJO_REQUIRES_CORE = 
HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_REQUIRES
 + ".core";
     public final static String HEADER_SECTION_DOJO_MODULES_PATH = 
"header.dojo.modules.path";
-    public final static String HEADER_SECTION_DOJO_REQUIRES_MODULES = 
"header.dojo.requires.modules";
+    public final static String HEADER_SECTION_DOJO_REQUIRES_MODULES = 
HeaderPhaseSupportConstants.HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_REQUIRES
 + ".modules";
     public final static String HEADER_SECTION_DOJO_WRITEINCLUDES = 
"header.dojo.writeincludes";
     public final static String HEADER_SECTION_DOJO_MODULES_NAMESPACE = 
"header.dojo.modules.namespace";
     public final static String HEADER_SECTION_DOJO_STYLE_BODYEXPAND = 
"header.dojo.style.bodyexpand";

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/HeaderPhaseSupportConstants.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/HeaderPhaseSupportConstants.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/HeaderPhaseSupportConstants.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/HeaderPhaseSupportConstants.java
 Mon Apr 20 18:31:00 2009
@@ -16,10 +16,51 @@
  */
 package org.apache.jetspeed.portlet;
 
+/**
+ * This interface defines some constants for attribute name or value of 
contributed head elements.
+ * This constant values are used by Jetspeed portal to optimize the head 
elements aggregation.
+ * <P>
+ * Jetspeed can look up 'id' attribute value not to include redundant head 
element.
+ * Also, Jetspeed can look up 
'org.apache.portals.portal.page.head.element.contribution.merge.hint' attribute 
value
+ * to merge all the text content of elements containing 
'org.apache.portals.portal.page.head.element.contribution.merge.hint'
+ * attribute with same value.
+ * </P>
+ * <P>
+ * For example, if the following elements are contributed by a portlet,
+ * <XMP>
+ * <script id="header.dojo.library.include" language="JavaScript" 
src="/script/dojo/dojo.js"></script>
+ * <script language="JavaScript" 
org.apache.portals.portal.page.head.element.contribution.merge.hint="header.dojo.requires">
+ * dojo.require("dojo.io.*");
+ * </script>
+ * </XMP>
+ * and, if the following elements are contributed by another portlet,
+ * <XMP>
+ * <script id="header.dojo.library.include" language="JavaScript" 
src="/script/dojo/dojo.js"></script>
+ * <script language="JavaScript" 
org.apache.portals.portal.page.head.element.contribution.merge.hint="header.dojo.requires">
+ * dojo.require("dojo.lang.*");
+ * </script>
+ * </XMP>
+ * then, the result aggregated elements are to be like the following:
+ * <XMP>
+ * <script id="header.dojo.library.include" language="JavaScript" 
src="/script/dojo/dojo.js"></script>
+ * <script language="JavaScript" 
org.apache.portals.portal.page.head.element.contribution.merge.hint="header.dojo.requires">
+ * dojo.require("dojo.io.*");
+ * dojo.require("dojo.lang.*");
+ * </script>
+ * </XMP>
+ * </P>
+ * 
+ * @version $Id$
+ */
 public interface HeaderPhaseSupportConstants
 {
 
     /**
+     * An ID attribute value for dojo library inclusion which can be used in 
head elements merging by portal.  
+     */
+    public static final String 
HEAD_ELEMENT_CONTRIBUTION_ELEMENT_ID_DOJO_LIBRARY_INCLUDE = 
"header.dojo.library.include";
+    
+    /**
      * An attribute name of head element contributed to the portal page 
aggregation by a portlet.
      * The value of this attribute can be used by portal to merge contents of 
each contributed head element
      * into centralized element(s).
@@ -31,13 +72,13 @@
     public static final String HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_ATTRIBUTE 
= "org.apache.portals.portal.page.head.element.contribution.merge.hint";
 
     /**
-     * An attribute value for key hint which can be used in head elements 
merging by portal.  
+     * An attribute value for key hint to aggregate dojo configuration which 
can be used in head elements merging by portal.  
      */
-    public static final String 
HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_REQUIRE = "dojo.require";
-
+    public static final String 
HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_CONFIG = "header.dojo.config";
+    
     /**
-     * An ID attribute value which can be used in head elements merging by 
portal.  
+     * An attribute value for key hint to aggregate dojo require statements 
which can be used in head elements merging by portal.  
      */
-    public static final String 
HEAD_ELEMENT_CONTRIBUTION_ELEMENT_ID_DOJO_LIBRARY_INCLUDE = 
"dojo.library.include";
-    
+    public static final String 
HEAD_ELEMENT_CONTRIBUTION_MERGE_HINT_KEY_DOJO_REQUIRES = "header.dojo.requires";
+
 }

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderRequest.java
 Mon Apr 20 18:31:00 2009
@@ -18,6 +18,13 @@
 
 import javax.portlet.PortletPreferences;
 
+/**
+ * This interface is deprecated because head contribution from portlet is 
possible
+ * by the native portlet API in a JSR-286 compliant portal.
+ * 
+ * @version $Id$
+ * @deprecated
+ */
 public interface PortletHeaderRequest
 {    
     /**

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/PortletHeaderResponse.java
 Mon Apr 20 18:31:00 2009
@@ -22,7 +22,13 @@
 
 import org.apache.jetspeed.headerresource.HeaderResource;
 
-
+/**
+ * This interface is deprecated because head contribution from portlet is 
possible
+ * by the native portlet API in a JSR-286 compliant portal.
+ * 
+ * @version $Id$
+ * @deprecated
+ */
 public interface PortletHeaderResponse
 {    
     /**

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java?rev=766785&r1=766784&r2=766785&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/portlet/SupportsHeaderPhase.java
 Mon Apr 20 18:31:00 2009
@@ -19,9 +19,14 @@
 import javax.portlet.PortletException;
 
 /**
- * Indicates that a portlet supports the pre-286 header phase  
- *
+ * Indicates that a portlet supports the pre-286 header phase.
+ * <P>
+ * This interface is deprecated because head contribution from portlet is 
possible
+ * by the native portlet API in a JSR-286 compliant portal.
+ * </P>
  * @author <a href="mailto:[email protected]";>David Sean Taylor</a>
+ * @version $Id$
+ * @deprecated
  */
 public interface SupportsHeaderPhase
 {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to