1 package org.apache.maven.scm.provider.starteam.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.scm.providers.starteam.settings.Settings;
23 import org.apache.maven.scm.providers.starteam.settings.io.xpp3.StarteamXpp3Reader;
24 import org.codehaus.plexus.util.ReaderFactory;
25 import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
26
27 import java.io.File;
28 import java.io.FileNotFoundException;
29 import java.io.IOException;
30
31
32
33
34
35 public final class StarteamUtil
36 {
37
38 protected static final String STARTEAM_SETTINGS_FILENAME = "starteam-settings.xml";
39
40 public static final File DEFAULT_SETTINGS_DIRECTORY = new File( System.getProperty( "user.home" ), ".scm" );
41
42 private static File settingsDirectory = DEFAULT_SETTINGS_DIRECTORY;
43
44 private static Settings settings;
45
46 private StarteamUtil()
47 {
48 }
49
50 public static Settings getSettings()
51 {
52 if ( settings == null )
53 {
54 settings = readSettings();
55 }
56 return settings;
57 }
58
59 public static Settings readSettings()
60 {
61 File settingsFile = getSettingsFile();
62
63 if ( settingsFile.exists() )
64 {
65 StarteamXpp3Reader reader = new StarteamXpp3Reader();
66 try
67 {
68 return reader.read( ReaderFactory.newXmlReader( settingsFile ) );
69 }
70 catch ( FileNotFoundException e )
71 {
72
73 }
74 catch ( IOException e )
75 {
76
77 }
78 catch ( XmlPullParserException e )
79 {
80 String message = settingsFile.getAbsolutePath() + " isn't well formed. SKIPPED." + e.getMessage();
81
82 System.err.println( message );
83 }
84 }
85
86 return new Settings();
87 }
88
89 public static File getSettingsFile()
90 {
91 return new File( settingsDirectory, STARTEAM_SETTINGS_FILENAME );
92 }
93
94
95 public static void setSettingsDirectory( File directory )
96 {
97 settingsDirectory = directory;
98 }
99 }