1 package org.apache.maven.toolchain;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23 import java.io.Reader;
24
25 import org.apache.maven.toolchain.model.PersistedToolchains;
26 import org.apache.maven.toolchain.model.io.xpp3.MavenToolchainsXpp3Reader;
27 import org.codehaus.plexus.component.annotations.Component;
28 import org.codehaus.plexus.component.annotations.Requirement;
29 import org.codehaus.plexus.logging.Logger;
30 import org.codehaus.plexus.util.IOUtil;
31 import org.codehaus.plexus.util.ReaderFactory;
32
33
34
35
36 @Component( role = ToolchainsBuilder.class, hint = "default" )
37 public class DefaultToolchainsBuilder
38 implements ToolchainsBuilder
39 {
40
41 @Requirement
42 private Logger logger;
43
44 public PersistedToolchains build( File userToolchainsFile )
45 throws MisconfiguredToolchainException
46 {
47 PersistedToolchains toolchains = null;
48
49 if ( userToolchainsFile != null && userToolchainsFile.isFile() )
50 {
51 Reader in = null;
52 try
53 {
54 in = ReaderFactory.newXmlReader( userToolchainsFile );
55 toolchains = new MavenToolchainsXpp3Reader().read( in );
56 }
57 catch ( Exception e )
58 {
59 throw new MisconfiguredToolchainException( "Cannot read toolchains file at "
60 + userToolchainsFile.getAbsolutePath(), e );
61 }
62 finally
63 {
64 IOUtil.close( in );
65 }
66 }
67 else if ( userToolchainsFile != null )
68 {
69 logger.debug( "Toolchains configuration was not found at " + userToolchainsFile );
70 }
71
72 return toolchains;
73 }
74
75 }