1 package org.apache.continuum.release.distributed;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.util.ArrayList;
23 import java.util.Arrays;
24 import java.util.List;
25 import java.util.Map;
26
27 public class DistributedReleaseUtil
28 {
29 public static final String KEY_SCM_TAG = "scm-tag";
30
31 public static final String KEY_SCM_TAGBASE = "scm-tagbase";
32
33 public static final String KEY_SCM_USERNAME = "scm-username";
34
35 public static final String KEY_SCM_PASSWORD = "scm-password";
36
37 public static final String KEY_ARGUMENTS = "arguments";
38
39 public static final String KEY_PREPARE_GOALS = "preparation-goals";
40
41 public static final String KEY_SCM_COMMENT_PREFIX = "scm-comment-prefix";
42
43 public static final String KEY_AUTO_VERSION_SUBMODULES = "auto-version-submodules";
44
45 public static final String KEY_ADD_SCHEMA = "add-schema";
46
47 public static final String KEY_PROJECT = "project";
48
49 public static final String KEY_PROFILE = "profile";
50
51 public static final String KEY_PROPERTIES = "properties";
52
53 public static final String KEY_RELEASE_VERSION = "releaseVersion";
54
55 public static final String KEY_DEVELOPMENT_VERSION = "developmentVersion";
56
57 public static final String KEY_PROJECT_ID = "project-id";
58
59 public static final String KEY_GROUP_ID = "group-id";
60
61 public static final String KEY_ARTIFACT_ID = "artifact-id";
62
63 public static final String KEY_SCM_URL = "scm-url";
64
65 public static final String KEY_LOCAL_REPOSITORY = "local-repository";
66
67 public static final String KEY_USE_EDIT_MODE = "use-edit-mode";
68
69 public static final String KEY_ENVIRONMENTS = "environments";
70
71 public static final String KEY_START_TIME = "start-time";
72
73 public static final String KEY_END_TIME = "end-time";
74
75 public static final String KEY_RELEASE_RESULT_CODE = "release-result-code";
76
77 public static final String KEY_RELEASE_OUTPUT = "release-output";
78
79 public static final String KEY_RELEASE_STATE = "state";
80
81 public static final String KEY_RELEASE_PHASES = "release-phases";
82
83 public static final String KEY_COMPLETED_RELEASE_PHASES = "completed-release-phases";
84
85 public static final String KEY_RELEASE_IN_PROGRESS = "release-in-progress";
86
87 public static final String KEY_RELEASE_ERROR = "release-error";
88
89 public static final String KEY_USE_RELEASE_PROFILE = "use-release-profile";
90
91 public static final String KEY_GOALS = "goals";
92
93 public static final String KEY_RELEASE_ID = "release-id";
94
95 public static final String KEY_LOCAL_REPOSITORY_NAME = "repo-name";
96
97 public static final String KEY_LOCAL_REPOSITORY_LAYOUT = "repo-layout";
98
99 public static final String KEY_RELEASE_GOAL = "release-goal";
100
101 public static final String KEY_BUILD_AGENT_URL = "build-agent-url";
102
103 public static String getScmTag( Map<String, Object> context, String defaultValue )
104 {
105 return getString( context, KEY_SCM_TAG, defaultValue );
106 }
107
108 public static String getScmTagBase( Map<String, Object> context, String defaultValue )
109 {
110 return getString( context, KEY_SCM_TAGBASE, defaultValue );
111 }
112
113 public static String getArguments( Map<String, Object> context, String defaultValue )
114 {
115 return getString( context, KEY_ARGUMENTS, defaultValue );
116 }
117
118 public static String getPrepareGoals( Map<String, Object> context, String defaultValue )
119 {
120 return getString( context, KEY_PREPARE_GOALS, defaultValue );
121 }
122
123 public static String getScmCommentPrefix( Map<String, Object> context, String defaultValue )
124 {
125 return getString( context, KEY_SCM_COMMENT_PREFIX, defaultValue );
126 }
127
128 public static Boolean getAutoVersionSubmodules( Map<String, Object> context, boolean defaultValue )
129 {
130 return getBoolean( context, KEY_AUTO_VERSION_SUBMODULES, defaultValue );
131 }
132
133 public static Boolean getAddSchema( Map<String, Object> context, boolean defaultValue )
134 {
135 return getBoolean( context, KEY_ADD_SCHEMA, defaultValue );
136 }
137
138 public static Long getStartTime( Map<String, Object> context )
139 {
140 return new Long( getString( context, KEY_START_TIME ) );
141 }
142
143 public static Long getEndTime( Map<String, Object> context )
144 {
145 return new Long( getString( context, KEY_END_TIME ) );
146 }
147
148 public static int getReleaseResultCode( Map<String, Object> context )
149 {
150 return getInteger( context, KEY_RELEASE_RESULT_CODE );
151 }
152
153 public static String getReleaseOutput( Map<String, Object> context )
154 {
155 return getString( context, KEY_RELEASE_OUTPUT );
156 }
157
158 public static int getReleaseState( Map<String, Object> context )
159 {
160 return getInteger( context, KEY_RELEASE_STATE );
161 }
162
163 public static List getReleasePhases( Map<String, Object> context )
164 {
165 return getList( context, KEY_RELEASE_PHASES, new ArrayList() );
166 }
167
168 public static List getCompletedReleasePhases( Map<String, Object> context )
169 {
170 return getList( context, KEY_COMPLETED_RELEASE_PHASES, new ArrayList() );
171 }
172
173 public static String getReleaseInProgress( Map<String, Object> context )
174 {
175 return getString( context, KEY_RELEASE_IN_PROGRESS, "" );
176 }
177
178 public static String getReleaseError( Map<String, Object> context )
179 {
180 return getString( context, KEY_RELEASE_ERROR, null );
181 }
182
183 public static boolean getUseReleaseProfile( Map<String, Object> context, boolean defaultValue )
184 {
185 return getBoolean( context, KEY_USE_RELEASE_PROFILE, defaultValue );
186 }
187
188 public static String getGoals( Map<String, Object> context, String defaultValue )
189 {
190 return getString( context, KEY_GOALS, defaultValue );
191 }
192
193 public static String getReleaseId( Map<String, Object> context )
194 {
195 return getString( context, KEY_RELEASE_ID );
196 }
197
198 public static String getReleaseGoal( Map<String, Object> context )
199 {
200 return getString( context, KEY_RELEASE_GOAL );
201 }
202
203 public static String getBuildAgentUrl( Map<String, Object> context )
204 {
205 return getString( context, KEY_BUILD_AGENT_URL );
206 }
207
208 public static int getProjectId( Map<String, Object> context )
209 {
210 return getInteger( context, KEY_PROJECT_ID );
211 }
212
213
214
215
216
217 public static Integer getInteger( Map<String, Object> context, String key )
218 {
219 return (Integer) getObject( context, key );
220 }
221
222 public static Integer getInteger( Map<String, Object> context, String key, Object defaultValue )
223 {
224 return (Integer) getObject( context, key, defaultValue );
225 }
226
227 public static String getString( Map<String, Object> context, String key )
228 {
229 return (String) getObject( context, key );
230 }
231
232 public static String getString( Map<String, Object> context, String key, String defaultValue )
233 {
234 return (String) getObject( context, key, defaultValue );
235 }
236
237 public static boolean getBoolean( Map<String, Object> context, String key )
238 {
239 return (Boolean) getObject( context, key );
240 }
241
242 public static boolean getBoolean( Map<String, Object> context, String key, boolean defaultValue )
243 {
244 return (Boolean) getObject( context, key, defaultValue );
245 }
246
247 public static List getList( Map<String, Object> context, String key, Object defaultValue )
248 {
249 Object obj = getObject( context, key, defaultValue );
250
251 if ( obj == null )
252 {
253 return null;
254 }
255 else
256 {
257 List<Object> list = new ArrayList<Object>();
258
259 if ( obj instanceof Object[] )
260 {
261 Object[] objA = (Object[]) obj;
262
263 list.addAll( Arrays.asList( objA ) );
264 }
265 else
266 {
267 list = (List<Object>) obj;
268 }
269
270 return list;
271 }
272 }
273
274 protected static Object getObject( Map<String, Object> context, String key )
275 {
276 if ( !context.containsKey( key ) )
277 {
278 throw new RuntimeException( "Missing key '" + key + "'." );
279 }
280
281 Object value = context.get( key );
282
283 if ( value == null )
284 {
285 throw new RuntimeException( "Missing value for key '" + key + "'." );
286 }
287
288 return value;
289 }
290
291 protected static Object getObject( Map<String, Object> context, String key, Object defaultValue )
292 {
293 Object value = context.get( key );
294
295 if ( value == null )
296 {
297 return defaultValue;
298 }
299
300 return value;
301 }
302 }