KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > console > jmsmanager > wizard > SelectProviderHandler


1 /**
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. See the NOTICE file distributed with
4  * this work for additional information regarding copyright ownership.
5  * The ASF licenses this file to You under the Apache License, Version 2.0
6  * (the "License"); you may not use this file except in compliance with
7  * the License. You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

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 JavaDoc;
29 import java.util.ArrayList JavaDoc;
30 import java.util.Collections JavaDoc;
31 import java.util.Iterator JavaDoc;
32 import java.util.List JavaDoc;
33 import java.util.SortedSet JavaDoc;
34 import org.apache.geronimo.console.MultiPageModel;
35
36 /**
37  * Handler for the screen where you select a JMS provider (because
38  * you didn't want one of the ones we know about).
39  *
40  * @version $Rev: 476061 $ $Date: 2006-11-17 01:36:50 -0500 (Fri, 17 Nov 2006) $
41  */

42 public class SelectProviderHandler extends AbstractHandler {
43     private final static String JavaDoc[] SKIP_RARS_CONTAINING = new String JavaDoc[]{"tranql"};
44
45     public SelectProviderHandler() {
46         super(SELECT_PROVIDER_MODE, "/WEB-INF/view/jmswizard/provider.jsp");
47     }
48
49     public String JavaDoc actionBeforeView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException JavaDoc {
50         return getMode();
51     }
52
53     public void renderView(RenderRequest request, RenderResponse response, MultiPageModel model) throws PortletException, IOException JavaDoc {
54         loadRARList(request);
55     }
56
57     public String JavaDoc actionAfterView(ActionRequest request, ActionResponse response, MultiPageModel model) throws PortletException, IOException JavaDoc {
58         JMSResourceData data = (JMSResourceData) model;
59         String JavaDoc 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 the available RARs
69
List JavaDoc list = new ArrayList JavaDoc();
70         ListableRepository[] repos = PortletManager.getCurrentServer(renderRequest).getRepositories();
71         for (int i = 0; i < repos.length; i++) {
72             ListableRepository repo = repos[i];
73             final SortedSet JavaDoc artifacts = repo.list();
74             outer:
75             for (Iterator JavaDoc iterator = artifacts.iterator(); iterator.hasNext();) {
76                 Artifact artifact = (Artifact)iterator.next();
77                 String JavaDoc test = artifact.toString();
78                 if (!test.endsWith("/rar")) { //todo: may need to change this logic if configId format changes
79
continue;
80                 } else if (repo.getLocation(artifact).isDirectory()) {
81                     continue;
82                 }
83                 for (int k = 0; k < SKIP_RARS_CONTAINING.length; k++) {
84                     String JavaDoc 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