Author: taylor
Date: Sun Feb 18 18:49:45 2007
New Revision: 509066
URL: http://svn.apache.org/viewvc?view=rev&rev=509066
Log:
little utility portlet for managing out of service portlets
Added:
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/PortletTrackingPortlet.java
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/tracking.vm
Modified:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/jetspeed-portlet.xml
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/CommonPortletServices.java
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletTrackingManager.java
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-services.xml
Added:
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/PortletTrackingPortlet.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/PortletTrackingPortlet.java?view=auto&rev=509066
==============================================================================
---
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/PortletTrackingPortlet.java
(added)
+++
portals/jetspeed-2/trunk/applications/j2-admin/src/java/org/apache/jetspeed/portlets/tracking/PortletTrackingPortlet.java
Sun Feb 18 18:49:45 2007
@@ -0,0 +1,114 @@
+/*
+ * Copyright 2000-2001,2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.jetspeed.portlets.tracking;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.ActionResponse;
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.aggregator.PortletTrackingManager;
+import
org.apache.jetspeed.components.portletentity.PortletEntityAccessComponent;
+import org.apache.jetspeed.components.portletregistry.PortletRegistry;
+import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
+import org.apache.pluto.om.window.PortletWindow;
+import org.apache.portals.bridges.velocity.GenericVelocityPortlet;
+import org.apache.velocity.context.Context;
+
+public class PortletTrackingPortlet extends GenericVelocityPortlet
+{
+ private PortletEntityAccessComponent entityAccess;
+ private PortletRegistry registry;
+ private PortletTrackingManager trackingManager;
+
+
+ /* (non-Javadoc)
+ * @see
org.apache.portals.bridges.velocity.GenericVelocityPortlet#init(javax.portlet.PortletConfig)
+ */
+ public void init(PortletConfig config) throws PortletException
+ {
+ super.init(config);
+ PortletContext context = getPortletContext();
+ entityAccess =
(PortletEntityAccessComponent)context.getAttribute(CommonPortletServices.CPS_ENTITY_ACCESS_COMPONENT);
+ registry =
(PortletRegistry)context.getAttribute(CommonPortletServices.CPS_REGISTRY_COMPONENT);
+ trackingManager =
(PortletTrackingManager)context.getAttribute(CommonPortletServices.CPS_PORTLET_TRACKING_MANAGER);
+ }
+
+ public void doView(RenderRequest request, RenderResponse response) throws
PortletException, IOException
+ {
+ List outOfService = createList();
+ Context context = getContext(request);
+ context.put("outOfService", outOfService);
+ context.put("count", new Integer(outOfService.size()));
+ super.doView(request, response);
+ }
+
+ protected List createList()
+ {
+ List result = new ArrayList();
+ Iterator outOfService =
trackingManager.getOutOfServiceList().iterator();
+ Map portlets = new HashMap();
+ while (outOfService.hasNext())
+ {
+ PortletWindow window = (PortletWindow)outOfService.next();
+ String id = window.getId().toString();
+ PortletDefinitionComposite pd =
(PortletDefinitionComposite)window.getPortletEntity().getPortletDefinition();
+ String uniqueName = pd.getUniqueName();
+ if (!portlets.containsKey(uniqueName))
+ {
+ portlets.put(uniqueName, id);
+ result.add(pd);
+ }
+ }
+ return result;
+ }
+
+ public void processAction(ActionRequest request, ActionResponse
actionResponse)
+ throws PortletException, IOException
+ {
+ List result = new ArrayList();
+ Enumeration e = request.getParameterNames();
+ while (e.hasMoreElements())
+ {
+ String param = (String)e.nextElement();
+ if (param.indexOf("::") > 0)
+ {
+ String[] values = request.getParameterValues(param);
+ if (values[0] != null)
+ {
+ result.add(param);
+ }
+ }
+ }
+ if (result.size() > 0)
+ {
+ trackingManager.putIntoService(result);
+ }
+
+ }
+}
Modified:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/jetspeed-portlet.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/jetspeed-portlet.xml?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
---
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/jetspeed-portlet.xml
(original)
+++
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/jetspeed-portlet.xml
Sun Feb 18 18:49:45 2007
@@ -79,7 +79,8 @@
<js:service name="SSO" />
<js:service name='UserManager'/>
<js:service name='DecorationFactory'/>
- <js:service name='SecurityAccessController'/>
+ <js:service name='SecurityAccessController'/>
+ <js:service name='PortletTrackingManager'/>
</js:services>
</portlet-app>
Modified:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
---
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
(original)
+++
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/portlet.xml
Sun Feb 18 18:49:45 2007
@@ -1478,5 +1478,28 @@
</portlet-info>
</portlet>
+ <portlet>
+ <description>Portlet Tracking Manager</description>
+ <portlet-name>PortletTracking</portlet-name>
+ <display-name>Portlet Tracking Manager</display-name>
+
<portlet-class>org.apache.jetspeed.portlets.tracking.PortletTrackingPortlet</portlet-class>
+ <init-param>
+ <name>ViewPage</name>
+ <value>/WEB-INF/view/tracking/tracking.vm</value>
+ </init-param>
+ <expiration-cache>-1</expiration-cache>
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>VIEW</portlet-mode>
+ </supports>
+ <supported-locale>en</supported-locale>
+ <!-- resource-bundle></resource-bundle -->
+ <portlet-info>
+ <title>Portlet Tracking</title>
+ <short-title>Tracking</short-title>
+ <keywords>admin,tracking,out of service</keywords>
+ </portlet-info>
+ </portlet>
+
</portlet-app>
Added:
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/tracking.vm
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/tracking.vm?view=auto&rev=509066
==============================================================================
---
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/tracking.vm
(added)
+++
portals/jetspeed-2/trunk/applications/j2-admin/src/webapp/WEB-INF/view/tracking/tracking.vm
Sun Feb 18 18:49:45 2007
@@ -0,0 +1,36 @@
+<h3>List of Portlets out of Service: </h3>
+<p>
+#set ($formAction = $renderResponse.createActionURL())
+<form name='trackingForm' action="$formAction" method="post">
+<input type="submit" name="refresh" value="Refresh"
class="portlet-form-button"/>
+<input type="submit" name="checks" value="Put in Service"
class="portlet-form-button"/>
+</p>
+<p>Count: $!count</p>
+<br/>
+
+<table cellpadding=0 cellspacing=1 border=0 width='100%' >
+ <input type="hidden" name="group" value="$!group">
+ <input type="submit" id="removeChecked$Targets"
name="group.action.Remove_Checked_$Targets"
value='$MESSAGES.getString("removechecked$targets")' style="display:none"/>
+ <tr>
+ <th width="10"></th>
+ <th align='center' class="portlet-section-header" nowrap>
+ Portlet
+ </th>
+ </tr>
+#foreach ( $entry in $outOfService )
+ <tr>
+#if ($velocityCount % 2 == 0)
+#set($rowstyle = "portlet-section-body")
+#else
+#set($rowstyle = "portlet-section-alternate")
+#end
+ <td class="$rowstyle" width="10">
+ <input type="checkbox" name="$entry.UniqueName"/>
+ </td>
+ <td class="$rowstyle" nowrap>
+ <div align="center">$entry.UniqueName</div>
+ </td>
+ </tr>
+#end
+</table>
+</form>
Modified:
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
---
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
(original)
+++
portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/aggregator/impl/PortletTrackingManagerImpl.java
Sun Feb 18 18:49:45 2007
@@ -110,7 +110,7 @@
public void setExpiration(PortletWindow window, long expiration)
{
RenderTrackable trackable = (RenderTrackable)window.getPortletEntity();
- trackable.setExpiration(expiration * 1000);
+ trackable.setExpiration(expiration); // * 1000);
}
public void takeOutOfService(PortletWindow window)
@@ -125,13 +125,32 @@
trackable.setRenderTimeoutCount(0);
}
+ public void putIntoService(List fullPortletNames)
+ {
+ Iterator windows = this.windowAccessor.getPortletWindows().iterator();
+ while (windows.hasNext())
+ {
+ Map.Entry entry = (Map.Entry)windows.next();
+ PortletWindow window = (PortletWindow)entry.getValue();
+ PortletDefinitionComposite pd =
(PortletDefinitionComposite)window.getPortletEntity().getPortletDefinition();
+ for (int ix = 0; ix < fullPortletNames.size(); ix++)
+ {
+ if (pd.getUniqueName().equals(fullPortletNames.get(ix)))
+ {
+ putIntoService(window);
+ }
+ }
+ }
+ }
+
public List getOutOfServiceList(String fullPortletName)
{
List outs = new ArrayList();
Iterator windows = this.windowAccessor.getPortletWindows().iterator();
while (windows.hasNext())
{
- PortletWindow window = (PortletWindow)windows.next();
+ Map.Entry entry = (Map.Entry)windows.next();
+ PortletWindow window = (PortletWindow)entry.getValue();
PortletDefinitionComposite pd =
(PortletDefinitionComposite)window.getPortletEntity().getPortletDefinition();
if (pd.getUniqueName().equals(fullPortletName) &&
isOutOfService(window))
{
@@ -147,10 +166,11 @@
Iterator windows = this.windowAccessor.getPortletWindows().iterator();
while (windows.hasNext())
{
- PortletWindow window = (PortletWindow)windows.next();
+ Map.Entry entry = (Map.Entry)windows.next();
+ PortletWindow window = (PortletWindow)entry.getValue();
if (isOutOfService(window))
{
- outs.add(window);
+ outs.add(window);
}
}
return outs;
Modified:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/CommonPortletServices.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/CommonPortletServices.java?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/CommonPortletServices.java
(original)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/CommonPortletServices.java
Sun Feb 18 18:49:45 2007
@@ -46,4 +46,5 @@
public final static String CPS_DECORATION_FACTORY =
"cps:DecorationFactory";
public final static String CPS_PASSWORD_ENCODER_COMPONENT =
"cps:PasswordEncodingService";
public final static String CPS_SECURITY_ACCESS_CONTROLLER =
"cps:SecurityAccessController";
+ public final static String CPS_PORTLET_TRACKING_MANAGER =
"cps:PortletTrackingManager";
}
Modified:
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletTrackingManager.java
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletTrackingManager.java?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
---
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletTrackingManager.java
(original)
+++
portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/aggregator/PortletTrackingManager.java
Sun Feb 18 18:49:45 2007
@@ -58,6 +58,11 @@
void takeOutOfService(PortletWindow window);
void putIntoService(PortletWindow window);
+ /**
+ *
+ * @param fullPortletNames a list of Strings of full portlet names
+ */
+ void putIntoService(List fullPortletNames);
List getOutOfServiceList(String fullPortletName);
Modified:
portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-services.xml
URL:
http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-services.xml?view=diff&rev=509066&r1=509065&r2=509066
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-services.xml
(original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/jetspeed-services.xml
Sun Feb 18 18:49:45 2007
@@ -101,6 +101,9 @@
<entry key="SecurityAccessController">
<ref bean="org.apache.jetspeed.security.SecurityAccessController"/>
</entry>
+ <entry key="PortletTrackingManager">
+ <ref bean="org.apache.jetspeed.aggregator.PortletTrackingManager"/>
+ </entry>
<!-- first uncomment the below service bean in security-spi-atn.xml
<entry key="PasswordEncodingService">
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]