Package org.apache.geronimo.console.configcreator.configData

Source Code of org.apache.geronimo.console.configcreator.configData.EARHelper$DependenciesJsonTree

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

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.geronimo.console.configcreator.AbstractHandler;
import org.apache.geronimo.deployment.xbeans.ArtifactType;
import org.apache.geronimo.deployment.xbeans.EnvironmentType;
import org.apache.geronimo.deployment.xbeans.PatternType;
import org.apache.geronimo.xbeans.geronimo.security.GerDistinguishedNameType;
import org.apache.geronimo.xbeans.geronimo.security.GerLoginDomainPrincipalType;
import org.apache.geronimo.xbeans.geronimo.security.GerPrincipalType;
import org.apache.geronimo.xbeans.geronimo.security.GerRealmPrincipalType;
import org.apache.geronimo.xbeans.geronimo.security.GerRoleMappingsType;
import org.apache.geronimo.xbeans.geronimo.security.GerRoleType;
import org.apache.geronimo.xbeans.geronimo.security.GerSecurityType;
import org.apache.geronimo.xbeans.geronimo.security.GerSubjectInfoType;
import org.directwebremoting.annotations.DataTransferObject;
import org.directwebremoting.annotations.RemoteMethod;
import org.directwebremoting.annotations.RemoteProxy;

/**
* @version $Rev: 675839 $ $Date: 2008-07-11 14:37:25 +0800 (Fri, 11 Jul 2008) $
*/
@RemoteProxy
public class EARHelper {
    //private EARConfigData earConfig;
    public EARHelper() {
        //earConfig = (EARConfigData) WebContextFactory.get().getHttpServletRequest().getSession().getAttribute(
        //        AbstractHandler.EAR_CONFIG_DATA_ID);
    }

    private EARConfigData getEarConfigData(HttpServletRequest request) {
        return (EARConfigData) request.getSession().getAttribute(AbstractHandler.EAR_CONFIG_DATA_ID);
    }

    @DataTransferObject
    public static class EnvironmentJson implements Serializable {
        String groupId;
        String artifactId;
        String version;
        String type;
        String hiddenClasses;
        String nonOverridableClasses;
        List<String> inverseClassLoading = new ArrayList<String>();

        public EnvironmentJson() {
        }

        public EnvironmentJson(EnvironmentType environment) {
            ArtifactType moduleId = environment.getModuleId();
            groupId = moduleId.getGroupId();
            artifactId = moduleId.getArtifactId();
            version = moduleId.getVersion();
            type = moduleId.getType();
            if (environment.isSetHiddenClasses()) {
                hiddenClasses = mergeStrings(environment.getHiddenClasses().getFilterArray());
            }
            if (environment.isSetNonOverridableClasses()) {
                nonOverridableClasses = mergeStrings(environment.getNonOverridableClasses().getFilterArray());
            }
            if (environment.isSetInverseClassloading()) {
                inverseClassLoading.add("true");
            }
        }

        private String mergeStrings(String[] strArray) {
            StringBuffer str = new StringBuffer("");
            for (int i = 0; i < strArray.length; i++) {
                str.append(strArray[i] + ";");
            }
            return str.toString();
        }

        public void save(EnvironmentType environment) {
            ArtifactType moduleId = environment.getModuleId();
            moduleId.setArtifactId(artifactId);

            if (moduleId.isSetGroupId()) {
                moduleId.unsetGroupId();
            }
            if (!isEmpty(groupId)) {
                moduleId.setGroupId(groupId);
            }

            if (moduleId.isSetVersion()) {
                moduleId.unsetVersion();
            }
            if (!isEmpty(version)) {
                moduleId.setVersion(version);
            }

            if (moduleId.isSetType()) {
                moduleId.unsetType();
            }
            if (!isEmpty(type)) {
                moduleId.setType(type);
            }

            if (environment.isSetHiddenClasses()) {
                environment.unsetHiddenClasses();
            }
            if (!isEmpty(hiddenClasses)) {
                String[] splitStrings = getNonEmptyStrings(hiddenClasses.split(";"));
                if (splitStrings.length > 0) {
                    environment.addNewHiddenClasses().setFilterArray(splitStrings);
                }
            }
            if (environment.isSetNonOverridableClasses()) {
                environment.unsetNonOverridableClasses();
            }
            if (!isEmpty(nonOverridableClasses)) {
                String[] splitStrings = getNonEmptyStrings(nonOverridableClasses.split(";"));
                if (splitStrings.length > 0) {
                    environment.addNewNonOverridableClasses().setFilterArray(splitStrings);
                }
            }
            if (environment.isSetInverseClassloading()) {
                environment.unsetInverseClassloading();
            }
            if (inverseClassLoading.size() > 0 && "true".equalsIgnoreCase(inverseClassLoading.get(0))) {
                environment.addNewInverseClassloading();
            }
        }

        private String[] getNonEmptyStrings(String[] strings) {
            ArrayList<String> list = new ArrayList<String>();
            for (int i = 0; i < strings.length; i++) {
                if (strings[i].trim().length() > 0)
                    list.add(strings[i].trim());
            }
            return list.toArray(new String[list.size()]);
        }

        private boolean isEmpty(String s) {
            return s == null || s.trim().equals("");
        }

        public String getGroupId() {
            return groupId;
        }

        public void setGroupId(String groupId) {
            this.groupId = groupId;
        }

        public String getArtifactId() {
            return artifactId;
        }

        public void setArtifactId(String artifactId) {
            this.artifactId = artifactId;
        }

        public String getVersion() {
            return version;
        }

        public void setVersion(String version) {
            this.version = version;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getHiddenClasses() {
            return hiddenClasses;
        }

        public void setHiddenClasses(String hiddenClasses) {
            this.hiddenClasses = hiddenClasses;
        }

        public String getNonOverridableClasses() {
            return nonOverridableClasses;
        }

        public void setNonOverridableClasses(String nonOverridableClasses) {
            this.nonOverridableClasses = nonOverridableClasses;
        }

        public List<String> getInverseClassLoading() {
            return inverseClassLoading;
        }

        public void setInverseClassLoading(List<String> inverseClassLoading) {
            this.inverseClassLoading = inverseClassLoading;
        }
    }

    @RemoteMethod
    public EnvironmentJson getEnvironmentJson(HttpServletRequest request) {
        return new EnvironmentJson(getEarConfigData(request).getEnvironmentConfig().getEnvironment());
    }

    @RemoteMethod
    public void saveEnvironmentJson(HttpServletRequest request, EnvironmentJson envJson){
        envJson.save(getEarConfigData(request).getEnvironmentConfig().getEnvironment());
    }

    @DataTransferObject
    public static class DependencyItem implements Serializable {
        String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

    }

    @DataTransferObject
    public static class DependenciesJsonTree implements Serializable {
        String identifier = "name";
        String label = "name";
        List<DependencyItem> items = new ArrayList<DependencyItem>();

        public String getIdentifier() {
            return identifier;
        }

        public void setIdentifier(String identifier) {
            this.identifier = identifier;
        }

        public String getLabel() {
            return label;
        }

        public void setLabel(String label) {
            this.label = label;
        }

        public List<DependencyItem> getItems() {
            return items;
        }

        public void setItems(List<DependencyItem> items) {
            this.items = items;
        }

        public DependenciesJsonTree() {
        }

        public DependenciesJsonTree(EnvironmentConfigData environmentConfig) {
            Iterator<String> iter = environmentConfig.getDependenciesSet().iterator();
            while (iter.hasNext()) {
                String depString = iter.next();
                DependencyItem item = new DependencyItem();
                item.setName(depString);
                items.add(item);
            }
        }

        public void save(HashSet<String> dependenciesSet) {
            dependenciesSet.clear();
            for (int i = 0; i < items.size(); i++) {
                String depString = items.get(i).getName();
                dependenciesSet.add(depString);
            }
        }
    }

    @RemoteMethod
    public DependenciesJsonTree getDependenciesJsonTree(HttpServletRequest request) {
        return new DependenciesJsonTree(getEarConfigData(request).getEnvironmentConfig());
    }

    @RemoteMethod
    public void saveDependenciesJsonTree(HttpServletRequest request, DependenciesJsonTree dependenciesJsonTree){
        dependenciesJsonTree.save(getEarConfigData(request).getEnvironmentConfig().getDependenciesSet());
    }

    @DataTransferObject
    public static class SecurityPrincipalJson implements Serializable {
        private String name;
        private String principalName;
        private String type;
        private String className;
        private String domainName;
        private String realmName;

        public SecurityPrincipalJson() {
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getPrincipalName() {
            return principalName;
        }

        public void setPrincipalName(String principalName) {
            this.principalName = principalName;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getClassName() {
            return className;
        }

        public void setClassName(String className) {
            this.className = className;
        }

        public String getDomainName() {
            return domainName;
        }

        public void setDomainName(String domainName) {
            this.domainName = domainName;
        }

        public String getRealmName() {
            return realmName;
        }

        public void setRealmName(String realmName) {
            this.realmName = realmName;
        }
    }

    @DataTransferObject
    public static class SecurityRoleJson implements Serializable {
        private String roleName;
        private SecurityPrincipalJson[] children;

        public SecurityRoleJson() {
        }

        public String getName() {
            return "role = '" + roleName + "'";
        }

        public void setName(String name) {
            int beg = name.indexOf('\'');
            this.roleName = name.substring(beg, name.indexOf('\'', beg + 1));
        }

        public String getRoleName() {
            return roleName;
        }

        public void setRoleName(String roleName) {
            this.roleName = roleName;
        }

        public SecurityPrincipalJson[] getChildren() {
            return children;
        }

        public void setChildren(SecurityPrincipalJson[] children) {
            this.children = children;
        }
    }

    @DataTransferObject
    public static class ModuleSecurityJsonTree implements Serializable {
        SecurityRoleJson[] items;

        public String getIdentifier() {
            return "name";
        }

        public void setIdentifier(String name) {
        }

        public String getLabel() {
            return "name";
        }

        public void setLabel(String label) {
        }

        public SecurityRoleJson[] getItems() {
            return items;
        }

        public void setItems(SecurityRoleJson[] items) {
            this.items = items;
        }

        public ModuleSecurityJsonTree() {
        }

        public ModuleSecurityJsonTree(WARConfigData warConfig) {
            GerRoleType[] roles = warConfig.getSecurity().getRoleMappings().getRoleArray();
            items = new SecurityRoleJson[roles.length];

            for (int i = 0; i < roles.length; i++) {
                SecurityRoleJson jRole = new SecurityRoleJson();
                GerRoleType role = roles[i];
                String roleName = role.getRoleName();
                jRole.setRoleName(roleName);

                GerPrincipalType[] principals = role.getPrincipalArray();
                GerLoginDomainPrincipalType[] loginDomainPrincipals = role.getLoginDomainPrincipalArray();
                GerRealmPrincipalType[] realmPrincipals = role.getRealmPrincipalArray();
                GerDistinguishedNameType[] distinguishedNames = role.getDistinguishedNameArray();

                int jLength = principals.length + loginDomainPrincipals.length + realmPrincipals.length + distinguishedNames.length;

                if (jLength > 0) {
                    SecurityPrincipalJson[] jPrincipals = new SecurityPrincipalJson[jLength];
                    int jIndex;

                    for (int j = 0; j < principals.length; j++) {
                        SecurityPrincipalJson jPrincipal = new SecurityPrincipalJson();
                        jPrincipal.setPrincipalName(principals[j].getName());
                        jPrincipal.setClassName(principals[j].getClass1());
                        jPrincipal.setType("Principal");
                        jPrincipal.setName(roleName + ".principal" + (1 + j));
                        jPrincipals[j] = jPrincipal;
                    }
                    jIndex = principals.length;

                    for (int j = 0; j < loginDomainPrincipals.length; j++) {
                        SecurityPrincipalJson jPrincipal = new SecurityPrincipalJson();
                        jPrincipal.setPrincipalName(loginDomainPrincipals[j].getName());
                        jPrincipal.setClassName(loginDomainPrincipals[j].getClass1());
                        jPrincipal.setDomainName(loginDomainPrincipals[j].getDomainName());
                        jPrincipal.setType("LoginDomainPrincipal");
                        jPrincipal.setName(roleName + ".principal" + (1 + j + jIndex));
                        jPrincipals[j + jIndex] = jPrincipal;
                    }
                    jIndex += loginDomainPrincipals.length;

                    for (int j = 0; j < realmPrincipals.length; j++) {
                        SecurityPrincipalJson jPrincipal = new SecurityPrincipalJson();
                        jPrincipal.setPrincipalName(realmPrincipals[j].getName());
                        jPrincipal.setClassName(realmPrincipals[j].getClass1());
                        jPrincipal.setDomainName(realmPrincipals[j].getDomainName());
                        jPrincipal.setRealmName(realmPrincipals[j].getRealmName());
                        jPrincipal.setType("RealmPrincipal");
                        jPrincipal.setName(roleName + ".principal" + (1 + j + jIndex));
                        jPrincipals[j + jIndex] = jPrincipal;
                    }
                    jIndex += realmPrincipals.length;

                    for (int j = 0; j < distinguishedNames.length; j++) {
                        SecurityPrincipalJson jPrincipal = new SecurityPrincipalJson();
                        jPrincipal.setPrincipalName(distinguishedNames[j].getName());
                        jPrincipal.setType("DistinguishedName");
                        jPrincipal.setName(roleName + ".principal" + (1 + j + jIndex));
                        jPrincipals[j + jIndex] = jPrincipal;
                    }

                    jRole.setChildren(jPrincipals);
                }
                items[i] = jRole;
            }
        }

        public void save(WARConfigData warConfig, Hashtable<String, Subject> runAsSubjects) {
            if (warConfig.getSecurity().isSetRoleMappings())
                warConfig.getSecurity().unsetRoleMappings();
            GerRoleMappingsType roleMappings = warConfig.getSecurity().addNewRoleMappings();

            for (int i = 0; i < items.length; i++) {
                SecurityPrincipalJson[] jPrincipals = items[i].getChildren();
                SecurityRoleJson item = items[i];

                GerRoleType role = roleMappings.addNewRole();
                role.setRoleName(item.getRoleName());

                for (int j = 0; j < jPrincipals.length; j++) {
                    SecurityPrincipalJson jPrincipal = jPrincipals[j];
                    String type = jPrincipal.getType();

                    if (type.equals("Principal")) {
                        GerPrincipalType principal = role.addNewPrincipal();
                        principal.setName(jPrincipal.getPrincipalName());
                        principal.setClass1(jPrincipal.getClassName());
                    } else if (type.equals("LoginDomainPrincipal")) {
                        GerLoginDomainPrincipalType principal = role.addNewLoginDomainPrincipal();
                        principal.setName(jPrincipal.getPrincipalName());
                        principal.setClass1(jPrincipal.getClassName());
                        principal.setDomainName(jPrincipal.getDomainName());
                    } else if (type.equals("RealmPrincipal")) {
                        GerRealmPrincipalType principal = role.addNewRealmPrincipal();
                        principal.setName(jPrincipal.getPrincipalName());
                        principal.setClass1(jPrincipal.getClassName());
                        principal.setDomainName(jPrincipal.getDomainName());
                        principal.setRealmName(jPrincipal.getRealmName());
                    } else if (type.equals("DistinguishedName")) {
                        GerDistinguishedNameType principal = role.addNewDistinguishedName();
                        principal.setName(jPrincipal.getPrincipalName());
                    }
                }

                if (runAsSubjects != null
                        && runAsSubjects.containsKey(item.getRoleName())) {
                    GerSubjectInfoType gerRunAsSubject = role.addNewRunAsSubject();
                    Subject runAsSubject = runAsSubjects.get(item.getRoleName());
                    gerRunAsSubject.setId(runAsSubject.getId());
                    gerRunAsSubject.setRealm(runAsSubject.getRealm());
                }
            }
        }
    }

    @DataTransferObject
    public static class Subject implements Serializable {
        String realm;
        String id;

        public Subject() {
        }

        public Subject(String id, String realm) {
            this.id = id;
            this.realm = realm;
        }

        public String getRealm() {
            return realm;
        }

        public void setRealm(String realm) {
            this.realm = realm;
        }

        public String getId() {
            return id;
        }

        public void setId(String id) {
            this.id = id;
        }
    }

    @DataTransferObject
    public static class CredentialStoreRef implements Serializable {
        String groupId;
        String artifactId;
        String version;
        String type;
        String module;
        String name;

        public String getGroupId() {
            return groupId;
        }

        public void setGroupId(String groupId) {
            this.groupId = groupId;
        }

        public String getArtifactId() {
            return artifactId;
        }

        public void setArtifactId(String artifactId) {
            this.artifactId = artifactId;
        }

        public String getVersion() {
            return version;
        }

        public void setVersion(String version) {
            this.version = version;
        }

        public String getType() {
            return type;
        }

        public void setType(String type) {
            this.type = type;
        }

        public String getModule() {
            return module;
        }

        public void setModule(String module) {
            this.module = module;
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public CredentialStoreRef() {
        }

        public CredentialStoreRef(String groupId, String artifactId,
                String version, String type, String module, String name) {
            this.groupId = groupId;
            this.artifactId = artifactId;
            this.version = version;
            this.type = type;
            this.module = module;
            this.name = name;
        }

        public CredentialStoreRef(String combined) {
            String[] values = combined.split("/", 6);
            groupId = values[0];
            artifactId = values[1];
            version = values[2];
            type = values[3];
            module = values[4];
            name = values[5];
        }

        public void save(PatternType credentialStoreRef) {
            credentialStoreRef.setGroupId(groupId);
            credentialStoreRef.setArtifactId(artifactId);
            credentialStoreRef.setVersion(version);
            credentialStoreRef.setType(type);
            credentialStoreRef.setModule(module);
            credentialStoreRef.setName(name);
        }

        public String toString() {
            String combined = groupId;
            if (artifactId != null)
                combined = combined + '/' + artifactId;
            if (version != null)
                combined = combined + '/' + version;
            if (type != null)
                combined = combined + '/' + type;
            if (module != null)
                combined = combined + '/' + module;
            if (name != null)
                combined = combined + '/' + name;

            return combined;
        }
    }

    @DataTransferObject
    public static class ModuleSecurityConfig implements Serializable {
        private ModuleSecurityJsonTree roleMappings;
        private String securityRealmName;
        private Hashtable<String, Subject> runAsSubjects;
        private String defaultSubjectRealm, defaultSubjectId;
        private CredentialStoreRef credentialStoreRef;
        private boolean doasCurrentCaller;
        private boolean useContextHandler;

        public ModuleSecurityConfig() {
        }

        public ModuleSecurityConfig(WARConfigData warConfig) {
            roleMappings = new ModuleSecurityJsonTree(warConfig);
            setSecurityRealmName(warConfig.getWebApp().getSecurityRealmName());

            GerSecurityType security = warConfig.getSecurity();

            GerRoleType[] roles = security.getRoleMappings().getRoleArray();
            runAsSubjects = new Hashtable<String, Subject>();
            for (int i = 0; i < roles.length; i++) {
                GerSubjectInfoType runAsSubject = roles[i].getRunAsSubject();
                if (runAsSubject != null && runAsSubject.getId() != null && runAsSubject.getRealm() != null) {
                    runAsSubjects.put(roles[i].getRoleName(), new Subject(runAsSubject.getId(), runAsSubject.getRealm()));
                }
            }

            GerSubjectInfoType gerDefaultSubject = security.getDefaultSubject();
            if (gerDefaultSubject != null && gerDefaultSubject.getId() != null && gerDefaultSubject.getRealm() != null) {
                defaultSubjectId = gerDefaultSubject.getId();
                defaultSubjectRealm = gerDefaultSubject.getRealm();
            }

            if (security.isSetCredentialStoreRef()) {
                PatternType c = security.getCredentialStoreRef();
                credentialStoreRef = new CredentialStoreRef(c.getGroupId(), c.getArtifactId(), c.getVersion(), c.getType(), c.getModule(), c.getName());
            }
            doasCurrentCaller = security.getDoasCurrentCaller();
            useContextHandler = security.getUseContextHandler();
        }

        public void save(WARConfigData warConfig) {
            roleMappings.save(warConfig, runAsSubjects);
            warConfig.getWebApp().setSecurityRealmName(securityRealmName);

            GerSecurityType security = warConfig.getSecurity();

            if (security.isSetDefaultSubject())
                security.unsetDefaultSubject();
            if (defaultSubjectRealm != null && defaultSubjectId != null) {
                GerSubjectInfoType gerDefaultSubject = security
                        .addNewDefaultSubject();
                gerDefaultSubject.setId(defaultSubjectId);
                gerDefaultSubject.setRealm(defaultSubjectRealm);
            }

            if (security.isSetCredentialStoreRef())
                security.unsetCredentialStoreRef();
            if (credentialStoreRef != null)
                credentialStoreRef.save(security.addNewCredentialStoreRef());

            if (security.isSetDoasCurrentCaller())
                security.unsetDoasCurrentCaller();
            if (doasCurrentCaller)
                security.setDoasCurrentCaller(doasCurrentCaller);

            if (security.isSetUseContextHandler())
                security.unsetUseContextHandler();
            if (useContextHandler)
                security.setUseContextHandler(useContextHandler);
        }

        public String getSecurityRealmName() {
            return securityRealmName;
        }

        public void setSecurityRealmName(String securityRealmName) {
            this.securityRealmName = securityRealmName;
        }

        public ModuleSecurityJsonTree getRoleMappings() {
            return roleMappings;
        }

        public void setRoleMappings(ModuleSecurityJsonTree roleMappings) {
            this.roleMappings = roleMappings;
        }

        public Hashtable<String, Subject> getRunAsSubjects() {
            return runAsSubjects;
        }

        public void setRunAsSubjects(Hashtable<String, Subject> runAsSubjects) {
            this.runAsSubjects = runAsSubjects;
        }

        public boolean isDoasCurrentCaller() {
            return doasCurrentCaller;
        }

        public void setDoasCurrentCaller(boolean doasCurrentCaller) {
            this.doasCurrentCaller = doasCurrentCaller;
        }

        public boolean isUseContextHandler() {
            return useContextHandler;
        }

        public void setUseContextHandler(boolean useContextHandler) {
            this.useContextHandler = useContextHandler;
        }

        public String getCredentialStoreRef() {
            if (credentialStoreRef != null)
                return credentialStoreRef.toString();
            return "";
        }

        public void setCredentialStoreRef(String credentialStoreRef) {
            if (credentialStoreRef.trim().length() == 0) {
                this.credentialStoreRef = null;
            } else {
                this.credentialStoreRef = new CredentialStoreRef(credentialStoreRef);
            }
        }

        public String getDefaultSubjectRealm() {
            return defaultSubjectRealm;
        }

        public void setDefaultSubjectRealm(String defaultSubjectRealm) {
            this.defaultSubjectRealm = defaultSubjectRealm;
        }

        public String getDefaultSubjectId() {
            return defaultSubjectId;
        }

        public void setDefaultSubjectId(String defaultSubjectId) {
            this.defaultSubjectId = defaultSubjectId;
        }
    }

    @DataTransferObject
    public static class SecurityJson implements Serializable {
        private Hashtable<String, ModuleSecurityConfig> webModules = new Hashtable<String, ModuleSecurityConfig>();

        // TODO EJB Modules
        // private Hashtable<String, ModuleSecurityConfig> ejbModules = new
        // Hashtable<String, ModuleSecurityConfig>();
        public SecurityJson() {
        }

        public SecurityJson(EARConfigData earConfig) {
            Hashtable<String, WARConfigData> webConfigs = earConfig.getWebModules();

            Enumeration keys = webConfigs.keys();
            while (keys.hasMoreElements()) {
                String key = (String) keys.nextElement();
                webModules.put(key, new ModuleSecurityConfig(webConfigs.get(key)));
            }
        }

        public Hashtable<String, ModuleSecurityConfig> getWebModules() {
            return webModules;
        }

        public void setWebModules(Hashtable<String, ModuleSecurityConfig> webModules) {
            this.webModules = webModules;
        }

        public void save(EARConfigData earConfig) {
            Hashtable<String, WARConfigData> webConfigs = earConfig
                    .getWebModules();

            Enumeration keys = webConfigs.keys();
            while (keys.hasMoreElements()) {
                String key = (String) keys.nextElement();
                webModules.get(key).save(webConfigs.get(key));
            }
        }
    }

    @RemoteMethod
    public SecurityJson getSecurityJson(HttpServletRequest request) {
        return new SecurityJson(getEarConfigData(request));
    }

    @RemoteMethod
    public void saveSecurityJson(HttpServletRequest request, SecurityJson securityData) {
        securityData.save(getEarConfigData(request));
    }

    @RemoteMethod
    public String getGeneratedPlan(HttpServletRequest request) {
        return getEarConfigData(request).getDeploymentPlan();
    }

    @RemoteMethod
    public String saveGeneratedPlan(HttpServletRequest request, String plan) {
        return getEarConfigData(request).setDeploymentPlan(plan);
    }
    /*@RemoteMethod
    public String[] getWebModules() {
        return null;
    }

    @RemoteMethod
    public String[] getEjbModules() {
        return null;
    }

    @RemoteMethod
    public String[] getSessionBeans(String ejbModuleName) {
        return null;
    }

    @RemoteMethod
    public String[] getMDBs(String ejbModuleName) {
        return null;
    }*/
TOP

Related Classes of org.apache.geronimo.console.configcreator.configData.EARHelper$DependenciesJsonTree

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.