/**
* Licensed 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.jboss.loom.conf;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.xml.bind.annotation.XmlRootElement;
/**
* Class for storing global information needed for migration. Like dir of AS7, AS5, and profiles
* <p/>
* With regard of possibility to migrate from other vendors' AS,
* split to AS 7 config class, and then have 1 class per server (AS 5, WebLogic, ...).
*/
@XmlRootElement(name="global")
public class GlobalConfiguration {
// AS 7 stuff
private AS7Config as7Config = new AS7Config();
// AS 5 stuff
private AS5Config as5config = new AS5Config();
// Non-server stuff
private Set<String> appPaths = new HashSet();
private boolean skipValidation = false;
private boolean dryRun = false;
private boolean isTestRun = false;
// This is rather for test purposes. If null, all are used.
private List<String> onlyMigrators = new LinkedList();
private String reportDir = "MigrationReport";
private String externalMigratorsDir;
// User vars - accessible in EL's and Groovy scripts.
private Map<String, String> userVars = new HashMap();
//<editor-fold defaultstate="collapsed" desc="get/set">
@Deprecated // Use getTargetServer()
public AS7Config getAS7Config() { return as7Config; }
//public void setAS7Config(AS7Config as7Config) { this.as7Config = as7Config; }
@Deprecated // Use getSourceServer()
public AS5Config getAS5Config() { return as5config; }
//public void setAS5Config(As5Config as5config) { this.as5config = as5config; }
public Set<String> getDeploymentsPaths() { return appPaths; }
public void addDeploymentPath(String deplPath) { this.appPaths.add( deplPath ); }
public boolean isSkipValidation() { return skipValidation; }
public void setSkipValidation(boolean skipValidation) { this.skipValidation = skipValidation; }
public boolean isDryRun() { return dryRun; }
public void setDryRun( boolean dryRun ) { this.dryRun = dryRun; }
public boolean isTestRun() { return isTestRun; }
public void setTestRun( boolean isTestRun ) { this.isTestRun = isTestRun; }
public String getReportDir() { return reportDir; }
public void setReportDir( String reportDir ) { this.reportDir = reportDir; }
public String getExternalMigratorsDir() { return externalMigratorsDir; }
public void setExternalMigratorsDir( String externalMigratorsDir ) { this.externalMigratorsDir = externalMigratorsDir; }
public List<String> getOnlyMigrators() { return onlyMigrators; }
public List<String> addOnlyMigrator( String name ) { onlyMigrators.add(name); return onlyMigrators; }
public Map<String, String> getUserVars() { return userVars; }
public String getUserVar( String name) { return userVars.get(name); }
public void setUserVar( String name, String val ) { this.userVars.put( name, val ); }
//</editor-fold>
// JAXB
public String getSourceServerDir(){ return as5config.getDir(); }
public String getTargetServerDir(){ return as7Config.getDir(); }
// Aliases. They will replace those which the call.
public AS5Config getSourceServerConf(){ return getAS5Config(); }
public AS7Config getTargetServerConf(){ return getAS7Config(); }
}// class