KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > geronimo > console > webmanager > ConnectorPortlet


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
18 package org.apache.geronimo.console.webmanager;
19
20 import java.io.IOException JavaDoc;
21 import java.net.URI JavaDoc;
22 import java.util.ArrayList JavaDoc;
23 import java.util.HashMap JavaDoc;
24 import java.util.List JavaDoc;
25 import java.util.Map JavaDoc;
26 import javax.portlet.ActionRequest;
27 import javax.portlet.ActionResponse;
28 import javax.portlet.PortletConfig;
29 import javax.portlet.PortletContext;
30 import javax.portlet.PortletException;
31 import javax.portlet.PortletRequestDispatcher;
32 import javax.portlet.RenderRequest;
33 import javax.portlet.RenderResponse;
34 import javax.portlet.WindowState;
35 import org.apache.commons.logging.Log;
36 import org.apache.commons.logging.LogFactory;
37 import org.apache.geronimo.console.BasePortlet;
38 import org.apache.geronimo.console.util.PortletManager;
39 import org.apache.geronimo.gbean.AbstractName;
40 import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
41 import org.apache.geronimo.kernel.proxy.GeronimoManagedBean;
42 import org.apache.geronimo.management.geronimo.KeystoreException;
43 import org.apache.geronimo.management.geronimo.KeystoreInstance;
44 import org.apache.geronimo.management.geronimo.KeystoreManager;
45 import org.apache.geronimo.management.geronimo.SecureConnector;
46 import org.apache.geronimo.management.geronimo.WebConnector;
47 import org.apache.geronimo.management.geronimo.WebContainer;
48 import org.apache.geronimo.management.geronimo.WebManager;
49
50 /**
51  * A portlet that lets you list, add, remove, start, stop, and edit web
52  * connectors (currently, either Tomcat or Jetty).
53  *
54  * @version $Rev: 476321 $ $Date: 2006-11-17 16:18:49 -0500 (Fri, 17 Nov 2006) $
55  */

56 public class ConnectorPortlet extends BasePortlet {
57     private final static Log log = LogFactory.getLog(ConnectorPortlet.class);
58
59     private PortletRequestDispatcher normalView;
60
61     private PortletRequestDispatcher maximizedView;
62
63     private PortletRequestDispatcher helpView;
64
65     protected PortletRequestDispatcher editHttpView;
66     protected PortletRequestDispatcher editHttpsView;
67
68     public void processAction(ActionRequest actionRequest,
69                               ActionResponse actionResponse) throws PortletException, IOException JavaDoc {
70         String JavaDoc submit = actionRequest.getParameter("submit");
71         if ("Cancel".equalsIgnoreCase(submit)) {
72             // User clicked on "Cancel" button in add/edit connector page
73
actionResponse.setRenderParameter("mode", "list");
74             return;
75         }
76         String JavaDoc mode = actionRequest.getParameter("mode");
77         String JavaDoc managerURI = actionRequest.getParameter("managerURI");
78         String JavaDoc containerURI = actionRequest.getParameter("containerURI");
79         if(managerURI != null) actionResponse.setRenderParameter("managerURI", managerURI);
80         if(containerURI != null) actionResponse.setRenderParameter("containerURI", containerURI);
81
82         String JavaDoc server;
83         if(containerURI != null) {
84             WebContainer container = PortletManager.getWebContainer(actionRequest, new AbstractName(URI.create(containerURI)));
85             server = getWebServerType(container.getClass());
86         } else {
87             server = "unknown";
88         }
89         actionResponse.setRenderParameter("server", server);
90         if(mode.equals("new")) {
91             // User selected to add a new connector, need to show criteria portlet
92
actionResponse.setRenderParameter("mode", "new");
93             String JavaDoc protocol = actionRequest.getParameter("protocol");
94             String JavaDoc containerDisplayName = actionRequest.getParameter("containerDisplayName");
95             actionResponse.setRenderParameter("protocol", protocol);
96             actionResponse.setRenderParameter("containerDisplayName", containerDisplayName);
97         } else if(mode.equals("add")) { // User just submitted the form to add a new connector
98
// Get submitted values
99
//todo: lots of validation
100
String JavaDoc protocol = actionRequest.getParameter("protocol");
101             String JavaDoc host = actionRequest.getParameter("host");
102             int port = Integer.parseInt(actionRequest.getParameter("port"));
103             int maxThreads = Integer.parseInt(actionRequest.getParameter("maxThreads"));
104             Integer JavaDoc minThreads = getInteger(actionRequest, "minThreads");
105             String JavaDoc displayName = actionRequest.getParameter("displayName");
106             // Create and configure the connector
107
WebConnector connector = PortletManager.createWebConnector(actionRequest, new AbstractName(URI.create(managerURI)), new AbstractName(URI.create(containerURI)), displayName, protocol, host, port);
108             connector.setMaxThreads(maxThreads);
109             // todo: more configurable HTTP/Jetty values
110
if(server.equals(WEB_SERVER_JETTY)) {
111                 if(minThreads != null) {
112                     setProperty(connector, "minThreads", minThreads);
113                 }
114             } else if (server.equals(WEB_SERVER_TOMCAT)) {
115                 //todo: Any Tomcat specific processing?
116
} else {
117                 //todo: Handle "should not occur" condition
118
}
119             if(protocol.equals(WebManager.PROTOCOL_HTTPS)) {
120                 String JavaDoc keystoreType = actionRequest.getParameter("keystoreType");
121                 String JavaDoc keystoreFile = actionRequest.getParameter("keystoreFile");
122                 String JavaDoc privateKeyPass = actionRequest.getParameter("privateKeyPassword");
123                 String JavaDoc keystorePass = actionRequest.getParameter("keystorePassword");
124                 String JavaDoc secureProtocol = actionRequest.getParameter("secureProtocol");
125                 String JavaDoc algorithm = actionRequest.getParameter("algorithm");
126                 String JavaDoc truststoreType = actionRequest.getParameter("truststoreType");
127                 String JavaDoc truststoreFile = actionRequest.getParameter("truststoreFile");
128                 String JavaDoc truststorePass = actionRequest.getParameter("truststorePassword");
129                 boolean clientAuth = isValid(actionRequest.getParameter("clientAuth"));
130                 SecureConnector secure = (SecureConnector) connector;
131                 if(isValid(keystoreType)) {secure.setKeystoreType(keystoreType);}
132                 if(isValid(keystoreFile)) {secure.setKeystoreFileName(keystoreFile);}
133                 if(isValid(keystorePass)) {secure.setKeystorePassword(keystorePass);}
134                 if(isValid(secureProtocol)) {secure.setSecureProtocol(secureProtocol);}
135                 if(isValid(algorithm)) {secure.setAlgorithm(algorithm);}
136                 secure.setClientAuthRequired(clientAuth);
137                 if(server.equals(WEB_SERVER_JETTY)) {
138                     if(isValid(privateKeyPass)) {setProperty(secure, "keyPassword", privateKeyPass);}
139                     String JavaDoc keyStore = actionRequest.getParameter("unlockKeyStore");
140                     setProperty(secure, "keyStore", keyStore);
141                     try {
142                         KeystoreInstance[] keystores = PortletManager.getCurrentServer(actionRequest).getKeystoreManager().getKeystores();
143
144                         String JavaDoc[] keys = null;
145                         for (int i = 0; i < keystores.length; i++) {
146                             KeystoreInstance keystore = keystores[i];
147                             if(keystore.getKeystoreName().equals(keyStore)) {
148                                 keys = keystore.getUnlockedKeys(null);
149                             }
150                         }
151                         if(keys != null && keys.length == 1) {
152                             setProperty(secure, "keyAlias", keys[0]);
153                         } else {
154                             throw new PortletException("Cannot handle keystores with anything but 1 unlocked private key");
155                         }
156                     } catch (KeystoreException e) {
157                         throw new PortletException(e);
158                     }
159                     String JavaDoc trustStore = actionRequest.getParameter("unlockTrustStore");
160                     // "" is a valid trustStore value, which means the parameter should be cleared
161
setProperty(secure, "trustStore", isValid(trustStore) ? trustStore : null);
162                 } else if (server.equals(WEB_SERVER_TOMCAT)) {
163                     if(isValid(truststoreType)) {setProperty(secure, "truststoreType", truststoreType);}
164                     if(isValid(truststoreFile)) {setProperty(secure, "truststoreFileName", truststoreFile);}
165                     if(isValid(truststorePass)) {setProperty(secure, "truststorePassword", truststorePass);}
166                 } else {
167                     //todo: Handle "should not occur" condition
168
}
169             }
170             // Start the connector
171
try {
172                 ((GeronimoManagedBean)connector).startRecursive();
173             } catch (Exception JavaDoc e) {
174                 log.error("Unable to start connector", e); //todo: get into rendered page somehow?
175
}
176             actionResponse.setRenderParameter("mode", "list");
177         } else if(mode.equals("save")) { // User just submitted the form to update a connector
178
// Get submitted values
179
//todo: lots of validation
180
String JavaDoc host = actionRequest.getParameter("host");
181             int port = Integer.parseInt(actionRequest.getParameter("port"));
182             int maxThreads = Integer.parseInt(actionRequest.getParameter("maxThreads"));
183             Integer JavaDoc minThreads = getInteger(actionRequest, "minThreads");
184             String JavaDoc connectorURI = actionRequest.getParameter("connectorURI");
185             // Identify and update the connector
186
WebConnector connector = PortletManager.getWebConnector(actionRequest, new AbstractName(URI.create(connectorURI)));
187             if(connector != null) {
188                 connector.setHost(host);
189                 connector.setPort(port);
190                 connector.setMaxThreads(maxThreads);
191                 if(server.equals(WEB_SERVER_JETTY)) {
192                     if(minThreads != null) {
193                         setProperty(connector,"minThreads",minThreads);
194                     }
195                     else if (server.equals(WEB_SERVER_TOMCAT)) {
196                         //todo: Any Tomcat specific processing?
197
}
198                     else {
199                         //todo: Handle "should not occur" condition
200
}
201                 }
202                 if(connector instanceof SecureConnector) {
203                     String JavaDoc keystoreType = actionRequest.getParameter("keystoreType");
204                     String JavaDoc keystoreFile = actionRequest.getParameter("keystoreFile");
205                     String JavaDoc privateKeyPass = actionRequest.getParameter("privateKeyPassword");
206                     String JavaDoc keystorePass = actionRequest.getParameter("keystorePassword");
207                     String JavaDoc secureProtocol = actionRequest.getParameter("secureProtocol");
208                     String JavaDoc algorithm = actionRequest.getParameter("algorithm");
209                     String JavaDoc truststoreType = actionRequest.getParameter("truststoreType");
210                     String JavaDoc truststoreFile = actionRequest.getParameter("truststoreFile");
211                     String JavaDoc truststorePass = actionRequest.getParameter("truststorePassword");
212                     boolean clientAuth = isValid(actionRequest.getParameter("clientAuth"));
213                     SecureConnector secure = (SecureConnector) connector;
214                     if(isValid(keystoreType)) {secure.setKeystoreType(keystoreType);}
215                     if(isValid(keystoreFile)) {secure.setKeystoreFileName(keystoreFile);}
216                     if(isValid(keystorePass)) {secure.setKeystorePassword(keystorePass);}
217                     if(isValid(secureProtocol)) {secure.setSecureProtocol(secureProtocol);}
218                     if(isValid(algorithm)) {secure.setAlgorithm(algorithm);}
219                     secure.setClientAuthRequired(clientAuth);
220                     if(server.equals(WEB_SERVER_JETTY)) {
221                         if(isValid(privateKeyPass)) {setProperty(secure, "keyPassword", privateKeyPass);}
222                         String JavaDoc keyStore = actionRequest.getParameter("unlockKeyStore");
223                         String JavaDoc trustStore = actionRequest.getParameter("unlockTrustStore");
224                         setProperty(secure, "keyStore", keyStore);
225                         try {
226                             KeystoreInstance[] keystores = PortletManager.getCurrentServer(actionRequest).getKeystoreManager().getKeystores();
227
228                             String JavaDoc[] keys = null;
229                             for (int i = 0; i < keystores.length; i++) {
230                                 KeystoreInstance keystore = keystores[i];
231                                 if(keystore.getKeystoreName().equals(keyStore)) {
232                                     keys = keystore.getUnlockedKeys(null);
233                                 }
234                             }
235                             if(keys != null && keys.length == 1) {
236                                 setProperty(secure, "keyAlias", keys[0]);
237                             } else {
238                                 throw new PortletException("Cannot handle keystores with anything but 1 unlocked private key");
239                             }
240                         } catch (KeystoreException e) {
241                             throw new PortletException(e);
242                         }
243                         // "" is a valid trustStore value, which means the parameter should be cleared
244
setProperty(secure, "trustStore", isValid(trustStore) ? trustStore : null);
245                     }
246                     else if (server.equals(WEB_SERVER_TOMCAT)) {
247                         if(isValid(truststoreType)) {setProperty(secure, "truststoreType", truststoreType);}
248                         if(isValid(truststorePass)) {setProperty(secure, "truststorePassword", truststorePass);}
249                         if(isValid(truststoreFile)) {setProperty(secure, "truststoreFileName", truststoreFile);}
250                     }
251                     else {
252                         //todo: Handle "should not occur" condition
253
}
254                 }
255             }
256             actionResponse.setRenderParameter("mode", "list");
257         } else if(mode.equals("start")) {
258             String JavaDoc connectorURI = actionRequest.getParameter("connectorURI");
259             // work with the current connector to start it.
260
WebConnector connector = PortletManager.getWebConnector(actionRequest, new AbstractName(URI.create(connectorURI)));
261             if(connector != null) {
262                 try {
263                     ((GeronimoManagedBean)connector).startRecursive();
264                 } catch (Exception JavaDoc e) {
265                     log.error("Unable to start connector", e); //todo: get into rendered page somehow?
266
}
267             }
268             else {
269                 log.error("Incorrect connector reference"); //Replace this with correct error processing
270
}
271             actionResponse.setRenderParameter("connectorURI", connectorURI);
272             actionResponse.setRenderParameter("mode", "list");
273         } else if(mode.equals("stop")) {
274             String JavaDoc connectorURI = actionRequest.getParameter("connectorURI");
275             // work with the current connector to stop it.
276
WebConnector connector = PortletManager.getWebConnector(actionRequest, new AbstractName(URI.create(connectorURI)));
277             if(connector != null) {
278                 try {
279                     ((GeronimoManagedBean)connector).stop();
280                 } catch (Exception JavaDoc e) {
281                     log.error("Unable to stop connector", e); //todo: get into rendered page somehow?
282
}
283             }
284             else {
285                 log.error("Incorrect connector reference"); //Replace this with correct error processing
286
}
287             actionResponse.setRenderParameter("connectorURI", connectorURI);
288             actionResponse.setRenderParameter("mode", "list");
289         } else if(mode.equals("edit")) {
290             String JavaDoc connectorURI = actionRequest.getParameter("connectorURI");
291             actionResponse.setRenderParameter("connectorURI", connectorURI);
292             actionResponse.setRenderParameter("mode", "edit");
293
294         } else if(mode.equals("delete")) { // User chose to delete a connector
295
String JavaDoc connectorURI = actionRequest.getParameter("connectorURI");
296             PortletManager.getWebManager(actionRequest, new AbstractName(URI.create(managerURI))).removeConnector(new AbstractName(URI.create(connectorURI)));
297             actionResponse.setRenderParameter("mode", "list");
298         }
299     }
300
301     private Integer JavaDoc getInteger(ActionRequest actionRequest, String JavaDoc key) {
302         String JavaDoc value = actionRequest.getParameter(key);
303         if(value == null || value.equals("")) {
304             return null;
305         }
306         return new Integer JavaDoc(value);
307     }
308
309     protected void doView(RenderRequest renderRequest,
310                           RenderResponse renderResponse) throws IOException JavaDoc, PortletException {
311         if (WindowState.MINIMIZED.equals(renderRequest.getWindowState())) {
312             return;
313         }
314         String JavaDoc mode = renderRequest.getParameter("mode");
315         if(mode == null || mode.equals("")) {
316             mode = "list";
317         }
318
319
320         if(mode.equals("list")) {
321             doList(renderRequest, renderResponse);
322         } else {
323             String JavaDoc managerURI = renderRequest.getParameter("managerURI");
324             String JavaDoc containerURI = renderRequest.getParameter("containerURI");
325             if(managerURI != null) renderRequest.setAttribute("managerURI", managerURI);
326             if(containerURI != null) renderRequest.setAttribute("containerURI", containerURI);
327
328             WebContainer container = PortletManager.getWebContainer(renderRequest, new AbstractName(URI.create(containerURI)));
329             String JavaDoc server = getWebServerType(container.getClass());
330             renderRequest.setAttribute("server", server);
331
332             if(mode.equals("new")) {
333                 String JavaDoc protocol = renderRequest.getParameter("protocol");
334                 String JavaDoc containerDisplayName = renderRequest.getParameter("containerDisplayName");
335                 renderRequest.setAttribute("maxThreads", "50");
336                 if(server.equals(WEB_SERVER_JETTY)) {
337                     renderRequest.setAttribute("minThreads", "10");
338                     KeystoreManager mgr = PortletManager.getCurrentServer(renderRequest).getKeystoreManager();
339                     KeystoreInstance[] stores = mgr.getUnlockedKeyStores();
340                     String JavaDoc[] storeNames = new String JavaDoc[stores.length];
341                     for (int i = 0; i < storeNames.length; i++) {
342                         storeNames[i] = stores[i].getKeystoreName();
343                     }
344                     renderRequest.setAttribute("keyStores", storeNames);
345                     KeystoreInstance[] trusts = mgr.getUnlockedTrustStores();
346                     String JavaDoc[] trustNames = new String JavaDoc[trusts.length];
347                     for (int i = 0; i < trustNames.length; i++) {
348                         trustNames[i] = trusts[i].getKeystoreName();
349                     }
350                     renderRequest.setAttribute("trustStores", trustNames);
351                     Map JavaDoc aliases = new HashMap JavaDoc();
352                     for (int i = 0; i < stores.length; i++) {
353                         try {
354                             aliases.put(stores[i].getKeystoreName(), stores[i].getUnlockedKeys(null));
355                         } catch (KeystoreException e) {}
356                     }
357                     renderRequest.setAttribute("unlockedKeys", aliases);
358                 }
359                 else if (server.equals(WEB_SERVER_TOMCAT)) {
360                     //todo: Any Tomcat specific processing?
361
}
362                 else {
363                     //todo: Handle "should not occur" condition
364
}
365                 renderRequest.setAttribute("protocol", protocol);
366                 renderRequest.setAttribute("mode", "add");
367                 renderRequest.setAttribute("containerDisplayName", containerDisplayName);
368                 if(protocol.equals(WebManager.PROTOCOL_HTTPS)) {
369                     editHttpsView.include(renderRequest, renderResponse);
370                 } else {
371                     editHttpView.include(renderRequest, renderResponse);
372                 }
373
374             } else if(mode.equals("edit")) {
375                 String JavaDoc connectorURI = renderRequest.getParameter("connectorURI");
376                 WebConnector connector = PortletManager.getWebConnector(renderRequest, new AbstractName(URI.create(connectorURI)));
377                 if(connector == null) {
378                     doList(renderRequest, renderResponse);
379                 } else {
380                     String JavaDoc displayName = new AbstractName(URI.create(connectorURI)).getName().get("name").toString();
381                     renderRequest.setAttribute("displayName", displayName);
382                     renderRequest.setAttribute("connectorURI", connectorURI);
383                     renderRequest.setAttribute("port", new Integer JavaDoc(connector.getPort()));
384                     renderRequest.setAttribute("host", connector.getHost());
385                     int maxThreads = connector.getMaxThreads();
386                     renderRequest.setAttribute("maxThreads", Integer.toString(maxThreads));
387                     if(server.equals(WEB_SERVER_JETTY)) {
388                         int minThreads = ((Number JavaDoc)getProperty(connector, "minThreads")).intValue();
389                         renderRequest.setAttribute("minThreads", String.valueOf(minThreads));
390                         KeystoreManager mgr = PortletManager.getCurrentServer(renderRequest).getKeystoreManager();
391                         KeystoreInstance[] stores = mgr.getUnlockedKeyStores();
392                         String JavaDoc[] storeNames = new String JavaDoc[stores.length];
393                         for (int i = 0; i < storeNames.length; i++) {
394                             storeNames[i] = stores[i].getKeystoreName();
395                         }
396                         renderRequest.setAttribute("keyStores", storeNames);
397                         KeystoreInstance[] trusts = mgr.getUnlockedTrustStores();
398                         String JavaDoc[] trustNames = new String JavaDoc[trusts.length];
399                         for (int i = 0; i < trustNames.length; i++) {
400                             trustNames[i] = trusts[i].getKeystoreName();
401                         }
402                         renderRequest.setAttribute("trustStores", trustNames);
403                         Map JavaDoc aliases = new HashMap JavaDoc();
404                         for (int i = 0; i < stores.length; i++) {
405                             try {
406                                 aliases.put(stores[i].getKeystoreName(), stores[i].getUnlockedKeys(null));
407                             } catch (KeystoreException e) {}
408                         }
409                         renderRequest.setAttribute("unlockedKeys", aliases);
410                     }
411                     else if (server.equals(WEB_SERVER_TOMCAT)) {
412                         //todo: Any Tomcat specific processing?
413
}
414                     else {
415                         //todo: Handle "should not occur" condition
416
}
417                     renderRequest.setAttribute("mode", "save");
418
419                     if(connector instanceof SecureConnector) {
420                         SecureConnector secure = (SecureConnector) connector;
421                         renderRequest.setAttribute("keystoreFile",secure.getKeystoreFileName());
422                         renderRequest.setAttribute("keystoreType",secure.getKeystoreType());
423                         renderRequest.setAttribute("algorithm",secure.getAlgorithm());
424                         renderRequest.setAttribute("secureProtocol",secure.getSecureProtocol());
425                         if(secure.isClientAuthRequired()) {
426                             renderRequest.setAttribute("clientAuth", Boolean.TRUE);
427                         }
428                         if(server.equals(WEB_SERVER_JETTY)) {
429                             String JavaDoc keyStore = (String JavaDoc)getProperty(secure, "keyStore");
430                             String JavaDoc trustStore = (String JavaDoc)getProperty(secure, "trustStore");
431                             renderRequest.setAttribute("unlockKeyStore", keyStore);
432                             renderRequest.setAttribute("unlockTrustStore", trustStore);
433                         } else if(server.equals(WEB_SERVER_TOMCAT)) {
434                             String JavaDoc truststoreFile = (String JavaDoc)getProperty(secure, "truststoreFileName");
435                             String JavaDoc truststoreType = (String JavaDoc)getProperty(secure, "truststoreType");
436                             renderRequest.setAttribute("truststoreFile", truststoreFile);
437                             renderRequest.setAttribute("truststoreType", truststoreType);
438                         }
439                     }
440
441                     if(connector.getProtocol().equals(WebManager.PROTOCOL_HTTPS)) {
442                         editHttpsView.include(renderRequest, renderResponse);
443                     } else {
444                         editHttpView.include(renderRequest, renderResponse);
445                     }
446                 }
447             }
448         }
449
450     }
451
452     private void doList(RenderRequest renderRequest, RenderResponse renderResponse) throws PortletException, IOException JavaDoc {
453         WebManager[] managers = PortletManager.getWebManagers(renderRequest);
454         List JavaDoc all = new ArrayList JavaDoc();
455         for (int i = 0; i < managers.length; i++) {
456             WebManager manager = managers[i];
457             AbstractName webManagerName = PortletManager.getNameFor(renderRequest, manager);
458
459             WebContainer[] containers = (WebContainer[]) manager.getContainers();
460             for (int j = 0; j < containers.length; j++) {
461                 List JavaDoc beans = new ArrayList JavaDoc();
462                 WebContainer container = containers[j];
463                 AbstractName containerName = PortletManager.getNameFor(renderRequest, container);
464                 String JavaDoc id;
465                 if(containers.length == 1) {
466                     id = manager.getProductName();
467                 } else {
468                     id = manager.getProductName() + " (" + containerName.getName().get(NameFactory.J2EE_NAME) + ")";
469                 }
470                 ContainerInfo result = new ContainerInfo(id, webManagerName.toString(), containerName.toString());
471
472                 WebConnector[] connectors = (WebConnector[]) manager.getConnectorsForContainer(container);
473                 for (int k = 0; k < connectors.length; k++) {
474                     WebConnector connector = connectors[k];
475                     ConnectorInfo info = new ConnectorInfo();
476                     AbstractName connectorName = PortletManager.getNameFor(renderRequest, connector);
477                     info.setConnectorURI(connectorName.toString());
478                     info.setDescription(PortletManager.getGBeanDescription(renderRequest, connectorName));
479                     info.setDisplayName((String JavaDoc)connectorName.getName().get(NameFactory.J2EE_NAME));
480                     info.setState(((GeronimoManagedBean)connector).getState());
481                     info.setPort(connector.getPort());
482                     try {
483                         info.setProtocol(connector.getProtocol());
484                     } catch (IllegalStateException JavaDoc e) {
485                         info.setProtocol("unknown");
486                     }
487                     beans.add(info);
488                 }
489                 result.setConnectors(beans);
490                 result.setProtocols(manager.getSupportedProtocols());
491                 all.add(result);
492             }
493         }
494         renderRequest.setAttribute("containers", all);
495         renderRequest.setAttribute("serverPort", new Integer JavaDoc(renderRequest.getServerPort()));
496
497         if (WindowState.NORMAL.equals(renderRequest.getWindowState())) {
498             normalView.include(renderRequest, renderResponse);
499         } else {
500             maximizedView.include(renderRequest, renderResponse);
501         }
502     }
503
504     public final static class ContainerInfo {
505         private String JavaDoc name;
506         private String JavaDoc managerURI;
507         private String JavaDoc containerURI;
508         private String JavaDoc[] protocols;
509         private List JavaDoc connectors;
510
511         public ContainerInfo(String JavaDoc name, String JavaDoc managerURI, String JavaDoc containerURI) {
512             this.name = name;
513             this.managerURI = managerURI;
514             this.containerURI = containerURI;
515         }
516
517         public String JavaDoc getName() {
518             return name;
519         }
520
521         public String JavaDoc[] getProtocols() {
522             return protocols;
523         }
524
525         public void setProtocols(String JavaDoc[] protocols) {
526             this.protocols = protocols;
527         }
528
529         public List JavaDoc getConnectors() {
530             return connectors;
531         }
532
533         public void setConnectors(List JavaDoc connectors) {
534             this.connectors = connectors;
535         }
536
537         public String JavaDoc getManagerURI() {
538             return managerURI;
539         }
540
541         public String JavaDoc getContainerURI() {
542             return containerURI;
543         }
544     }
545
546     protected void doHelp(RenderRequest renderRequest,
547                           RenderResponse renderResponse) throws PortletException, IOException JavaDoc {
548         helpView.include(renderRequest, renderResponse);
549     }
550
551     public void init(PortletConfig portletConfig) throws PortletException {
552         super.init(portletConfig);
553         PortletContext pc = portletConfig.getPortletContext();
554         normalView = pc.getRequestDispatcher("/WEB-INF/view/webmanager/connector/normal.jsp");
555         maximizedView = pc.getRequestDispatcher("/WEB-INF/view/webmanager/connector/maximized.jsp");
556         helpView = pc.getRequestDispatcher("/WEB-INF/view/webmanager/connector/help.jsp");
557         editHttpView = pc.getRequestDispatcher("/WEB-INF/view/webmanager/connector/editHTTP.jsp");
558         editHttpsView = pc.getRequestDispatcher("/WEB-INF/view/webmanager/connector/editHTTPS.jsp");
559     }
560
561     public void destroy() {
562         normalView = null;
563         maximizedView = null;
564         helpView = null;
565         editHttpsView = null;
566         editHttpView = null;
567         super.destroy();
568     }
569
570     public static boolean isValid(String JavaDoc s) {
571         return s != null && !s.equals("");
572     }
573
574 }
575
Popular Tags