1 package org.apache.maven.scm.provider.synergy.repository;
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.provider.ScmProviderRepository;
23 import org.apache.maven.scm.repository.ScmRepositoryException;
24
25 import java.net.MalformedURLException;
26 import java.net.URISyntaxException;
27 import java.net.UnknownHostException;
28 import java.util.StringTokenizer;
29
30
31
32
33
34 public class SynergyScmProviderRepository
35 extends ScmProviderRepository
36 {
37
38 private String projectSpec;
39
40 private String projectName;
41
42 private String projectVersion;
43
44 private String projectRelease;
45
46 private String projectPurpose;
47
48 private String delimiter;
49
50 private String instance;
51
52
53
54
55
56 public SynergyScmProviderRepository( String url )
57 throws ScmRepositoryException
58 {
59 try
60 {
61 parseUrl( url );
62 }
63 catch ( MalformedURLException e )
64 {
65 throw new ScmRepositoryException( "Illegal URL: " + url + "(" + e.getMessage() + ")" );
66 }
67 catch ( URISyntaxException e )
68 {
69 throw new ScmRepositoryException( "Illegal URL: " + url + "(" + e.getMessage() + ")" );
70 }
71 catch ( UnknownHostException e )
72 {
73 throw new ScmRepositoryException( "Illegal URL: " + url + "(" + e.getMessage() + ")" );
74 }
75 }
76
77 private void parseUrl( String url )
78 throws MalformedURLException, URISyntaxException, UnknownHostException
79 {
80 if ( url.indexOf( '|' ) != -1 )
81 {
82 StringTokenizer tokenizer = new StringTokenizer( url, "|" );
83 fillInProperties( tokenizer );
84 }
85 else
86 {
87 StringTokenizer tokenizer = new StringTokenizer( url, ":" );
88 fillInProperties( tokenizer );
89 }
90 }
91
92 private void fillInProperties( StringTokenizer tokenizer )
93 throws UnknownHostException, URISyntaxException, MalformedURLException
94 {
95 if ( tokenizer.countTokens() == 5 )
96 {
97 projectName = tokenizer.nextToken();
98 delimiter = tokenizer.nextToken();
99 projectVersion = tokenizer.nextToken();
100 projectRelease = tokenizer.nextToken();
101 projectPurpose = tokenizer.nextToken();
102 instance = "1";
103
104 projectSpec = projectName + delimiter + projectVersion + ":project:" + instance;
105
106 }
107 else if ( tokenizer.countTokens() == 6 )
108 {
109 projectName = tokenizer.nextToken();
110 delimiter = tokenizer.nextToken();
111 projectVersion = tokenizer.nextToken();
112 projectRelease = tokenizer.nextToken();
113 projectPurpose = tokenizer.nextToken();
114 instance = tokenizer.nextToken();
115
116 projectSpec = projectName + delimiter + projectVersion + ":project:" + instance;
117
118 }
119 else
120 {
121 throw new MalformedURLException();
122 }
123 }
124
125 public String getProjectSpec()
126 {
127 return projectSpec;
128 }
129
130 public String getProjectName()
131 {
132 return projectName;
133 }
134
135 public String getProjectVersion()
136 {
137 return projectVersion;
138 }
139
140
141
142
143 public String getProjectPurpose()
144 {
145 return projectPurpose;
146 }
147
148
149
150
151 public String getProjectRelease()
152 {
153 return projectRelease;
154 }
155
156
157
158
159 public String getInstance()
160 {
161 return instance;
162 }
163
164
165 }