1 17 package org.apache.geronimo.console.threads; 18 19 import java.io.IOException ; 20 import java.io.Serializable ; 21 import java.util.Arrays ; 22 import javax.portlet.ActionRequest; 23 import javax.portlet.ActionResponse; 24 import javax.portlet.PortletException; 25 import javax.portlet.PortletRequest; 26 import javax.portlet.RenderRequest; 27 import javax.portlet.RenderResponse; 28 import org.apache.geronimo.console.MultiPageModel; 29 import org.apache.geronimo.console.util.PortletManager; 30 import org.apache.geronimo.gbean.AbstractName; 31 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory; 32 import org.apache.geronimo.system.threads.ThreadPool; 33 34 39 public class ListScreenHandler extends AbstractThreadHandler { 40 public ListScreenHandler() { 41 super(LIST_MODE, "/WEB-INF/view/threads/list.jsp"); 42 } 43 44 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 45 return getMode(); 46 } 47 48 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 49 populateExistingList(request); 50 } 51 52 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 53 return getMode(); 54 } 55 56 private void populateExistingList(PortletRequest renderRequest) { 57 ThreadPool[] pools = PortletManager.getCurrentServer(renderRequest).getThreadPools(); 58 ThreadPoolSummary[] result = new ThreadPoolSummary[pools.length]; 59 for (int i = 0; i < pools.length; i++) { 60 result[i] = new ThreadPoolSummary(PortletManager.getNameFor(renderRequest, pools[i]), pools[i].getPoolSize()); 61 } 62 Arrays.sort(result); 63 renderRequest.setAttribute("pools", result); 64 } 65 66 public static class ThreadPoolSummary implements Serializable , Comparable { 67 private static final long serialVersionUID = -7515061254194067140L; 68 private final String abstractName; 69 private final int maxSize; 70 private final String name; 71 72 public ThreadPoolSummary(AbstractName abstractName, int maxSize) { 73 this.abstractName = abstractName.toString(); 74 name = (String ) abstractName.getName().get(NameFactory.J2EE_NAME); 75 this.maxSize = maxSize; 76 } 77 78 public String getAbstractName() { 79 return abstractName; 80 } 81 82 public int getPoolSize() { 83 return maxSize; 84 } 85 86 public String getName() { 87 return name; 88 } 89 90 public int compareTo(Object o) { 91 ThreadPoolSummary other = (ThreadPoolSummary) o; 92 return name.compareTo(other.name); 93 } 94 } 95 } 96 | Popular Tags |