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 public class SvnUtil {
33 protected static final String SVN_SETTINGS_FILENAME = "svn-settings.xml";
34
35 public static final File DEFAULT_SETTINGS_DIRECTORY = new File(System.getProperty("user.home"), ".scm");
36
37 private static File settingsDirectory = DEFAULT_SETTINGS_DIRECTORY;
38
39 private static Settings settings;
40
41 private SvnUtil() {}
42
43 public static Settings getSettings() {
44 if (settings == null) {
45 settings = readSettings();
46 }
47 return settings;
48 }
49
50 public static Settings readSettings() {
51 File settingsFile = getSettingsFile();
52
53 if (settingsFile.exists()) {
54 SvnXpp3Reader reader = new SvnXpp3Reader();
55 try {
56 return reader.read(ReaderFactory.newXmlReader(settingsFile));
57 } catch (IOException e) {
58
59 } catch (XmlPullParserException e) {
60 String message = settingsFile.getAbsolutePath() + " isn't well formed. SKIPPED." + e.getMessage();
61
62 System.err.println(message);
63 }
64 }
65
66 return new Settings();
67 }
68
69 public static void setSettingsDirectory(File directory) {
70 settingsDirectory = directory;
71 settings = readSettings();
72 }
73
74 public static File getSettingsFile() {
75 return new File(settingsDirectory, SVN_SETTINGS_FILENAME);
76 }
77 }