/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2010-2015 ForgeRock AS. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* http://forgerock.org/license/CDDLv1.0.html
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at http://forgerock.org/license/CDDLv1.0.html
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
*/
package com.sun.identity.agents.tools.tomcat.v6;
import com.sun.identity.install.tools.configurator.IStateAccess;
import com.sun.identity.install.tools.configurator.ITask;
import com.sun.identity.install.tools.configurator.InstallException;
import com.sun.identity.install.tools.util.ConfigUtil;
import com.sun.identity.install.tools.util.Debug;
import com.sun.identity.install.tools.util.LocalizedMessage;
import com.sun.identity.install.tools.util.FileUtils;
import java.io.File;
import java.util.Map;
/**
*
* @author Steve Ferris steve.ferris@forgerock.com
*/
public class CopyAgentFilesTask extends AgentFilesBase implements ITask {
public static final String LOC_TSK_MSG_COPY_AGENT_FILES_SCRIPT_EXECUTE
= "TSK_MSG_COPY_AGENT_FILES_SCRIPT_EXECUTE";
public static final String LOC_TSK_MSG_COPY_AGENT_FILES_SCRIPT_ROLLBACK
= "TSK_MSG_COPY_AGENT_FILES_ROLLBACK";
public boolean execute(String name, IStateAccess stateAccess, Map properties)
throws InstallException {
boolean status = true;
try {
super.getAgentConfigLocation(stateAccess);
status = status && copyAgentJarFiles();
status = status && copyAgentLocaleFiles();
status = status && copyAgentAppWarFile();
} catch (Exception ex) {
status = false;
Debug.log("CopyAgentFilesTask.execute() - encountered exception " +
ex.getMessage(), ex);
}
return status;
}
private boolean copyAgentJarFiles() {
boolean status = true;
String srcDir = _agentLibPath;
String destDir = _catalinaHomeDir + STR_FORWARD_SLASH + STR_TOMCAT_COMMON_LIB;
try {
for (int i = 0; i < libJarFiles.length; i++) {
FileUtils.copyJarFile(srcDir, destDir, libJarFiles[i]);
Debug.log("CopyAgentFilesTask.copyAgentJarFiles() - copy " +
libJarFiles[i] + " from " + srcDir + " to " + destDir);
}
} catch (Exception ex) {
Debug.log("CopyAgentFilesTask.copyAgentJarFiles() - " +
"Error occured while copying jar files from " + srcDir +
" to " + destDir + ": " + ex.getMessage());
status = false;
}
return status;
}
private boolean copyAgentLocaleFiles() {
boolean status = true;
String srcDir = _agentLocalePath;
String destDir = _catalinaHomeDir + STR_FORWARD_SLASH + STR_TOMCAT_COMMON_LIB;
try {
for (File localeFile : listAgentLocaleFiles()) {
FileUtils.copyFile(srcDir + System.getProperty("file.separator") + localeFile.getName(),
destDir + System.getProperty("file.separator") + localeFile.getName());
Debug.log("CopyAgentFilesTask.copyAgentLocaleFiles() - copy " +
localeFile.getName() + " from " + srcDir + " to " + destDir);
}
} catch (Exception ex) {
Debug.log("CopyAgentFilesTask.copyAgentLocaleFiles() - " +
"Error occured while copying locale files from " + srcDir +
" to " + destDir + ": " + ex.getMessage());
status = false;
}
return status;
}
private boolean copyAgentAppWarFile() {
boolean status = true;
String srcFile = new StringBuilder(ConfigUtil.getEtcDirPath()).append(File.separator)
.append(STR_AGENT_APP_WAR_FILE).toString();
String destFile = new StringBuilder(_catalinaHomeDir).append(File.separator).append(STR_WEBAPP_DIR)
.append(File.separator).append(STR_AGENT_APP_WAR_FILE).toString();
try {
FileUtils.copyFile(srcFile, destFile);
Debug.log("CopyAgentFilesTask.copyAgentAppWarFile() - copy "
+ STR_AGENT_APP_WAR_FILE + " from " + srcFile + " to " + destFile);
} catch (Exception e) {
Debug.log("CopyAgentFilesTask.copyAgentAppWarFile() - Error occurred while copying "
+ STR_AGENT_APP_WAR_FILE + " from " + srcFile + " to " + destFile, e);
status = false;
}
return status;
}
public LocalizedMessage getExecutionMessage(IStateAccess stateAccess,
Map properties) {
super.getAgentConfigLocation(stateAccess);
LocalizedMessage message = LocalizedMessage.get(
LOC_TSK_MSG_COPY_AGENT_FILES_SCRIPT_EXECUTE,
STR_TOMCAT_GROUP, null);
return message;
}
public LocalizedMessage getRollBackMessage(IStateAccess stateAccess,
Map properties) {
LocalizedMessage message = LocalizedMessage.get(
LOC_TSK_MSG_COPY_AGENT_FILES_SCRIPT_ROLLBACK,
STR_TOMCAT_GROUP, null);
return message;
}
public boolean rollBack(String name, IStateAccess stateAccess,
Map properties) throws InstallException {
boolean status = false;
status = super.removeAgentFiles(stateAccess);
return status;
}
}