1 17 package org.apache.geronimo.console.jmsmanager.wizard; 18 19 import org.apache.geronimo.console.util.PortletManager; 20 import org.apache.geronimo.kernel.repository.Artifact; 21 import org.apache.geronimo.kernel.repository.ListableRepository; 22 23 import javax.portlet.ActionRequest; 24 import javax.portlet.ActionResponse; 25 import javax.portlet.PortletException; 26 import javax.portlet.RenderRequest; 27 import javax.portlet.RenderResponse; 28 import java.io.IOException ; 29 import java.util.ArrayList ; 30 import java.util.Collections ; 31 import java.util.Iterator ; 32 import java.util.List ; 33 import java.util.SortedSet ; 34 import org.apache.geronimo.console.MultiPageModel; 35 36 42 public class SelectProviderHandler extends AbstractHandler { 43 private final static String [] SKIP_RARS_CONTAINING = new String []{"tranql"}; 44 45 public SelectProviderHandler() { 46 super(SELECT_PROVIDER_MODE, "/WEB-INF/view/jmswizard/provider.jsp"); 47 } 48 49 public String actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 50 return getMode(); 51 } 52 53 public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException { 54 loadRARList(request); 55 } 56 57 public String actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException { 58 JMSResourceData data = (JMSResourceData) model; 59 String rar = request.getParameter(RAR_FILE_PARAMETER); 60 if (isEmpty(rar)) { 61 return SELECT_PROVIDER_MODE + BEFORE_ACTION; 62 } 63 data.setRarURI(rar); 64 return CONFIGURE_RA_MODE + BEFORE_ACTION; 65 } 66 67 private void loadRARList(RenderRequest renderRequest) { 68 List list = new ArrayList (); 70 ListableRepository[] repos = PortletManager.getCurrentServer(renderRequest).getRepositories(); 71 for (int i = 0; i < repos.length; i++) { 72 ListableRepository repo = repos[i]; 73 final SortedSet artifacts = repo.list(); 74 outer: 75 for (Iterator iterator = artifacts.iterator(); iterator.hasNext();) { 76 Artifact artifact = (Artifact)iterator.next(); 77 String test = artifact.toString(); 78 if (!test.endsWith("/rar")) { continue; 80 } else if (repo.getLocation(artifact).isDirectory()) { 81 continue; 82 } 83 for (int k = 0; k < SKIP_RARS_CONTAINING.length; k++) { 84 String skip = SKIP_RARS_CONTAINING[k]; 85 if (test.indexOf(skip) > -1) { 86 continue outer; 87 } 88 } 89 list.add(test); 90 } 91 } 92 Collections.sort(list); 93 renderRequest.setAttribute("rars", list); 94 } 95 } 96 | Popular Tags |