Author: woonsan
Date: Thu Dec 24 18:16:13 2009
New Revision: 893797

URL: http://svn.apache.org/viewvc?rev=893797&view=rev
Log:
JS2-1091: Admin functionality to mark a portlet as out-of-service.
If administrator set a metadata, named "service.out", with value of "true" for 
a portlet definition, then the portlet will be displayed as "out-of-service".
The out-of-service message can be customized in the spring assembly 
configuration, "aggregation.xml", for the bean of "PortletRendererImpl" by 
adding the 'outOfServiceMessage' property like the following example:

        <property name="outOfServiceMessage">
            <value><![CDATA[
            <em>Sorry, this portlet is available now.</em>
            ]]></value>
        </property>

Modified:
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
    
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java?rev=893797&r1=893796&r2=893797&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletRendererImpl.java
 Thu Dec 24 18:16:13 2009
@@ -87,9 +87,14 @@
     protected JetspeedCache portletContentCache;
     
     /**
-     * OutOfService Cache
+     * The default OutOfService message
      */
-    public static final String OUT_OF_SERVICE_MESSAGE = "Portlet is not 
responding and has been taken out of service.";
+    public static final String DEFAULT_OUT_OF_SERVICE_MESSAGE = "Portlet is 
not responding and has been taken out of service.";
+    
+    /**
+     * The OutOfService message
+     */
+    protected String outOfServiceMessage = DEFAULT_OUT_OF_SERVICE_MESSAGE;
     
     public PortletRendererImpl(PortletContainer container, 
                                WorkerMonitor workMonitor,
@@ -130,7 +135,12 @@
     {
         // this.monitor.shutdown ?
     }
-
+    
+    public void setOutOfServiceMessage(String outOfServiceMessage)
+    {
+        this.outOfServiceMessage = outOfServiceMessage;
+    }
+    
     /**
      * Render the specified Page fragment. Result is returned in the
      * PortletResponse.
@@ -220,7 +230,7 @@
             if (portletTracking.isOutOfService(portletWindow))
             {
                 log.info("Taking portlet out of service: " + 
portletDefinition.getUniqueName() + " for window " + portletWindow.getId());
-                fragment.overrideRenderedContent(OUT_OF_SERVICE_MESSAGE);
+                fragment.overrideRenderedContent(outOfServiceMessage);
                 return null;
             }
             int expirationCache = getExpirationCache(portletDefinition);

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java?rev=893797&r1=893796&r2=893797&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
 Thu Dec 24 18:16:13 2009
@@ -17,20 +17,25 @@
 package org.apache.jetspeed.aggregator.impl;
 
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.commons.lang.BooleanUtils;
+import org.apache.jetspeed.PortalReservedParameters;
 import org.apache.jetspeed.aggregator.PortletTrackingManager;
 import org.apache.jetspeed.aggregator.RenderTrackable;
 import org.apache.jetspeed.container.PortletWindow;
+import org.apache.jetspeed.om.portlet.LocalizedField;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
 
 /**
  * Tracks out of service status for portlets
  *  
  * @author <a href="mailto:tay...@apache.org";>David Sean Taylor</a>
- * @version $Id: $
+ * @version $Id$
  */
 public class PortletTrackingManagerImpl implements PortletTrackingManager
 {
@@ -82,6 +87,18 @@
         {
             return true;
         }
+        
+        PortletDefinition def = window.getPortletDefinition();
+        Collection<LocalizedField> fields = 
def.getMetadata().getFields(PortalReservedParameters.PORTLET_EXTENDED_DESCRIPTOR_OUT_OF_SERVICE);
+        
+        if (fields != null && !fields.isEmpty())
+        {
+            if (BooleanUtils.toBoolean(fields.iterator().next().getValue()))
+            {
+                return true;
+            }
+        }
+        
         return false;
     }
     

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java?rev=893797&r1=893796&r2=893797&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/PortalReservedParameters.java
 Thu Dec 24 18:16:13 2009
@@ -107,6 +107,13 @@
     public static final String PORTLET_EXTENDED_DESCRIPTOR_RENDER_TIMEOUT = 
"timeout";
     
     /**
+     * A portlet can have a specific setting for the state of out-of-service 
that the portal will
+     * give up on rendering the portlet.
+     * The value is 'true' or 'false'.
+     */
+    public static final String PORTLET_EXTENDED_DESCRIPTOR_OUT_OF_SERVICE = 
"service.out";
+    
+    /**
      * A portlet can have a specific setting for the preview image.
      * The portlet preview image url 
      */



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to