You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by ta...@apache.org on 2009/01/28 07:49:53 UTC

svn commit: r738380 - in /portals/jetspeed-2/applications/j2-admin/trunk/src: main/java/org/apache/jetspeed/portlets/tracking/ webapp/WEB-INF/

Author: taylor
Date: Wed Jan 28 06:49:53 2009
New Revision: 738380

URL: http://svn.apache.org/viewvc?rev=738380&view=rev
Log:
https://issues.apache.org/jira/browse/JS2-880
contribution from Niels van Kampenhout
I know how to take portlets out of service, will test

Added:
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java   (with props)
    portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties   (with props)
Modified:
    portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml
    portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/web.xml

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java?rev=738380&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java Wed Jan 28 06:49:53 2009
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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 org.apache.jetspeed.portlets.wicket.AbstractAdminWebApplication;
+
+public class WicketPortletTrackingApplication extends AbstractAdminWebApplication {
+
+    @Override
+    public Class getHomePage() {
+        return WicketPortletTrackingPortlet.class;
+    }
+
+}

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingApplication.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html?rev=738380&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html Wed Jan 28 06:49:53 2009
@@ -0,0 +1,50 @@
+<!-- 
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You 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.
+-->
+<html xmlns="http://www.w3.org/1999/xhtml" >
+
+    <span wicket:id="header">List of Portlets out of Service:</span>
+
+    <form wicket:id="trackingForm">
+    
+        <input type="submit" wicket:id="refresh"/>
+        <input type="submit" wicket:id="putInService"/>
+    
+        <p>
+            <span wicket:id="countLabel">Count: </span>
+            <span wicket:id="count">count</span>
+        </p>
+        
+        <p>&nbsp;</p>
+    
+        <span wicket:id="checkGroup">
+	        <table cellpadding="2" cellspacing="2" border="0">
+	            <tr>
+	                <th width="30">
+	                    <input type="checkbox" wicket:id="groupSelector"/>
+	                </th>
+	                <th><span wicket:id="portletsLabel">Portlets</span></th>
+	            </tr>
+	            <tr wicket:id="portlets">
+	                <td><input type="checkbox" wicket:id="checkbox"/></td>
+	                <td><span wicket:id="name"></span></td>
+	            </tr>
+	        </table>
+        </span>
+
+    </form>
+
+</html>

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.html
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java?rev=738380&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java Wed Jan 28 06:49:53 2009
@@ -0,0 +1,145 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.portlet.PortletRequest;
+
+import org.apache.jetspeed.CommonPortletServices;
+import org.apache.jetspeed.aggregator.PortletTrackingManager;
+import org.apache.jetspeed.container.PortletWindow;
+import org.apache.jetspeed.om.portlet.PortletDefinition;
+import org.apache.wicket.RequestContext;
+import org.apache.wicket.markup.html.WebPage;
+import org.apache.wicket.markup.html.basic.Label;
+import org.apache.wicket.markup.html.form.Button;
+import org.apache.wicket.markup.html.form.Check;
+import org.apache.wicket.markup.html.form.CheckGroup;
+import org.apache.wicket.markup.html.form.CheckGroupSelector;
+import org.apache.wicket.markup.html.form.Form;
+import org.apache.wicket.markup.html.list.ListItem;
+import org.apache.wicket.markup.html.list.PageableListView;
+import org.apache.wicket.model.Model;
+import org.apache.wicket.model.PropertyModel;
+import org.apache.wicket.model.ResourceModel;
+import org.apache.wicket.protocol.http.portlet.PortletRequestContext;
+
+public class WicketPortletTrackingPortlet extends WebPage {
+
+    private transient PortletTrackingManager trackingManager;
+    private transient List<PortletDefinition> outOfService;
+
+    public WicketPortletTrackingPortlet() {
+        super();
+
+        trackingManager = getPortletTrackingManager();
+        outOfService = createList();
+     
+        add(new Label("header", new ResourceModel("tracker.header")));
+        
+        Form trackingForm = new Form("trackingForm");
+        add(trackingForm);
+
+        final CheckGroup<List> checkGroup = new CheckGroup<List>("checkGroup", new ArrayList());
+        trackingForm.add(checkGroup);
+        
+        Button refresh = new Button("refresh", new ResourceModel("tracker.refresh")) {
+
+            @Override
+            public void onSubmit() {
+                outOfService = createList();
+                checkGroup.getModelObject().clear();
+            }
+            
+        };
+        trackingForm.add(refresh);
+        
+        Button putInService = new Button("putInService", new ResourceModel("tracker.putInService")) {
+
+            @Override
+            public void onSubmit() {
+                List<String> portletNames = new ArrayList<String>();
+                List selection = (List) checkGroup.getModelObject();
+                for (Object object : selection) {
+                    PortletDefinition pd = (PortletDefinition) object;
+                    portletNames.add(pd.getUniqueName());
+                }
+                if (portletNames.size() > 0) {
+                    trackingManager.putIntoService(portletNames);
+                    outOfService = createList();
+                    checkGroup.getModelObject().clear();
+                }
+            }
+            
+        };
+        trackingForm.add(putInService);
+        
+        trackingForm.add(new Label("countLabel", new ResourceModel("tracker.count")));
+        Label countValue = new Label("count", new Model(outOfService.size()));
+        trackingForm.add(countValue);
+        
+        checkGroup.add(new Label("portletsLabel", new ResourceModel("tracker.portlets")));
+        
+        PageableListView portletsList = new PageableListView("portlets", new PropertyModel(this, "outOfService"), 10)
+        {
+            protected void populateItem(ListItem item)
+            {
+                final PortletDefinition portletDefinition = (PortletDefinition) item.getModelObject();
+                item.add(new Check("checkbox", item.getModel()));
+                item.add(new Label("name", new PropertyModel(portletDefinition, "uniqueName")));
+            }
+        };
+        
+        checkGroup.add(new CheckGroupSelector("groupSelector"));
+        checkGroup.add(portletsList);
+        
+    }
+
+    protected List<PortletDefinition> createList()
+    {
+        List<PortletDefinition> result = new ArrayList<PortletDefinition>();
+        Iterator<PortletWindow> outOfService = trackingManager.getOutOfServiceList().iterator();
+        Map<String,String> portlets = new HashMap<String,String>();
+        while (outOfService.hasNext())
+        {
+            PortletWindow window = outOfService.next();
+            String id = window.getId().toString();
+            PortletDefinition pd = (PortletDefinition)window.getPortletEntity().getPortletDefinition();
+            String uniqueName = pd.getUniqueName();
+            if (!portlets.containsKey(uniqueName))
+            {
+                portlets.put(uniqueName, id);
+                result.add(pd);              
+            }
+        }
+        return result;
+    }
+    
+    protected PortletRequest getPortletRequest() {
+        return ((PortletRequestContext) RequestContext.get()).getPortletRequest();
+    }
+
+    protected PortletTrackingManager getPortletTrackingManager() {
+        return (PortletTrackingManager) getPortletRequest().getAttribute(CommonPortletServices.CPS_PORTLET_TRACKING_MANAGER);
+    }
+
+}

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.java
------------------------------------------------------------------------------
    svn:keywords = Id

Added: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties?rev=738380&view=auto
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties (added)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties Wed Jan 28 06:49:53 2009
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+tracker.header=List of Portlets out of Service:
+tracker.refresh=Refresh
+tracker.putInService=Put in service
+tracker.count=Count: 
+tracker.portlets=Portlets
\ No newline at end of file

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: portals/jetspeed-2/applications/j2-admin/trunk/src/main/java/org/apache/jetspeed/portlets/tracking/WicketPortletTrackingPortlet.properties
------------------------------------------------------------------------------
    svn:keywords = Id

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml?rev=738380&r1=738379&r2=738380&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/portlet.xml Wed Jan 28 06:49:53 2009
@@ -1618,15 +1618,15 @@
     <init-param>
         <name>portlet-icon</name>
         <value>user-home.png</value>
-    </init-param>              
+    </init-param>
     <init-param>
       <name>wicketFilterPath</name>
       <value>/portalSiteManager</value>
-    </init-param>
+    </init-param>        
     <init-param>
       <name>serviceComponentNames</name>
       <value>cps:PageManager,cps:PortletRegistryComponent,cps:DecorationFactory,cps:ImporterManager,cps:UserManager</value>
-    </init-param>    
+    </init-param>              
     <expiration-cache>0</expiration-cache>
     <supports>
         <mime-type>text/html</mime-type>
@@ -2194,12 +2194,37 @@
             <keywords>admin,profiler</keywords>            
         </portlet-info>
     </portlet>
-    
+
+    <portlet>
+        <description>wicket portlet tracking portlet</description>
+        <portlet-name>WicketPortletTrackingPortlet</portlet-name>
+        <display-name>Wicket Portlet Tracking Portlet</display-name>
+        <portlet-class>org.apache.jetspeed.portlets.wicket.AdminWicketPortlet</portlet-class>
+        <init-param>
+            <name>wicketFilterPath</name>
+            <value>/portlettracking</value>
+        </init-param>
+        <init-param>
+            <name>serviceComponentNames</name>
+            <value>cps:PortletTrackingManager</value>
+        </init-param>
+        <supports>
+            <mime-type>*/*</mime-type>
+            <portlet-mode>VIEW</portlet-mode>
+        </supports>
+        <supported-locale>en</supported-locale>
+        <!--<resource-bundle>org.apache.jetspeed.portlets.security.JetspeedPrincipalManagementUsers</resource-bundle> -->
+        <portlet-info>
+            <title>Wicket Portlet Tracking Portlet</title>
+            <short-title>PortletTracking</short-title>
+            <keywords>admin,tracking</keywords>            
+        </portlet-info>
+    </portlet>
     
     <custom-portlet-mode>
         <description>a Custom Edit_defaults Mode</description>            
         <portlet-mode>edit_defaults</portlet-mode>
-    </custom-portlet-mode>
-  
+   </custom-portlet-mode>
+    
 </portlet-app>
 

Modified: portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/web.xml?rev=738380&r1=738379&r2=738380&view=diff
==============================================================================
--- portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/web.xml (original)
+++ portals/jetspeed-2/applications/j2-admin/trunk/src/webapp/WEB-INF/web.xml Wed Jan 28 06:49:53 2009
@@ -124,7 +124,16 @@
     </init-param>
   </filter>
 
-    <filter>
+  <filter>
+    <filter-name>WicketPortletTrackingPortletApplication</filter-name>
+    <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
+    <init-param>
+      <param-name>applicationClassName</param-name>
+      <param-value>org.apache.jetspeed.portlets.tracking.WicketPortletTrackingApplication</param-value>
+    </init-param>
+  </filter>
+
+  <filter>
       <filter-name>PortalSiteManagerApplication</filter-name>
       <filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
       <init-param>
@@ -139,7 +148,7 @@
       <dispatcher>REQUEST</dispatcher>
       <dispatcher>INCLUDE</dispatcher>
     </filter-mapping>
-    
+
     <filter-mapping>
       <filter-name>JetspeedPrincipalManagementPortlet</filter-name>
       <url-pattern>/jetspeedPrincipalmanagement/*</url-pattern>
@@ -167,6 +176,13 @@
     <dispatcher>REQUEST</dispatcher>
     <dispatcher>INCLUDE</dispatcher>
   </filter-mapping>
+
+  <filter-mapping>
+    <filter-name>WicketPortletTrackingPortletApplication</filter-name>
+    <url-pattern>/portlettracking/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+  </filter-mapping>
   
     <listener>
       <listener-class>org.apache.jetspeed.webapp.logging.Log4JConfigurator</listener-class>



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