From de190c4094ef4f0bb42d710d95b74bcef765aadc Mon Sep 17 00:00:00 2001 From: Peter Donald Date: Mon, 18 Feb 2002 09:14:37 +0000 Subject: [PATCH] Start simplifying so that metrics task does not complain as much git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271411 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/myrmidon/frontends/CLIMain.java | 154 ++++++++++++------ 1 file changed, 105 insertions(+), 49 deletions(-) diff --git a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java index 38c2d38f4..2b2e3c0c2 100644 --- a/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java +++ b/proposal/myrmidon/src/java/org/apache/myrmidon/frontends/CLIMain.java @@ -318,37 +318,11 @@ public class CLIMain return; } - //handle logging... - final String logLevel = m_parameters.getParameter( "log.level", null ); - enableLogging( new LogKitLogger( createLogger( logLevel ) ) ); - - final String home = m_parameters.getParameter( "myrmidon.home", null ); - final File homeDir = ( new File( home ) ).getAbsoluteFile(); - if( !homeDir.isDirectory() ) - { - final String message = REZ.getString( "home-not-dir.error", homeDir ); - throw new Exception( message ); - } - - final String filename = m_parameters.getParameter( "filename", null ); - final File buildFile = ( new File( filename ) ).getCanonicalFile(); - if( !buildFile.isFile() ) - { - final String message = REZ.getString( "bad-file.error", buildFile ); - throw new Exception( message ); - } + prepareLogging(); - if( getLogger().isInfoEnabled() ) - { - final String message = REZ.getString( "buildfile.notice", buildFile ); - getLogger().info( message ); - } + final File homeDir = getHomeDir(); + final File buildFile = getBuildFile(); - if( getLogger().isInfoEnabled() ) - { - final String message = REZ.getString( "homedir.notice", homeDir ); - getLogger().info( message ); - } //getLogger().info( "Ant Bin Directory: " + m_binDir ); //getLogger().debug( "Ant Lib Directory: " + m_libDir ); //getLogger().debug( "Ant Task Lib Directory: " + m_taskLibDir ); @@ -359,36 +333,37 @@ public class CLIMain "org.apache.myrmidon.components.executor.PrintingExecutor" ); } - final Embeddor embeddor = createEmbeddor(); - setupLogger( embeddor ); - embeddor.parameterize( m_parameters ); - embeddor.initialize(); - embeddor.start(); - - //create the listener - final String listenerName = m_parameters.getParameter( "listener", null ); - final ProjectListener listener = embeddor.createListener( listenerName ); + final Embeddor embeddor = prepareEmbeddor(); + final ProjectListener listener = prepareListener( embeddor ); //create the project final Project project = embeddor.createProject( buildFile.toString(), null, m_builderParameters ); - BufferedReader reader = null; - //loop over build if we are in incremental mode.. final boolean incremental = m_parameters.getParameterAsBoolean( "incremental", false ); - while( true ) + if( !incremental ) { - //actually do the build ... - final Workspace workspace = embeddor.createWorkspace( m_defines ); - workspace.addProjectListener( listener ); + executeBuild( embeddor, project, listener ); + } + else + { + executeIncrementalBuild( embeddor, project, listener ); + } - doBuild( workspace, project, m_targets ); + shutdownEmbeddor( embeddor ); + } - if( !incremental ) - { - break; - } + private void executeIncrementalBuild( final Embeddor embeddor, + final Project project, + final ProjectListener listener ) + throws Exception + { + BufferedReader reader = null; + + while( true ) + { + executeBuild( embeddor, project, listener ); final String message = REZ.getString( "repeat.notice" ); System.out.println( message ); @@ -406,11 +381,92 @@ public class CLIMain } } + } + + private void executeBuild( final Embeddor embeddor, + final Project project, + final ProjectListener listener ) + throws Exception + { + //actually do the build ... + final Workspace workspace = embeddor.createWorkspace( m_defines ); + workspace.addProjectListener( listener ); + + doBuild( workspace, project, m_targets ); + } + + private File getBuildFile() throws Exception + { + final String filename = m_parameters.getParameter( "filename", null ); + final File buildFile = ( new File( filename ) ).getCanonicalFile(); + if( !buildFile.isFile() ) + { + final String message = REZ.getString( "bad-file.error", buildFile ); + throw new Exception( message ); + } + + if( getLogger().isInfoEnabled() ) + { + final String message = REZ.getString( "buildfile.notice", buildFile ); + getLogger().info( message ); + } + + return buildFile; + } + + private File getHomeDir() throws Exception + { + final String home = m_parameters.getParameter( "myrmidon.home", null ); + final File homeDir = ( new File( home ) ).getAbsoluteFile(); + if( !homeDir.isDirectory() ) + { + final String message = REZ.getString( "home-not-dir.error", homeDir ); + throw new Exception( message ); + } + if( getLogger().isInfoEnabled() ) + { + final String message = REZ.getString( "homedir.notice", homeDir ); + getLogger().info( message ); + } + + return homeDir; + } + + private void prepareLogging() throws Exception + { + //handle logging... + final String logLevel = m_parameters.getParameter( "log.level", null ); + enableLogging( new LogKitLogger( createLogger( logLevel ) ) ); + } + + private void shutdownEmbeddor( final Embeddor embeddor ) + throws Exception + { embeddor.stop(); embeddor.dispose(); } + private ProjectListener prepareListener( final Embeddor embeddor ) + throws Exception + { + //create the listener + final String listenerName = m_parameters.getParameter( "listener", null ); + final ProjectListener listener = embeddor.createListener( listenerName ); + return listener; + } + + private Embeddor prepareEmbeddor() + throws Exception + { + final Embeddor embeddor = createEmbeddor(); + setupLogger( embeddor ); + embeddor.parameterize( m_parameters ); + embeddor.initialize(); + embeddor.start(); + return embeddor; + } + private Embeddor createEmbeddor() throws Exception {