Author: jvanzyl Date: Tue Feb 27 17:11:43 2007 New Revision: 512540 URL: http://svn.apache.org/viewvc?view=rev&rev=512540 Log: o adding a way to set the local repository in the configuration o adding a configuration validator so that clients can tell what state the settings are in before firing up the embedder
Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java (contents, props changed) - copied, changed from r511320, maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java (with props) maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java (contents, props changed) - copied, changed from r511320, maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java (with props) Copied: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java (from r511320, maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java) URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java?view=diff&rev=512540&p1=maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java&r1=511320&p2=maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java&r2=512540 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/MavenEmbedderConfiguration.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java Tue Feb 27 17:11:43 2007 @@ -1,4 +1,4 @@ -package org.apache.maven.embedder; +package org.apache.maven.embedder.configuration; /* * Copyright 2001-2005 The Apache Software Foundation. * @@ -15,87 +15,109 @@ * limitations under the License. */ +import org.apache.maven.embedder.ContainerCustomizer; +import org.apache.maven.embedder.MavenEmbedderLogger; +import org.codehaus.plexus.classworlds.ClassWorld; + import java.io.File; import java.net.URL; import java.util.List; import java.util.Properties; -import org.apache.maven.settings.SettingsBuilderAdvice; -import org.codehaus.plexus.classworlds.ClassWorld; - /** * Configuration of embedder, used when starting up. * * @author mkleint + * @author Jason van Zyl */ -public interface MavenEmbedderConfiguration +public interface Configuration { - /* - * Add profile to activate. - */ - MavenEmbedderConfiguration addActiveProfile( String profile ); + // ---------------------------------------------------------------------------- + // Settings + // ---------------------------------------------------------------------------- - /* - * Add profile to inactivate. - */ - MavenEmbedderConfiguration addInactiveProfile( String profile ); + /** Set location of the userSettingsFile settings file to use for the embedder. */ + Configuration setUserSettingsFile( File userSettingsFile ); - /* - * Add a list of String instances with names of profiles to activate. - */ - MavenEmbedderConfiguration addActiveProfiles( List profiles ); - - /* - * Add a list of String instances with names of profiles to inactivate. - */ - MavenEmbedderConfiguration addInactiveProfiles( List profiles ); - - /* - * Set location of the user settings file to use for the embedder. - */ - MavenEmbedderConfiguration setUserSettingsFile( File user ); + File getUserSettingsFile(); - /* - * Set location of the global settings file to use for the embedder. - */ - MavenEmbedderConfiguration setGlobalSettingsFile( File global ); + /** Set location of the globalSettingsFiles settings file to use for the embedder. */ + Configuration setGlobalSettingsFile( File globalSettingsFiles ); + + File getGlobalSettingsFile(); + + // ---------------------------------------------------------------------------- + // Local Repository + // ---------------------------------------------------------------------------- /** - * Set a customizer callback implemetation that will be given a chance to modify the plexus container - * on startup. + * This overrides anything set in a settings file. */ - MavenEmbedderConfiguration setConfigurationCustomizer( ContainerCustomizer customizer ); + Configuration setLocalRepository( File localRepository ); - /** set the system properties to be used during the lifecycle of the embedder. Excluding the time when executing the project, then the properties from MavenExecutionRequestare used. */ - MavenEmbedderConfiguration setSystemProperties( Properties properties ); + File getLocalRepository(); - List getActiveProfiles(); + // ---------------------------------------------------------------------------- + // Logger + // ---------------------------------------------------------------------------- - List getInactiveProfiles(); + Configuration setMavenEmbedderLogger( MavenEmbedderLogger logger ); - File getUserSettingsFile(); + MavenEmbedderLogger getMavenEmbedderLogger(); - File getGlobalSettingsFile(); + // ---------------------------------------------------------------------------- + // ClassWorld/ClassLoader + // ---------------------------------------------------------------------------- - ContainerCustomizer getContainerCustomizer(); + ClassWorld getClassWorld(); - Properties getSystemProperties(); + Configuration setClassWorld( ClassWorld classWorld ); - void addExtension( URL url ); + Configuration setClassLoader( ClassLoader loader ); - List getExtensions(); + // ---------------------------------------------------------------------------- + // Profiles + // ---------------------------------------------------------------------------- - MavenEmbedderConfiguration setMavenEmbedderLogger( MavenEmbedderLogger logger ); + /** Add profile to activate. */ + Configuration addActiveProfile( String profile ); - MavenEmbedderLogger getMavenEmbedderLogger(); + /** Add profile to inactivate. */ + Configuration addInactiveProfile( String profile ); - ClassWorld getClassWorld(); + /** Add a list of String instances with names of profiles to activate. */ + Configuration addActiveProfiles( List profiles ); + + /** Add a list of String instances with names of profiles to inactivate. */ + Configuration addInactiveProfiles( List profiles ); + + /** Set a customizer callback implemetation that will be given a chance to modify the plexus container on startup. */ + Configuration setConfigurationCustomizer( ContainerCustomizer customizer ); + + /** set the system properties to be used during the lifecycle of the embedder. Excluding the time when executing the project, then the properties from MavenExecutionRequestare used. */ + Configuration setSystemProperties( Properties properties ); + + List getActiveProfiles(); - MavenEmbedderConfiguration setClassWorld( ClassWorld classWorld ); + List getInactiveProfiles(); + + // ---------------------------------------------------------------------------- + // Container Customizer + // ---------------------------------------------------------------------------- + + ContainerCustomizer getContainerCustomizer(); + + // ---------------------------------------------------------------------------- + // System Properties + // ---------------------------------------------------------------------------- - MavenEmbedderConfiguration setClassLoader( ClassLoader loader ); + Properties getSystemProperties(); + + // ---------------------------------------------------------------------------- + // Extensions + // ---------------------------------------------------------------------------- + + void addExtension( URL url ); - SettingsBuilderAdvice getSettingsBuilderAdvice(); - - void setSettingsBuilderAdvice( SettingsBuilderAdvice advice ); + List getExtensions(); } Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/Configuration.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java?view=auto&rev=512540 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java (added) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java Tue Feb 27 17:11:43 2007 @@ -0,0 +1,25 @@ +package org.apache.maven.embedder.configuration; + +/** @author Jason van Zyl */ +public interface ConfigurationValidationResult +{ + boolean isValid(); + + boolean isUserSettingsFilePresent(); + + void setUserSettingsFilePresent( boolean userSettingsFilePresent ); + + boolean isUserSettingsFileParses(); + + void setUserSettingsFileParses( boolean userSettingsFileParses ); + + boolean isGlobalSettingsFilePresent(); + + void setGlobalSettingsFilePresent( boolean globalSettingsFilePresent ); + + boolean isGlobalSettingsFileParses(); + + void setGlobalSettingsFileParses( boolean globalSettingsFileParses ); + + void display(); +} Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/ConfigurationValidationResult.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision Copied: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java (from r511320, maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java) URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java?view=diff&rev=512540&p1=maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java&r1=511320&p2=maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java&r2=512540 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/DefaultMavenEmbedderConfiguration.java (original) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java Tue Feb 27 17:11:43 2007 @@ -1,4 +1,4 @@ -package org.apache.maven.embedder; +package org.apache.maven.embedder.configuration; /* * Copyright 2001-2005 The Apache Software Foundation. * @@ -15,7 +15,11 @@ * limitations under the License. */ -import org.apache.maven.settings.SettingsBuilderAdvice; +import org.apache.maven.embedder.ContainerCustomizer; +import org.apache.maven.embedder.MavenEmbedderLogger; +import org.apache.maven.settings.Settings; +import org.apache.maven.settings.SettingsUtils; +import org.apache.maven.artifact.repository.ArtifactRepository; import org.codehaus.plexus.classworlds.ClassWorld; import java.io.File; @@ -25,12 +29,12 @@ import java.util.Properties; /** - * Default implementation of MavenEmbedderConfiguration intefrace. + * Default implementation of Configuration intefrace. * * @author mkleint */ -public class DefaultMavenEmbedderConfiguration - implements MavenEmbedderConfiguration +public class DefaultConfiguration + implements Configuration { private List inactives; @@ -51,34 +55,38 @@ private ClassWorld classWorld; - private SettingsBuilderAdvice advice; + private File localRepository; - /** Creates a new instance of DefaultMavenEmbedderConfiguration */ - public DefaultMavenEmbedderConfiguration() + /** Creates a new instance of DefaultConfiguration */ + public DefaultConfiguration() { } - public MavenEmbedderConfiguration addActiveProfile( String profile ) + public Configuration addActiveProfile( String profile ) { getActiveProfiles().add( profile ); + return this; } - public MavenEmbedderConfiguration addInactiveProfile( String profile ) + public Configuration addInactiveProfile( String profile ) { getInactiveProfiles().add( profile ); + return this; } - public MavenEmbedderConfiguration addActiveProfiles( List profiles ) + public Configuration addActiveProfiles( List profiles ) { getActiveProfiles().addAll( profiles ); + return this; } - public MavenEmbedderConfiguration addInactiveProfiles( List profiles ) + public Configuration addInactiveProfiles( List profiles ) { getInactiveProfiles().addAll( profiles ); + return this; } @@ -100,13 +108,13 @@ return inactives; } - public MavenEmbedderConfiguration setUserSettingsFile( File user ) + public Configuration setUserSettingsFile( File user ) { userSettings = user; return this; } - public MavenEmbedderConfiguration setGlobalSettingsFile( File global ) + public Configuration setGlobalSettingsFile( File global ) { globalSettings = global; return this; @@ -122,7 +130,7 @@ return globalSettings; } - public MavenEmbedderConfiguration setConfigurationCustomizer( ContainerCustomizer customizer ) + public Configuration setConfigurationCustomizer( ContainerCustomizer customizer ) { this.customizer = customizer; return this; @@ -133,7 +141,7 @@ return customizer; } - public MavenEmbedderConfiguration setSystemProperties( Properties properties ) + public Configuration setSystemProperties( Properties properties ) { systemProperties = properties; return this; @@ -154,7 +162,7 @@ return extensions; } - public MavenEmbedderConfiguration setMavenEmbedderLogger( MavenEmbedderLogger logger ) + public Configuration setMavenEmbedderLogger( MavenEmbedderLogger logger ) { this.logger = logger; return this; @@ -170,25 +178,32 @@ return classWorld; } - public MavenEmbedderConfiguration setClassWorld( ClassWorld classWorld ) + public Configuration setClassWorld( ClassWorld classWorld ) { this.classWorld = classWorld; return this; } - public MavenEmbedderConfiguration setClassLoader( ClassLoader loader ) + public Configuration setClassLoader( ClassLoader loader ) { this.classWorld = new ClassWorld( "plexus.core", loader ); + return this; } - public SettingsBuilderAdvice getSettingsBuilderAdvice() + // ---------------------------------------------------------------------------- + // Local Repository + // ---------------------------------------------------------------------------- + + public Configuration setLocalRepository( File localRepository ) { - return advice; + this.localRepository = localRepository; + + return this; } - public void setSettingsBuilderAdvice( SettingsBuilderAdvice advice ) + public File getLocalRepository() { - this.advice = advice; + return localRepository; } } Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfiguration.java ------------------------------------------------------------------------------ svn:keywords = "Author Date Id Revision" Added: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java?view=auto&rev=512540 ============================================================================== --- maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java (added) +++ maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java Tue Feb 27 17:11:43 2007 @@ -0,0 +1,68 @@ +package org.apache.maven.embedder.configuration; + +/** @author Jason van Zyl */ +public class DefaultConfigurationValidationResult + implements ConfigurationValidationResult +{ + private boolean userSettingsFilePresent = true; + + private boolean userSettingsFileParses = true; + + private boolean globalSettingsFilePresent = true; + + private boolean globalSettingsFileParses = true; + + public boolean isValid() + { + return userSettingsFilePresent && userSettingsFileParses && globalSettingsFilePresent && + globalSettingsFileParses; + } + + public boolean isUserSettingsFilePresent() + { + return userSettingsFilePresent; + } + + public void setUserSettingsFilePresent( boolean userSettingsFilePresent ) + { + this.userSettingsFilePresent = userSettingsFilePresent; + } + + public boolean isUserSettingsFileParses() + { + return userSettingsFileParses; + } + + public void setUserSettingsFileParses( boolean userSettingsFileParses ) + { + this.userSettingsFileParses = userSettingsFileParses; + } + + public boolean isGlobalSettingsFilePresent() + { + return globalSettingsFilePresent; + } + + public void setGlobalSettingsFilePresent( boolean globalSettingsFilePresent ) + { + this.globalSettingsFilePresent = globalSettingsFilePresent; + } + + public boolean isGlobalSettingsFileParses() + { + return globalSettingsFileParses; + } + + public void setGlobalSettingsFileParses( boolean globalSettingsFileParses ) + { + this.globalSettingsFileParses = globalSettingsFileParses; + } + + public void display() + { + System.out.println( "userSettingsFilePresent = " + userSettingsFilePresent ); + System.out.println( "globalSettingsFileParses = " + globalSettingsFileParses ); + System.out.println( "globalSettingsFilePresent = " + globalSettingsFilePresent ); + System.out.println( "globalSettingsFileParses = " + globalSettingsFileParses ); + } +} Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: maven/components/trunk/maven-embedder/src/main/java/org/apache/maven/embedder/configuration/DefaultConfigurationValidationResult.java ------------------------------------------------------------------------------ svn:keywords = Author Date Id Revision