de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper/**
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * Copyright (c) 2007 Sun Microsystems Inc. All Rights Reserved
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * The contents of this file are subject to the terms
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * of the Common Development and Distribution License
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * (the License). You may not use this file except in
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * compliance with the License.
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * You can obtain a copy of the License at
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * https://opensso.dev.java.net/public/CDDLv1.0.html or
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * opensso/legal/CDDLv1.0.txt
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * See the License for the specific language governing
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * permission and limitations under the License.
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * When distributing Covered Code, include this CDDL
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * Header Notice in each file and include the License file
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * at opensso/legal/CDDLv1.0.txt.
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * If applicable, add the following below the CDDL Header,
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * with the fields enclosed by brackets [] replaced by
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * your own identifying information:
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * "Portions Copyrighted [year] [name of copyright owner]"
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * $Id: WeblogicHomeDirValidator.java,v 1.4 2008/06/25 05:52:21 qcheng Exp $
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper *
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper */
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperpackage com.sun.identity.agents.tools.weblogic.v10;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.io.BufferedReader;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.io.File;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.io.IOException;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.io.InputStreamReader;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.util.Map;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.util.HashMap;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport java.util.ArrayList;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.IStateAccess;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.InstallException;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidationResult;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidationResultStatus;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.ValidatorBase;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.util.Debug;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.util.FileUtils;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.util.LocalizedMessage;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.InstallConstants;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperimport com.sun.identity.install.tools.configurator.InstallException;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper/**
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * This task validates Weblogic's home directory.
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper */
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeperpublic class WeblogicHomeDirValidator extends ValidatorBase
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper implements InstallConstants,IConfigKeys {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public WeblogicHomeDirValidator() throws InstallException {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper super();
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public ValidationResult isHomeDirValid(String homeDir, Map props,
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper IStateAccess state) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper ValidationResultStatus validRes = ValidationResultStatus.STATUS_FAILED;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LocalizedMessage returnMessage = null;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator:isHomeDirValid()");
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper if ((homeDir != null) && (homeDir.trim().length() >= 0)) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper File homeDirFile = new File(homeDir);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper if (homeDirFile.exists() && homeDirFile.isDirectory() &&
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper homeDirFile.canRead()) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator:isHomeDirValid() - "
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper + homeDir + " is valid");
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper returnMessage = LocalizedMessage.get(
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LOC_VA_MSG_WL_VAL_WEBLOGIC_HOME_DIR,
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper STR_WL_GROUP,new Object[] {homeDir});
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper validRes = ValidationResultStatus.STATUS_SUCCESS;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper if (validRes.getIntValue() ==
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper ValidationResultStatus.INT_STATUS_FAILED) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper returnMessage =
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LocalizedMessage.get(LOC_VA_WRN_WL_INVAL_WEBLOGIC_HOME_DIR,
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper STR_WL_GROUP, new Object[] {homeDir});
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator: Is Home Directory " +
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper homeDir + " valid ? " + validRes.isSuccessful());
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper return new ValidationResult(validRes,null,returnMessage);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public ValidationResult isWeblogicServerPortal(String isPortal, Map props,
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper IStateAccess state) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper ValidationResultStatus validRes = ValidationResultStatus.STATUS_SUCCESS;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LocalizedMessage returnMessage = null;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper String userEnterDomain = null;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper if (isPortal.equalsIgnoreCase(STR_TRUE_VALUE)) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper userEnterDomain = STR_PORTAL_DOMAIN_TYPE;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper } else {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper userEnterDomain = STR_SERVER_DOMAIN_TYPE;
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper state.put(STR_KEY_WL_DOMAIN, userEnterDomain);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator.isWeblogicServerPortal() - " +
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper "User Entered domain type is:" + userEnterDomain);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper return new ValidationResult(validRes, null, returnMessage);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public void initializeValidatorMap() throws InstallException {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Class[] paramObjs = {String.class,Map.class,IStateAccess.class};
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper try {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper getValidatorMap().put("VALID_WL_HOME_DIR",
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper this.getClass().getMethod("isHomeDirValid",paramObjs));
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper getValidatorMap().put("VALID_WL_DOMAIN",
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper this.getClass().getMethod("isWeblogicServerPortal",
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper paramObjs));
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper } catch (NoSuchMethodException nsme) {
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator: NoSuchMethodException " +
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper "thrown while loading method :",nsme);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper throw new InstallException(LocalizedMessage.get(
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),nsme);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper } catch (SecurityException se){
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator: SecurityException thrown "
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper + "while loading method :",se);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper throw new InstallException(LocalizedMessage.get(
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),se);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper } catch (Exception ex){
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Debug.log("WeblogicHomeDirValidator: Exception thrown while " +
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper "loading method :",ex);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper throw new InstallException(LocalizedMessage.get(
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper LOC_VA_ERR_VAL_METHOD_NOT_FOUND),ex);
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper }
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper /** Hashmap of Validator names and integers */
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper Map validMap = new HashMap();
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper /*
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper * Localized constants
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper */
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public static String LOC_VA_MSG_WL_VAL_WEBLOGIC_HOME_DIR =
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper "VA_MSG_WL_VAL_WEBLOGIC_HOME_DIR";
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper public static String LOC_VA_WRN_WL_INVAL_WEBLOGIC_HOME_DIR =
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper "VA_WRN_WL_INVAL_WEBLOGIC_HOME_DIR";
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper
de47fb992b4c3414ac5b445d5cab364b0b8b8b43Mark de Reeper}