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