MNG-2847 close up the reader properly when reading model.

git-svn-id: https://svn.apache.org/repos/asf/maven/components/trunk@511342 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Jason van Zyl 2007-02-24 20:39:48 +00:00
parent e93a9199d3
commit d4c28b894d
2 changed files with 41 additions and 23 deletions

View File

@ -27,7 +27,7 @@
<artifactId>maven-embedder</artifactId> <artifactId>maven-embedder</artifactId>
<name>Maven Embedder</name> <name>Maven Embedder</name>
<properties> <properties>
<bundleVersion>2.1.0.v20070209-2105</bundleVersion> <bundleVersion>2.1.0.v20070221-2149</bundleVersion>
</properties> </properties>
<build> <build>
<resources> <resources>

View File

@ -78,6 +78,7 @@
import java.io.FileWriter; import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
import java.io.Writer; import java.io.Writer;
import java.io.Reader;
import java.net.URL; import java.net.URL;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections; import java.util.Collections;
@ -209,12 +210,25 @@ public void setLogger( MavenEmbedderLogger logger )
this.logger = logger; this.logger = logger;
} }
public Model readModel( File model ) public Model readModel( File file )
throws XmlPullParserException, IOException throws XmlPullParserException, IOException
{ {
return modelReader.read( new FileReader( model ) ); Reader reader = new FileReader( file );
Model model;
try
{
model = modelReader.read( reader );
}
finally
{
reader.close();
}
return model;
} }
public void writeModel( Writer writer, public void writeModel( Writer writer,
Model model, Model model,
boolean namespaceDeclaration ) boolean namespaceDeclaration )
@ -239,18 +253,19 @@ public MavenProject readProject( File mavenProject )
{ {
return mavenProjectBuilder.build( mavenProject, localRepository, profileManager ); return mavenProjectBuilder.build( mavenProject, localRepository, profileManager );
} }
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
// Settings // Settings
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
public static Settings readSettings( File settingsFile ) public static Settings readSettings( File settingsFile )
throws SettingsConfigurationException, MavenEmbedderException, IOException throws SettingsConfigurationException, MavenEmbedderException, IOException
{ {
return readSettings( settingsFile, null ); return readSettings( settingsFile, null );
} }
public static Settings readSettings( File settingsFile, MavenEmbedderLogger logger ) public static Settings readSettings( File settingsFile,
MavenEmbedderLogger logger )
throws SettingsConfigurationException, MavenEmbedderException, IOException throws SettingsConfigurationException, MavenEmbedderException, IOException
{ {
DefaultPlexusContainer container = null; DefaultPlexusContainer container = null;
@ -259,7 +274,7 @@ public static Settings readSettings( File settingsFile, MavenEmbedderLogger logg
try try
{ {
reader = new FileReader( settingsFile ); reader = new FileReader( settingsFile );
try try
{ {
container = new DefaultPlexusContainer(); container = new DefaultPlexusContainer();
@ -271,9 +286,8 @@ public static Settings readSettings( File settingsFile, MavenEmbedderLogger logg
if ( logger != null ) if ( logger != null )
{ {
MavenEmbedderLoggerManager loggerManager = new MavenEmbedderLoggerManager( MavenEmbedderLoggerManager loggerManager =
new PlexusLoggerAdapter( new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
logger ) );
container.setLoggerManager( loggerManager ); container.setLoggerManager( loggerManager );
} }
@ -293,7 +307,7 @@ public static Settings readSettings( File settingsFile, MavenEmbedderLogger logg
finally finally
{ {
IOUtil.close( reader ); IOUtil.close( reader );
if ( container != null ) if ( container != null )
{ {
container.dispose(); container.dispose();
@ -301,13 +315,16 @@ public static Settings readSettings( File settingsFile, MavenEmbedderLogger logg
} }
} }
public static void writeSettings( File settingsFile, Settings settings ) public static void writeSettings( File settingsFile,
Settings settings )
throws IOException, MavenEmbedderException throws IOException, MavenEmbedderException
{ {
writeSettings( settingsFile, settings, null ); writeSettings( settingsFile, settings, null );
} }
public static void writeSettings( File settingsFile, Settings settings, MavenEmbedderLogger logger ) public static void writeSettings( File settingsFile,
Settings settings,
MavenEmbedderLogger logger )
throws IOException, MavenEmbedderException throws IOException, MavenEmbedderException
{ {
DefaultPlexusContainer container = null; DefaultPlexusContainer container = null;
@ -316,7 +333,7 @@ public static void writeSettings( File settingsFile, Settings settings, MavenEmb
try try
{ {
writer = new FileWriter( settingsFile ); writer = new FileWriter( settingsFile );
try try
{ {
container = new DefaultPlexusContainer(); container = new DefaultPlexusContainer();
@ -328,7 +345,8 @@ public static void writeSettings( File settingsFile, Settings settings, MavenEmb
if ( logger != null ) if ( logger != null )
{ {
MavenEmbedderLoggerManager loggerManager = new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) ); MavenEmbedderLoggerManager loggerManager =
new MavenEmbedderLoggerManager( new PlexusLoggerAdapter( logger ) );
container.setLoggerManager( loggerManager ); container.setLoggerManager( loggerManager );
} }
@ -347,8 +365,8 @@ public static void writeSettings( File settingsFile, Settings settings, MavenEmb
} }
finally finally
{ {
IOUtil.close( writer ); IOUtil.close( writer );
if ( container != null ) if ( container != null )
{ {
container.dispose(); container.dispose();
@ -562,7 +580,7 @@ public List getLifecyclePhases()
public static final String DEFAULT_LAYOUT_ID = "default"; public static final String DEFAULT_LAYOUT_ID = "default";
public static final File DEFAULT_GLOBAL_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_GLOBAL_SETTINGS_FILE; public static final File DEFAULT_GLOBAL_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_GLOBAL_SETTINGS_FILE;
public static final File DEFAULT_USER_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_USER_SETTINGS_FILE; public static final File DEFAULT_USER_SETTINGS_FILE = MavenSettingsBuilder.DEFAULT_USER_SETTINGS_FILE;
public ArtifactRepository createLocalRepository( File localRepository ) public ArtifactRepository createLocalRepository( File localRepository )
@ -687,7 +705,7 @@ private void start( MavenEmbedderConfiguration req )
profileManager.explicitlyDeactivate( req.getInactiveProfiles() ); profileManager.explicitlyDeactivate( req.getInactiveProfiles() );
mavenProjectBuilder = (MavenProjectBuilder) container.lookup( MavenProjectBuilder.ROLE ); mavenProjectBuilder = (MavenProjectBuilder) container.lookup( MavenProjectBuilder.ROLE );
buildContextManager = (BuildContextManager) container.lookup( BuildContextManager.ROLE ); buildContextManager = (BuildContextManager) container.lookup( BuildContextManager.ROLE );
// ---------------------------------------------------------------------- // ----------------------------------------------------------------------
@ -775,9 +793,9 @@ public void stop()
try try
{ {
buildContextManager.clearBuildContext(); buildContextManager.clearBuildContext();
container.release( buildContextManager ); container.release( buildContextManager );
container.release( mavenProjectBuilder ); container.release( mavenProjectBuilder );
container.release( artifactRepositoryFactory ); container.release( artifactRepositoryFactory );