src/main/java/org/jboss/loom/conf/ConfigurationValidator.java
public static List<String> validate(Configuration config) {
        LinkedList<String> problems = new LinkedList<>();
        
        // AS 5
        String path = config.getGlobal().getAS5Config().getDir();
        if( null == path )
            problems.add("src.dir was not set.");
        else if( ! new File(path).isDirectory() )
            problems.add("src.dir is not a directory: " + path);
        else if( ! new File(path, "server").isDirectory() )
            problems.add("src.dir doesn't appear to be JBoss AS 5 directory - doesn't contain server/ subdir: " + path);
        else {
            String profileName = config.getGlobal().getAS5Config().getProfileName();
            if( null == profileName )
                ;
            else {
                File profileDir = config.getGlobal().getAS5Config().getProfileDir();
                if( ! profileDir.exists() )
                    problems.add("src.profile is not a subdirectory in AS 5 dir: " + profileDir.getPath());
            }
        }
        // AS 7
        AS7Config as7Config = config.getGlobal().getAS7Config();
        path = as7Config.getDir();
        if( null == path )
            problems.add("dest.dir was not set.");
        else if( ! new File(path).isDirectory() )
            problems.add("dest.dir is not a directory: " + path);
        else if( ! new File(path, "jboss-modules.jar").isFile())
            problems.add("dest.dir doesn't appear to be JBoss AS 7 directory - doesn't contain jboss-modules.jar: " + path);
        else {
            String configPath = as7Config.getConfigFilePath();
            if( null == configPath )
                ; //problems.add("dest.confPath was not set."); // TODO: Put defaults to the config.
            else{
                File configFile = new File(configPath);
                if( ! configFile.exists() )
                //    problems.add(
                    log.warn("dest.conf.file is not not found in AS 7 dir: " + configFile.getPath() );
            }
        }
        
        // Management host and port
        mgmt: {
            if( as7Config.getManagementPort() == -1 ){
                problems.add("dest.mgmt doesn't contain valid port after ':'.");
                break mgmt;
            }
        
            ModelControllerClient client = null;
            try {
                client = ModelControllerClient.Factory.create(as7Config.getHost(), as7Config.getManagementPort());
                client.close();
            }
            catch( UnknownHostException ex ){
                problems.add("Can't connect to AS 7 management: " + as7Config.getHost() + ":" + as7Config.getManagementPort());
            }
            catch( IOException ex ){ } // Happens on close().
        }
        
        
        // App (deployment)
        Set<String> paths = config.getGlobal().getDeploymentsPaths();
        for( String string : paths ) {
            if( null != path && ! new File(path).exists())
                problems.add("App path was set but does not exist: " + path);
        }
        
        return problems;
    }
/**
     *  Validates the config - checks if the paths exist, contain the expected files etc.
     * 
     *  @returns  True if everything is OK.
     */
Validates the config - checks if the paths exist, contain the expected files etc.

@returns  True if everything is OK.
Validates the config - checks if the paths exist contain the expected files etc . @returns True if everything is OK .
public static List<String> validate(Configuration config) {
        LinkedList<String> problems = new LinkedList<>();
        String path = config.getGlobal().getAS5Config().getDir();
        if( null == path )
            problems.add("src.dir was not set.");
        else if( ! new File(path).isDirectory() )
            problems.add("src.dir is not a directory: " + path);
        else if( ! new File(path, "server").isDirectory() )
            problems.add("src.dir doesn't appear to be JBoss AS 5 directory - doesn't contain server/ subdir: " + path);
        else {
            String profileName = config.getGlobal().getAS5Config().getProfileName();
            if( null == profileName )
                ;
            else {
                File profileDir = config.getGlobal().getAS5Config().getProfileDir();
                if( ! profileDir.exists() )
                    problems.add("src.profile is not a subdirectory in AS 5 dir: " + profileDir.getPath());
            }
        }
        AS7Config as7Config = config.getGlobal().getAS7Config();
        path = as7Config.getDir();
        if( null == path )
            problems.add("dest.dir was not set.");
        else if( ! new File(path).isDirectory() )
            problems.add("dest.dir is not a directory: " + path);
        else if( ! new File(path, "jboss-modules.jar").isFile())
            problems.add("dest.dir doesn't appear to be JBoss AS 7 directory - doesn't contain jboss-modules.jar: " + path);
        else {
            String configPath = as7Config.getConfigFilePath();
            if( null == configPath )
                ; 
            else{
                File configFile = new File(configPath);
                if( ! configFile.exists() )
                    log.warn("dest.conf.file is not not found in AS 7 dir: " + configFile.getPath() );
            }
        }
        mgmt: {
            if( as7Config.getManagementPort() == -1 ){
                problems.add("dest.mgmt doesn't contain valid port after ':'.");
                break mgmt;
            }
            ModelControllerClient client = null;
            try {
                client = ModelControllerClient.Factory.create(as7Config.getHost(), as7Config.getManagementPort());
                client.close();
            }
            catch( UnknownHostException ex ){
                problems.add("Can't connect to AS 7 management: " + as7Config.getHost() + ":" + as7Config.getManagementPort());
            }
            catch( IOException ex ){ } 
        }
        Set<String> paths = config.getGlobal().getDeploymentsPaths();
        for( String string : paths ) {
            if( null != path && ! new File(path).exists())
                problems.add("App path was set but does not exist: " + path);
        }
        return problems;
    }
public static List < String > validate ( Configuration config ) { LinkedList < String > problems = new LinkedList < > ( ) ; String path = config . getGlobal ( ) . getAS5Config ( ) . getDir ( ) ; if ( null == path ) problems . add ( "src.dir was not set." ) ; else if ( ! new File ( path ) . isDirectory ( ) ) problems . add ( "src.dir is not a directory: " + path ) ; else if ( ! new File ( path , "server" ) . isDirectory ( ) ) problems . add ( "src.dir doesn't appear to be JBoss AS 5 directory - doesn't contain server/ subdir: " + path ) ; else { String profileName = config . getGlobal ( ) . getAS5Config ( ) . getProfileName ( ) ; if ( null == profileName ) ; else { File profileDir = config . getGlobal ( ) . getAS5Config ( ) . getProfileDir ( ) ; if ( ! profileDir . exists ( ) ) problems . add ( "src.profile is not a subdirectory in AS 5 dir: " + profileDir . getPath ( ) ) ; } } AS7Config as7Config = config . getGlobal ( ) . getAS7Config ( ) ; path = as7Config . getDir ( ) ; if ( null == path ) problems . add ( "dest.dir was not set." ) ; else if ( ! new File ( path ) . isDirectory ( ) ) problems . add ( "dest.dir is not a directory: " + path ) ; else if ( ! new File ( path , "jboss-modules.jar" ) . isFile ( ) ) problems . add ( "dest.dir doesn't appear to be JBoss AS 7 directory - doesn't contain jboss-modules.jar: " + path ) ; else { String configPath = as7Config . getConfigFilePath ( ) ; if ( null == configPath ) ; else { File configFile = new File ( configPath ) ; if ( ! configFile . exists ( ) ) log . warn ( "dest.conf.file is not not found in AS 7 dir: " + configFile . getPath ( ) ) ; } } mgmt : { if ( as7Config . getManagementPort ( ) == - 1 ) { problems . add ( "dest.mgmt doesn't contain valid port after ':'." ) ; break mgmt ; } ModelControllerClient client = null ; try { client = ModelControllerClient . Factory . create ( as7Config . getHost ( ) , as7Config . getManagementPort ( ) ) ; client . close ( ) ; } catch ( UnknownHostException ex ) { problems . add ( "Can't connect to AS 7 management: " + as7Config . getHost ( ) + ":" + as7Config . getManagementPort ( ) ) ; } catch ( IOException ex ) { } } Set < String > paths = config . getGlobal ( ) . getDeploymentsPaths ( ) ; for ( String string : paths ) { if ( null != path && ! new File ( path ) . exists ( ) ) problems . add ( "App path was set but does not exist: " + path ) ; } return problems ; }
Validates the config - checks if the paths exist, contain the expected files etc.
Validates the config - checks if the paths exist contain the expected files etc .
// AS 5 // AS 7 //problems.add("dest.confPath was not set."); // TODO: Put defaults to the config. //    problems.add( // Management host and port // Happens on close(). // App (deployment)