001: /**
002: * $Id: ListConfigurationsByTemplateBean.java,v 1.4 2005/10/11 16:28:58 sorensen Exp $
003: * Copyright 2005 Sun Microsystems, Inc. All
004: * rights reserved. Use of this product is subject
005: * to license terms. Federal Acquisitions:
006: * Commercial Software -- Government Users
007: * Subject to Standard License Terms and
008: * Conditions.
009: *
010: * Sun, Sun Microsystems, the Sun logo, and Sun ONE
011: * are trademarks or registered trademarks of Sun Microsystems,
012: * Inc. in the United States and other countries.
013: */package com.sun.portal.admin.console.ssoa;
014:
015: import java.util.*;
016: import java.util.logging.Level;
017: import javax.faces.context.FacesContext;
018: import javax.management.MBeanServerConnection;
019: import javax.servlet.http.HttpServletRequest;
020:
021: import com.sun.data.provider.DataProvider;
022: import com.sun.data.provider.impl.ObjectListDataProvider;
023:
024: import com.sun.portal.admin.common.util.AdminClientUtil;
025:
026: public class ListConfigurationsByTemplateBean extends
027: ListConfigurationsBean {
028:
029: public ListConfigurationsByTemplateBean() {
030: // resetConfigurations();
031: }
032:
033: public void resetConfigurations() {
034: log(Level.FINEST,
035: "ListConfigurationsBeanByTemplate.resetConfiguratios start");
036: Map configs = null;
037: String templateName = (String) getSessionAttribute(ATTR_SELECTED_TEMPLATE);
038: // String currentDn = (String) getSessionAttribute(ATTR_CURRENT_LOCATION_DN);
039: // SSOA templates names are returned by SSOAdapter MBean method resetConfigurationNames
040: MBeanServerConnection conn = getMBeanServerConnection();
041: try {
042: String[] signature = { String.class.getName() };
043: Object[] params = { templateName };
044: MBeanServerConnection connection = getMBeanServerConnection();
045: // This can throw AttributeNotFoundException, MBeanException, InstanceNotFoundException
046: // ReflectionException, RuntimeOperationsException, or IOException
047: configs = (Map) connection.invoke(objectName,
048: "getConfigurationNamesByTemplate", params,
049: signature);
050: } catch (Exception ex) {
051: log(
052: Level.SEVERE,
053: "ListConfigurationsBeanByTemplate.resetConfigurations: Exception when trying to get the list of configurations",
054: ex);
055: }
056: ArrayList configList = new ArrayList(configs.size());
057: Set names = configs.keySet();
058: Iterator iter = names.iterator();
059: while (iter.hasNext()) {
060: String name = (String) iter.next();
061: List dns = (List) configs.get(name);
062: Iterator dniter = dns.iterator();
063: while (dniter.hasNext()) {
064: String dn = (String) dniter.next();
065: ConfigurationBean cb = new ConfigurationBean(dn, name);
066: // Cheesy workaround for global DNs
067: if (GLOBAL_LOCATION_DN.equals(dn)) {
068: cb.setLabel((String) rbMap
069: .get("ssoa.global.dn.label"));
070: }
071: configList.add(cb);
072: }
073: }
074: Collections.sort(configList);
075: configurations = new ObjectListDataProvider(configList);
076: }
077:
078: public String gotoConfigurationHome() {
079: HttpServletRequest req = (HttpServletRequest) FacesContext
080: .getCurrentInstance().getExternalContext().getRequest();
081: String configName = (String) req
082: .getParameter(ATTR_SELECTED_CONFIG);
083: String configDn = (String) req
084: .getParameter(ATTR_CURRENT_LOCATION_DN);
085: setSessionAttribute(ATTR_SELECTED_CONFIG, configName);
086: setSessionAttribute(ATTR_CURRENT_LOCATION_DN, configDn);
087: log(Level.FINEST,
088: "ListConfigurationsBean.gotoConfigurationHome: go to "
089: + configName + " at " + configDn);
090: return "gotoConfigurationHome";
091: }
092:
093: public String gotoConfigurationsByDnHome() {
094: HttpServletRequest req = (HttpServletRequest) FacesContext
095: .getCurrentInstance().getExternalContext().getRequest();
096: String configDn = (String) req
097: .getParameter(ATTR_CURRENT_LOCATION_DN);
098: setSessionAttribute(ATTR_CURRENT_LOCATION_DN, configDn);
099: log(Level.FINEST,
100: "ListConfigurationsBean.gotoConfigurationsByDnHome: go to "
101: + configDn);
102: return "gotoConfigurationsByDnHome";
103: }
104:
105: public String gotoCreateConfiguration() {
106: return "gotoCreateConfiguration";
107: }
108:
109: public String back() {
110: return "back";
111: }
112:
113: // ListConfigurationsByTemplateBean is a request-based bean, so only reset the configs if they haven't been
114: // reset already, or if a delete happened in this bean and a reset is requested
115: public DataProvider getConfigurations() {
116: if (getSessionAttribute("resetSSOA") != null) {
117: log(Level.FINEST, "resetSSOA is non-null");
118: resetConfigurations();
119: removeFromSession("resetSSOA");
120: }
121: if (configurations == null) {
122: resetConfigurations();
123: }
124: return configurations;
125: }
126:
127: }
|