772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper/**
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * Copyright (c) 2008 Sun Microsystems Inc. All Rights Reserved
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * The contents of this file are subject to the terms
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * of the Common Development and Distribution License
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * (the License). You may not use this file except in
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * compliance with the License.
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * You can obtain a copy of the License at
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * https://opensso.dev.java.net/public/CDDLv1.0.html or
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * opensso/legal/CDDLv1.0.txt
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * See the License for the specific language governing
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * permission and limitations under the License.
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * When distributing Covered Code, include this CDDL
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * Header Notice in each file and include the License file
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * at opensso/legal/CDDLv1.0.txt.
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * If applicable, add the following below the CDDL Header,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * with the fields enclosed by brackets [] replaced by
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * your own identifying information:
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * "Portions Copyrighted [year] [name of copyright owner]"
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * $Id: ConfigDirValidator.java,v 1.1 2008/12/11 15:01:54 naghaon Exp $
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper */
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperpackage com.sun.identity.agents.tools.jboss.v40;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.agents.tools.jboss.IConfigKeys;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.agents.tools.jboss.IConstants;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.configurator.IStateAccess;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.configurator.InstallException;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidationResult;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidationResultStatus;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidatorBase;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.util.Debug;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.util.FileUtils;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport com.sun.identity.install.tools.util.LocalizedMessage;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport java.io.File;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperimport java.util.Map;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper/**
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * Validates JBoss server instance's conf directory.
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper */
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeperpublic class ConfigDirValidator extends ValidatorBase
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper implements IConfigKeys, IConstants {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper /*
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * Localized constants
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper */
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper public static String LOC_VA_MSG_JB_VAL_CONFIG_DIR =
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper "VA_MSG_JB_VAL_CONFIG_DIR";
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper public static String LOC_VA_WRN_JB_IN_VAL_CONFIG_DIR =
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper "VA_WRN_JB_IN_VAL_CONFIG_DIR";
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper public ConfigDirValidator() throws InstallException {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper super();
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper /**
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * Method isConfigDirValid
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * @param dir
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * @param props
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * @param IStateAccess
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper * @return ValidationResult
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper *
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper */
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper public ValidationResult isConfigDirValid(String configDir, Map props,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper IStateAccess state) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper ValidationResultStatus validRes =
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper ValidationResultStatus.STATUS_FAILED;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LocalizedMessage returnMessage = null;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper if((configDir != null) && (configDir.trim().length() >= 0)) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper // jboss-service.xml
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper String jbServiceXmlFile = configDir + STR_FORWARD_SLASH +
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_SERVICE_XML_FILE;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper // login-config.xml
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper String loginConfFile = configDir + STR_FORWARD_SLASH +
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_LOGIN_CONF_XML_FILE;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper if ((FileUtils.isFileValid(jbServiceXmlFile)) &&
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper (FileUtils.isFileValid(loginConfFile))) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper // store instance's file locations in install state
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper state.put(STR_KEY_JB_SERVICE_XML_FILE, jbServiceXmlFile);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper state.put(STR_KEY_JB_LOGIN_CONF_XML_FILE, loginConfFile);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper // store JBoss server instance name
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper String jbInstName = (new File(jbServiceXmlFile)).
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper getParentFile().getParentFile().
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper getName();
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper state.put(STR_KEY_JB_INST_NAME, jbInstName);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper // store JBoss home and bin in install state
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper String jbHomeDir = (new File(jbServiceXmlFile)).
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper getParentFile().getParentFile().
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper getParentFile().getParent();
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper if ((jbHomeDir != null) && (jbHomeDir.length() > 0)) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper StringBuffer sb = new StringBuffer(jbHomeDir);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper sb.append(STR_FORWARD_SLASH);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper sb.append(STR_JB_SERVER_BIN);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper sb.append(STR_FORWARD_SLASH);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper sb.append(STR_JB_RUN_JAR);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper String jbJarFile = sb.toString();
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper if (FileUtils.isFileValid(jbJarFile)) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper state.put(
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_KEY_JB_HOME_DIR,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper jbHomeDir);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper state.put(
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_KEY_JB_RUN_JAR_FILE,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper jbJarFile);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper returnMessage =
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LocalizedMessage.get(LOC_VA_MSG_JB_VAL_CONFIG_DIR,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_JB_GROUP,new Object[] {configDir});
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper validRes = ValidationResultStatus.STATUS_SUCCESS;
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper if (validRes.getIntValue() ==
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper ValidationResultStatus.INT_STATUS_FAILED) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper returnMessage =
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LocalizedMessage.get(LOC_VA_WRN_JB_IN_VAL_CONFIG_DIR,
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper STR_JB_GROUP,new Object[] {configDir});
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper Debug.log("ConfigDirValidator : Is AS Config dir " +
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper configDir + " valid ? " + validRes.isSuccessful());
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper return new ValidationResult(validRes,null,returnMessage);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper public void initializeValidatorMap() throws InstallException {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper Class[] paramObjs = {String.class,Map.class,IStateAccess.class};
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper try {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper getValidatorMap().put("VALID_JB_CONFIG_DIR",
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper this.getClass().getMethod("isConfigDirValid",paramObjs));
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper } catch (NoSuchMethodException nsme) {
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper Debug.log("ConfigDirValidator: NoSuchMethodException " +
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper "thrown while loading method :",nsme);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper throw new InstallException(LocalizedMessage.get(
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),nsme);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper } catch (SecurityException se){
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper Debug.log("ConfigDirValidator: SecurityException thrown "
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper + "while loading method :",se);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper throw new InstallException(LocalizedMessage.get(
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),se);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper } catch (Exception ex){
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper Debug.log("ConfigDirValidator: Exception thrown while " +
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper "loading method :",ex);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper throw new InstallException(LocalizedMessage.get(
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),ex);
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper }
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper
772e6948bd1fe23ee7d309da6df96d9f99f04b46Mark de Reeper}