Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 317384 | Differences between
and this patch

Collapse All | Expand All

(-)src/org/eclipse/mylyn/builds/core/IBuildServer.java (+2 lines)
Lines 34-37 Link Here
34
34
35
	public IBuildPlanWorkingCopy createBuildPlan();
35
	public IBuildPlanWorkingCopy createBuildPlan();
36
36
37
	IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException;
38
37
}
39
}
(-)src/org/eclipse/mylyn/builds/core/spi/BuildServerBehaviour.java (+3 lines)
Lines 15-20 Link Here
15
15
16
import org.eclipse.core.runtime.CoreException;
16
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.mylyn.builds.core.IBuildElement;
18
import org.eclipse.mylyn.builds.core.IBuildPlan;
19
import org.eclipse.mylyn.builds.core.IBuildPlan;
19
import org.eclipse.mylyn.builds.core.IBuildServer;
20
import org.eclipse.mylyn.builds.core.IBuildServer;
20
import org.eclipse.mylyn.builds.core.IOperationMonitor;
21
import org.eclipse.mylyn.builds.core.IOperationMonitor;
Lines 38-41 Link Here
38
39
39
	public abstract IStatus validate(IOperationMonitor monitor) throws CoreException;
40
	public abstract IStatus validate(IOperationMonitor monitor) throws CoreException;
40
41
42
	public abstract IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException;
43
41
}
44
}
(-)src/org/eclipse/mylyn/internal/builds/core/BuildServer.java (-60 / +93 lines)
Lines 22-27 Link Here
22
import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
22
import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
23
import org.eclipse.emf.ecore.util.EcoreUtil;
23
import org.eclipse.emf.ecore.util.EcoreUtil;
24
import org.eclipse.emf.ecore.util.InternalEList;
24
import org.eclipse.emf.ecore.util.InternalEList;
25
import org.eclipse.mylyn.builds.core.IBuildElement;
25
import org.eclipse.mylyn.builds.core.IBuildPlan;
26
import org.eclipse.mylyn.builds.core.IBuildPlan;
26
import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy;
27
import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy;
27
import org.eclipse.mylyn.builds.core.IBuildServer;
28
import org.eclipse.mylyn.builds.core.IBuildServer;
Lines 32-45 Link Here
32
33
33
/**
34
/**
34
 * <!-- begin-user-doc --> A representation of the model object '<em><b>Server</b></em>'. <!-- end-user-doc -->
35
 * <!-- begin-user-doc --> A representation of the model object '<em><b>Server</b></em>'. <!-- end-user-doc -->
35
 *
36
 * <p>
36
 * <p>
37
 * The following features are supported:
37
 * The following features are supported:
38
 * <ul>
38
 * <ul>
39
 *   <li>{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getServer <em>Server</em>}</li>
39
 * <li>{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getServer <em>Server</em>}</li>
40
 * </ul>
40
 * </ul>
41
 * </p>
41
 * </p>
42
 *
42
 * 
43
 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer()
43
 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer()
44
 * @model kind="class" superTypes="org.eclipse.mylyn.internal.builds.core.IBuildServer"
44
 * @model kind="class" superTypes="org.eclipse.mylyn.internal.builds.core.IBuildServer"
45
 * @generated
45
 * @generated
Lines 56-63 Link Here
56
	protected static final String URL_EDEFAULT = null;
56
	protected static final String URL_EDEFAULT = null;
57
57
58
	/**
58
	/**
59
	 * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute.
59
	 * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
60
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
60
	 * 
61
	 * @see #getUrl()
61
	 * @see #getUrl()
62
	 * @generated
62
	 * @generated
63
	 * @ordered
63
	 * @ordered
Lines 85-93 Link Here
85
	protected String name = NAME_EDEFAULT;
85
	protected String name = NAME_EDEFAULT;
86
86
87
	/**
87
	/**
88
	 * The cached value of the '{@link #getPlans() <em>Plans</em>}' containment reference list.
88
	 * The cached value of the '{@link #getPlans() <em>Plans</em>}' containment reference list. <!-- begin-user-doc -->
89
	 * <!-- begin-user-doc -->
90
	 * <!-- end-user-doc -->
89
	 * <!-- end-user-doc -->
90
	 * 
91
	 * @see #getPlans()
91
	 * @see #getPlans()
92
	 * @generated
92
	 * @generated
93
	 * @ordered
93
	 * @ordered
Lines 95-103 Link Here
95
	protected EList<IBuildPlan> plans;
95
	protected EList<IBuildPlan> plans;
96
96
97
	/**
97
	/**
98
	 * The default value of the '{@link #getRepository() <em>Repository</em>}' attribute.
98
	 * The default value of the '{@link #getRepository() <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!--
99
	 * <!-- begin-user-doc --> <!--
100
	 * end-user-doc -->
99
	 * end-user-doc -->
100
	 * 
101
	 * @see #getRepository()
101
	 * @see #getRepository()
102
	 * @generated
102
	 * @generated
103
	 * @ordered
103
	 * @ordered
Lines 105-113 Link Here
105
	protected static final TaskRepository REPOSITORY_EDEFAULT = null;
105
	protected static final TaskRepository REPOSITORY_EDEFAULT = null;
106
106
107
	/**
107
	/**
108
	 * The cached value of the '{@link #getRepository() <em>Repository</em>}' attribute.
108
	 * The cached value of the '{@link #getRepository() <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!--
109
	 * <!-- begin-user-doc --> <!--
110
	 * end-user-doc -->
109
	 * end-user-doc -->
110
	 * 
111
	 * @see #getRepository()
111
	 * @see #getRepository()
112
	 * @generated
112
	 * @generated
113
	 * @ordered
113
	 * @ordered
Lines 115-123 Link Here
115
	protected TaskRepository repository = REPOSITORY_EDEFAULT;
115
	protected TaskRepository repository = REPOSITORY_EDEFAULT;
116
116
117
	/**
117
	/**
118
	 * The default value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute.
118
	 * The default value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. <!-- begin-user-doc -->
119
	 * <!-- begin-user-doc -->
120
	 * <!-- end-user-doc -->
119
	 * <!-- end-user-doc -->
120
	 * 
121
	 * @see #getConnectorKind()
121
	 * @see #getConnectorKind()
122
	 * @generated
122
	 * @generated
123
	 * @ordered
123
	 * @ordered
Lines 125-133 Link Here
125
	protected static final String CONNECTOR_KIND_EDEFAULT = null;
125
	protected static final String CONNECTOR_KIND_EDEFAULT = null;
126
126
127
	/**
127
	/**
128
	 * The cached value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute.
128
	 * The cached value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. <!-- begin-user-doc -->
129
	 * <!-- begin-user-doc -->
130
	 * <!-- end-user-doc -->
129
	 * <!-- end-user-doc -->
130
	 * 
131
	 * @see #getConnectorKind()
131
	 * @see #getConnectorKind()
132
	 * @generated
132
	 * @generated
133
	 * @ordered
133
	 * @ordered
Lines 135-143 Link Here
135
	protected String connectorKind = CONNECTOR_KIND_EDEFAULT;
135
	protected String connectorKind = CONNECTOR_KIND_EDEFAULT;
136
136
137
	/**
137
	/**
138
	 * The default value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute.
138
	 * The default value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. <!-- begin-user-doc -->
139
	 * <!-- begin-user-doc -->
140
	 * <!-- end-user-doc -->
139
	 * <!-- end-user-doc -->
140
	 * 
141
	 * @see #getRepositoryUrl()
141
	 * @see #getRepositoryUrl()
142
	 * @generated
142
	 * @generated
143
	 * @ordered
143
	 * @ordered
Lines 145-153 Link Here
145
	protected static final String REPOSITORY_URL_EDEFAULT = null;
145
	protected static final String REPOSITORY_URL_EDEFAULT = null;
146
146
147
	/**
147
	/**
148
	 * The cached value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute.
148
	 * The cached value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. <!-- begin-user-doc -->
149
	 * <!-- begin-user-doc -->
150
	 * <!-- end-user-doc -->
149
	 * <!-- end-user-doc -->
150
	 * 
151
	 * @see #getRepositoryUrl()
151
	 * @see #getRepositoryUrl()
152
	 * @generated
152
	 * @generated
153
	 * @ordered
153
	 * @ordered
Lines 155-163 Link Here
155
	protected String repositoryUrl = REPOSITORY_URL_EDEFAULT;
155
	protected String repositoryUrl = REPOSITORY_URL_EDEFAULT;
156
156
157
	/**
157
	/**
158
	 * The cached value of the '{@link #getServer() <em>Server</em>}' reference.
158
	 * The cached value of the '{@link #getServer() <em>Server</em>}' reference. <!-- begin-user-doc --> <!--
159
	 * <!-- begin-user-doc --> <!--
160
	 * end-user-doc -->
159
	 * end-user-doc -->
160
	 * 
161
	 * @see #getServer()
161
	 * @see #getServer()
162
	 * @generated
162
	 * @generated
163
	 * @ordered
163
	 * @ordered
Lines 166-171 Link Here
166
166
167
	/**
167
	/**
168
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
168
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
169
	 * 
169
	 * @generated
170
	 * @generated
170
	 */
171
	 */
171
	protected BuildServer() {
172
	protected BuildServer() {
Lines 174-179 Link Here
174
175
175
	/**
176
	/**
176
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
177
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
178
	 * 
177
	 * @generated
179
	 * @generated
178
	 */
180
	 */
179
	@Override
181
	@Override
Lines 182-193 Link Here
182
	}
184
	}
183
185
184
	/**
186
	/**
185
	 * Returns the value of the '<em><b>Url</b></em>' attribute.
187
	 * Returns the value of the '<em><b>Url</b></em>' attribute. <!-- begin-user-doc -->
186
	 * <!-- begin-user-doc -->
187
	 * <p>
188
	 * <p>
188
	 * If the meaning of the '<em>Url</em>' attribute isn't clear, there really should be more of a description here...
189
	 * If the meaning of the '<em>Url</em>' attribute isn't clear, there really should be more of a description here...
189
	 * </p>
190
	 * </p>
190
	 * <!-- end-user-doc -->
191
	 * <!-- end-user-doc -->
192
	 * 
191
	 * @return the value of the '<em>Url</em>' attribute.
193
	 * @return the value of the '<em>Url</em>' attribute.
192
	 * @see #setUrl(String)
194
	 * @see #setUrl(String)
193
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Url()
195
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Url()
Lines 201-224 Link Here
201
	/**
203
	/**
202
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getUrl <em>Url</em>}' attribute.
204
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getUrl <em>Url</em>}' attribute.
203
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
205
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
204
	 * @param value the new value of the '<em>Url</em>' attribute.
206
	 * 
207
	 * @param value
208
	 *            the new value of the '<em>Url</em>' attribute.
205
	 * @see #getUrl()
209
	 * @see #getUrl()
206
	 * @generated
210
	 * @generated
207
	 */
211
	 */
208
	public void setUrl(String newUrl) {
212
	public void setUrl(String newUrl) {
209
		String oldUrl = url;
213
		String oldUrl = url;
210
		url = newUrl;
214
		url = newUrl;
211
		if (eNotificationRequired())
215
		if (eNotificationRequired()) {
212
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__URL, oldUrl, url));
216
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__URL, oldUrl, url));
217
		}
213
	}
218
	}
214
219
215
	/**
220
	/**
216
	 * Returns the value of the '<em><b>Name</b></em>' attribute.
221
	 * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc -->
217
	 * <!-- begin-user-doc -->
218
	 * <p>
222
	 * <p>
219
	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
223
	 * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here...
220
	 * </p>
224
	 * </p>
221
	 * <!-- end-user-doc -->
225
	 * <!-- end-user-doc -->
226
	 * 
222
	 * @return the value of the '<em>Name</em>' attribute.
227
	 * @return the value of the '<em>Name</em>' attribute.
223
	 * @see #setName(String)
228
	 * @see #setName(String)
224
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Name()
229
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Name()
Lines 230-262 Link Here
230
	}
235
	}
231
236
232
	/**
237
	/**
233
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getName <em>Name</em>}' attribute.
238
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getName <em>Name</em>}'
234
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
239
	 * attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
235
	 * @param value the new value of the '<em>Name</em>' attribute.
240
	 * 
241
	 * @param value
242
	 *            the new value of the '<em>Name</em>' attribute.
236
	 * @see #getName()
243
	 * @see #getName()
237
	 * @generated
244
	 * @generated
238
	 */
245
	 */
239
	public void setName(String newName) {
246
	public void setName(String newName) {
240
		String oldName = name;
247
		String oldName = name;
241
		name = newName;
248
		name = newName;
242
		if (eNotificationRequired())
249
		if (eNotificationRequired()) {
243
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__NAME, oldName, name));
250
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__NAME, oldName, name));
251
		}
244
	}
252
	}
245
253
246
	/**
254
	/**
247
	 * Returns the value of the '<em><b>Plans</b></em>' containment reference list.
255
	 * Returns the value of the '<em><b>Plans</b></em>' containment reference list. The list contents are of type
248
	 * The list contents are of type {@link org.eclipse.mylyn.builds.core.IBuildPlan}.
256
	 * {@link org.eclipse.mylyn.builds.core.IBuildPlan}. It is bidirectional and its opposite is '
249
	 * It is bidirectional and its opposite is '{@link org.eclipse.mylyn.builds.core.IBuildPlan#getServer <em>Server</em>}'.
257
	 * {@link org.eclipse.mylyn.builds.core.IBuildPlan#getServer <em>Server</em>}'. <!-- begin-user-doc -->
250
	 * <!-- begin-user-doc -->
251
	 * <p>
258
	 * <p>
252
	 * If the meaning of the '<em>Plans</em>' containment reference list isn't clear, there really should be more of a
259
	 * If the meaning of the '<em>Plans</em>' containment reference list isn't clear, there really should be more of a
253
	 * description here...
260
	 * description here...
254
	 * </p>
261
	 * </p>
255
	 * <!-- end-user-doc -->
262
	 * <!-- end-user-doc -->
263
	 * 
256
	 * @return the value of the '<em>Plans</em>' containment reference list.
264
	 * @return the value of the '<em>Plans</em>' containment reference list.
257
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Plans()
265
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Plans()
258
	 * @see org.eclipse.mylyn.builds.core.IBuildPlan#getServer
266
	 * @see org.eclipse.mylyn.builds.core.IBuildPlan#getServer
259
	 * @model type="org.eclipse.mylyn.internal.builds.core.IBuildPlan" opposite="server" containment="true" ordered="false"
267
	 * @model type="org.eclipse.mylyn.internal.builds.core.IBuildPlan" opposite="server" containment="true"
268
	 *        ordered="false"
260
	 * @generated
269
	 * @generated
261
	 */
270
	 */
262
	public EList<IBuildPlan> getPlans() {
271
	public EList<IBuildPlan> getPlans() {
Lines 268-280 Link Here
268
	}
277
	}
269
278
270
	/**
279
	/**
271
	 * Returns the value of the '<em><b>Repository</b></em>' attribute.
280
	 * Returns the value of the '<em><b>Repository</b></em>' attribute. <!-- begin-user-doc -->
272
	 * <!-- begin-user-doc -->
273
	 * <p>
281
	 * <p>
274
	 * If the meaning of the '<em>Repository</em>' attribute isn't clear, there really should be more of a description
282
	 * If the meaning of the '<em>Repository</em>' attribute isn't clear, there really should be more of a description
275
	 * here...
283
	 * here...
276
	 * </p>
284
	 * </p>
277
	 * <!-- end-user-doc -->
285
	 * <!-- end-user-doc -->
286
	 * 
278
	 * @return the value of the '<em>Repository</em>' attribute.
287
	 * @return the value of the '<em>Repository</em>' attribute.
279
	 * @see #setRepository(TaskRepository)
288
	 * @see #setRepository(TaskRepository)
280
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Repository()
289
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Repository()
Lines 286-313 Link Here
286
	}
295
	}
287
296
288
	/**
297
	/**
289
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepository <em>Repository</em>}' attribute.
298
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepository
290
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
299
	 * <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
291
	 * @param value the new value of the '<em>Repository</em>' attribute.
300
	 * 
301
	 * @param value
302
	 *            the new value of the '<em>Repository</em>' attribute.
292
	 * @see #getRepository()
303
	 * @see #getRepository()
293
	 * @generated
304
	 * @generated
294
	 */
305
	 */
295
	public void setRepository(TaskRepository newRepository) {
306
	public void setRepository(TaskRepository newRepository) {
296
		TaskRepository oldRepository = repository;
307
		TaskRepository oldRepository = repository;
297
		repository = newRepository;
308
		repository = newRepository;
298
		if (eNotificationRequired())
309
		if (eNotificationRequired()) {
299
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY, oldRepository,
310
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY, oldRepository,
300
					repository));
311
					repository));
312
		}
301
	}
313
	}
302
314
303
	/**
315
	/**
304
	 * Returns the value of the '<em><b>Connector Kind</b></em>' attribute.
316
	 * Returns the value of the '<em><b>Connector Kind</b></em>' attribute. <!-- begin-user-doc -->
305
	 * <!-- begin-user-doc -->
306
	 * <p>
317
	 * <p>
307
	 * If the meaning of the '<em>Connector Kind</em>' attribute isn't clear, there really should be more of a
318
	 * If the meaning of the '<em>Connector Kind</em>' attribute isn't clear, there really should be more of a
308
	 * description here...
319
	 * description here...
309
	 * </p>
320
	 * </p>
310
	 * <!-- end-user-doc -->
321
	 * <!-- end-user-doc -->
322
	 * 
311
	 * @return the value of the '<em>Connector Kind</em>' attribute.
323
	 * @return the value of the '<em>Connector Kind</em>' attribute.
312
	 * @see #setConnectorKind(String)
324
	 * @see #setConnectorKind(String)
313
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_ConnectorKind()
325
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_ConnectorKind()
Lines 319-346 Link Here
319
	}
331
	}
320
332
321
	/**
333
	/**
322
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getConnectorKind <em>Connector Kind</em>}' attribute.
334
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getConnectorKind
323
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
335
	 * <em>Connector Kind</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
324
	 * @param value the new value of the '<em>Connector Kind</em>' attribute.
336
	 * 
337
	 * @param value
338
	 *            the new value of the '<em>Connector Kind</em>' attribute.
325
	 * @see #getConnectorKind()
339
	 * @see #getConnectorKind()
326
	 * @generated
340
	 * @generated
327
	 */
341
	 */
328
	public void setConnectorKind(String newConnectorKind) {
342
	public void setConnectorKind(String newConnectorKind) {
329
		String oldConnectorKind = connectorKind;
343
		String oldConnectorKind = connectorKind;
330
		connectorKind = newConnectorKind;
344
		connectorKind = newConnectorKind;
331
		if (eNotificationRequired())
345
		if (eNotificationRequired()) {
332
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__CONNECTOR_KIND,
346
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__CONNECTOR_KIND,
333
					oldConnectorKind, connectorKind));
347
					oldConnectorKind, connectorKind));
348
		}
334
	}
349
	}
335
350
336
	/**
351
	/**
337
	 * Returns the value of the '<em><b>Repository Url</b></em>' attribute.
352
	 * Returns the value of the '<em><b>Repository Url</b></em>' attribute. <!-- begin-user-doc -->
338
	 * <!-- begin-user-doc -->
339
	 * <p>
353
	 * <p>
340
	 * If the meaning of the '<em>Repository Url</em>' attribute isn't clear, there really should be more of a
354
	 * If the meaning of the '<em>Repository Url</em>' attribute isn't clear, there really should be more of a
341
	 * description here...
355
	 * description here...
342
	 * </p>
356
	 * </p>
343
	 * <!-- end-user-doc -->
357
	 * <!-- end-user-doc -->
358
	 * 
344
	 * @return the value of the '<em>Repository Url</em>' attribute.
359
	 * @return the value of the '<em>Repository Url</em>' attribute.
345
	 * @see #setRepositoryUrl(String)
360
	 * @see #setRepositoryUrl(String)
346
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_RepositoryUrl()
361
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_RepositoryUrl()
Lines 352-379 Link Here
352
	}
367
	}
353
368
354
	/**
369
	/**
355
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepositoryUrl <em>Repository Url</em>}' attribute.
370
	 * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepositoryUrl
356
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
371
	 * <em>Repository Url</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc -->
357
	 * @param value the new value of the '<em>Repository Url</em>' attribute.
372
	 * 
373
	 * @param value
374
	 *            the new value of the '<em>Repository Url</em>' attribute.
358
	 * @see #getRepositoryUrl()
375
	 * @see #getRepositoryUrl()
359
	 * @generated
376
	 * @generated
360
	 */
377
	 */
361
	public void setRepositoryUrl(String newRepositoryUrl) {
378
	public void setRepositoryUrl(String newRepositoryUrl) {
362
		String oldRepositoryUrl = repositoryUrl;
379
		String oldRepositoryUrl = repositoryUrl;
363
		repositoryUrl = newRepositoryUrl;
380
		repositoryUrl = newRepositoryUrl;
364
		if (eNotificationRequired())
381
		if (eNotificationRequired()) {
365
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY_URL,
382
			eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY_URL,
366
					oldRepositoryUrl, repositoryUrl));
383
					oldRepositoryUrl, repositoryUrl));
384
		}
367
	}
385
	}
368
386
369
	/**
387
	/**
370
	 * Returns the value of the '<em><b>Server</b></em>' reference.
388
	 * Returns the value of the '<em><b>Server</b></em>' reference. <!-- begin-user-doc -->
371
	 * <!-- begin-user-doc -->
372
	 * <p>
389
	 * <p>
373
	 * If the meaning of the '<em>Server</em>' reference isn't clear, there really should be more of a description
390
	 * If the meaning of the '<em>Server</em>' reference isn't clear, there really should be more of a description
374
	 * here...
391
	 * here...
375
	 * </p>
392
	 * </p>
376
	 * <!-- end-user-doc -->
393
	 * <!-- end-user-doc -->
394
	 * 
377
	 * @return the value of the '<em>Server</em>' reference.
395
	 * @return the value of the '<em>Server</em>' reference.
378
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer_Server()
396
	 * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer_Server()
379
	 * @model required="true" changeable="false" derived="true"
397
	 * @model required="true" changeable="false" derived="true"
Lines 381-392 Link Here
381
	 */
399
	 */
382
	public BuildServer getServer() {
400
	public BuildServer getServer() {
383
		if (server != null && server.eIsProxy()) {
401
		if (server != null && server.eIsProxy()) {
384
			InternalEObject oldServer = (InternalEObject) server;
402
			InternalEObject oldServer = server;
385
			server = (BuildServer) eResolveProxy(oldServer);
403
			server = (BuildServer) eResolveProxy(oldServer);
386
			if (server != oldServer) {
404
			if (server != oldServer) {
387
				if (eNotificationRequired())
405
				if (eNotificationRequired()) {
388
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BuildPackage.BUILD_SERVER__SERVER,
406
					eNotify(new ENotificationImpl(this, Notification.RESOLVE, BuildPackage.BUILD_SERVER__SERVER,
389
							oldServer, server));
407
							oldServer, server));
408
				}
390
			}
409
			}
391
		}
410
		}
392
		return server;
411
		return server;
Lines 394-399 Link Here
394
413
395
	/**
414
	/**
396
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
415
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
416
	 * 
397
	 * @generated
417
	 * @generated
398
	 */
418
	 */
399
	public BuildServer basicGetServer() {
419
	public BuildServer basicGetServer() {
Lines 402-407 Link Here
402
422
403
	/**
423
	/**
404
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
424
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
425
	 * 
405
	 * @generated
426
	 * @generated
406
	 */
427
	 */
407
	@SuppressWarnings("unchecked")
428
	@SuppressWarnings("unchecked")
Lines 416-421 Link Here
416
437
417
	/**
438
	/**
418
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
439
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
440
	 * 
419
	 * @generated
441
	 * @generated
420
	 */
442
	 */
421
	@Override
443
	@Override
Lines 429-434 Link Here
429
451
430
	/**
452
	/**
431
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
453
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
454
	 * 
432
	 * @generated
455
	 * @generated
433
	 */
456
	 */
434
	@Override
457
	@Override
Lines 447-454 Link Here
447
		case BuildPackage.BUILD_SERVER__REPOSITORY_URL:
470
		case BuildPackage.BUILD_SERVER__REPOSITORY_URL:
448
			return getRepositoryUrl();
471
			return getRepositoryUrl();
449
		case BuildPackage.BUILD_SERVER__SERVER:
472
		case BuildPackage.BUILD_SERVER__SERVER:
450
			if (resolve)
473
			if (resolve) {
451
				return getServer();
474
				return getServer();
475
			}
452
			return basicGetServer();
476
			return basicGetServer();
453
		}
477
		}
454
		return super.eGet(featureID, resolve, coreType);
478
		return super.eGet(featureID, resolve, coreType);
Lines 456-461 Link Here
456
480
457
	/**
481
	/**
458
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
482
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
483
	 * 
459
	 * @generated
484
	 * @generated
460
	 */
485
	 */
461
	@SuppressWarnings("unchecked")
486
	@SuppressWarnings("unchecked")
Lines 487-492 Link Here
487
512
488
	/**
513
	/**
489
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
514
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
515
	 * 
490
	 * @generated
516
	 * @generated
491
	 */
517
	 */
492
	@Override
518
	@Override
Lines 516-521 Link Here
516
542
517
	/**
543
	/**
518
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
544
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
545
	 * 
519
	 * @generated
546
	 * @generated
520
	 */
547
	 */
521
	@Override
548
	@Override
Lines 543-554 Link Here
543
570
544
	/**
571
	/**
545
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
572
	 * <!-- begin-user-doc --> <!-- end-user-doc -->
573
	 * 
546
	 * @generated
574
	 * @generated
547
	 */
575
	 */
548
	@Override
576
	@Override
549
	public String toString() {
577
	public String toString() {
550
		if (eIsProxy())
578
		if (eIsProxy()) {
551
			return super.toString();
579
			return super.toString();
580
		}
552
581
553
		StringBuffer result = new StringBuffer(super.toString());
582
		StringBuffer result = new StringBuffer(super.toString());
554
		result.append(" (url: ");
583
		result.append(" (url: ");
Lines 609-612 Link Here
609
		return plan;
638
		return plan;
610
	}
639
	}
611
640
641
	public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException {
642
		return getBehaviour().runBuild(element, monitor);
643
	}
644
612
} // BuildServer
645
} // BuildServer
(-)src/org/eclipse/mylyn/builds/tests/mock/MockBuildServerBehavior.java (+6 lines)
Lines 18-23 Link Here
18
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.core.runtime.IStatus;
19
import org.eclipse.core.runtime.Status;
19
import org.eclipse.core.runtime.Status;
20
import org.eclipse.mylyn.builds.core.BuildState;
20
import org.eclipse.mylyn.builds.core.BuildState;
21
import org.eclipse.mylyn.builds.core.IBuildElement;
21
import org.eclipse.mylyn.builds.core.IBuildPlan;
22
import org.eclipse.mylyn.builds.core.IBuildPlan;
22
import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy;
23
import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy;
23
import org.eclipse.mylyn.builds.core.IBuildServer;
24
import org.eclipse.mylyn.builds.core.IBuildServer;
Lines 73-76 Link Here
73
		return Status.OK_STATUS;
74
		return Status.OK_STATUS;
74
	}
75
	}
75
76
77
	@Override
78
	public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException {
79
		return Status.OK_STATUS;
80
	}
81
76
}
82
}
(-)src/org/eclipse/mylyn/internal/builds/ui/view/BuildsView.java (+9 lines)
Lines 90-95 Link Here
90
		MenuManager menuManager = new MenuManager();
90
		MenuManager menuManager = new MenuManager();
91
91
92
		GroupMarker marker = new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS);
92
		GroupMarker marker = new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS);
93
94
		OpenInBrowserAction openInBrowserAction = new OpenInBrowserAction();
95
		menuManager.add(openInBrowserAction);
96
		viewer.addSelectionChangedListener(openInBrowserAction);
97
98
		RunBuildAction runBuildAction = new RunBuildAction();
99
		menuManager.add(runBuildAction);
100
		viewer.addSelectionChangedListener(runBuildAction);
101
93
		menuManager.add(marker);
102
		menuManager.add(marker);
94
		Menu contextMenu = menuManager.createContextMenu(parent);
103
		Menu contextMenu = menuManager.createContextMenu(parent);
95
104
(-)src/org/eclipse/mylyn/internal/builds/ui/view/RunBuildAction.java (+60 lines)
Added Link Here
1
/*******************************************************************************
2
 * Copyright (c) 2010 Markus Knittig and others.
3
 * All rights reserved. This program and the accompanying materials
4
 * are made available under the terms of the Eclipse Public License v1.0
5
 * which accompanies this distribution, and is available at
6
 * http://www.eclipse.org/legal/epl-v10.html
7
 *
8
 * Contributors:
9
 *     Markus Knittig - initial API and implementation
10
 *******************************************************************************/
11
12
package org.eclipse.mylyn.internal.builds.ui.view;
13
14
import org.eclipse.core.runtime.CoreException;
15
import org.eclipse.core.runtime.IProgressMonitor;
16
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.core.runtime.NullProgressMonitor;
18
import org.eclipse.core.runtime.Status;
19
import org.eclipse.core.runtime.jobs.Job;
20
import org.eclipse.jface.viewers.IStructuredSelection;
21
import org.eclipse.mylyn.builds.core.IBuildElement;
22
import org.eclipse.mylyn.builds.core.util.ProgressUtil;
23
import org.eclipse.ui.actions.BaseSelectionListenerAction;
24
25
/**
26
 * @author Markus Knittig
27
 */
28
public class RunBuildAction extends BaseSelectionListenerAction {
29
30
	protected RunBuildAction() {
31
		super("Run Build");
32
		setToolTipText("Run Build");
33
		// TODO insert eclipse run icon
34
	}
35
36
	@Override
37
	protected boolean updateSelection(IStructuredSelection selection) {
38
		return !selection.isEmpty();
39
	}
40
41
	@Override
42
	public void run() {
43
		IStructuredSelection selection = getStructuredSelection();
44
		for (Object object : selection.toList()) {
45
			if (object instanceof IBuildElement) {
46
				final IBuildElement element = (IBuildElement) object;
47
				new Job("Running build...") {
48
					@Override
49
					protected IStatus run(IProgressMonitor monitor) {
50
						try {
51
							return element.getServer().runBuild(element, ProgressUtil.convert(monitor));
52
						} catch (CoreException e) {
53
							return Status.CANCEL_STATUS;
54
						}
55
					}
56
				}.run(new NullProgressMonitor());
57
			}
58
		}
59
	}
60
}
(-)src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java (-1 / +7 lines)
Lines 15-20 Link Here
15
15
16
import org.eclipse.core.runtime.CoreException;
16
import org.eclipse.core.runtime.CoreException;
17
import org.eclipse.core.runtime.IStatus;
17
import org.eclipse.core.runtime.IStatus;
18
import org.eclipse.mylyn.builds.core.IBuildElement;
18
import org.eclipse.mylyn.builds.core.IBuildPlan;
19
import org.eclipse.mylyn.builds.core.IBuildPlan;
19
import org.eclipse.mylyn.builds.core.IBuildServer;
20
import org.eclipse.mylyn.builds.core.IBuildServer;
20
import org.eclipse.mylyn.builds.core.IOperationMonitor;
21
import org.eclipse.mylyn.builds.core.IOperationMonitor;
Lines 36-42 Link Here
36
37
37
	@Override
38
	@Override
38
	public List<IBuildPlan> getPlans(IOperationMonitor monitor) throws CoreException {
39
	public List<IBuildPlan> getPlans(IOperationMonitor monitor) throws CoreException {
39
		return null;
40
		return client.getPlans(monitor);
40
	}
41
	}
41
42
42
	@Override
43
	@Override
Lines 44-47 Link Here
44
		return client.validate(monitor);
45
		return client.validate(monitor);
45
	}
46
	}
46
47
48
	@Override
49
	public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException {
50
		return client.runBuild(element, monitor);
51
	}
52
47
}
53
}
(-)src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java (+96 lines)
Lines 11-17 Link Here
11
11
12
package org.eclipse.mylyn.internal.hudson.core.client;
12
package org.eclipse.mylyn.internal.hudson.core.client;
13
13
14
import java.io.ByteArrayInputStream;
14
import java.io.IOException;
15
import java.io.IOException;
16
import java.util.ArrayList;
17
import java.util.List;
18
19
import javax.xml.bind.JAXBContext;
20
import javax.xml.bind.JAXBElement;
21
import javax.xml.bind.JAXBException;
22
import javax.xml.bind.Unmarshaller;
23
import javax.xml.parsers.DocumentBuilderFactory;
15
24
16
import org.apache.commons.httpclient.HttpClient;
25
import org.apache.commons.httpclient.HttpClient;
17
import org.apache.commons.httpclient.HttpStatus;
26
import org.apache.commons.httpclient.HttpStatus;
Lines 19-27 Link Here
19
import org.eclipse.core.runtime.IStatus;
28
import org.eclipse.core.runtime.IStatus;
20
import org.eclipse.core.runtime.NullProgressMonitor;
29
import org.eclipse.core.runtime.NullProgressMonitor;
21
import org.eclipse.core.runtime.Status;
30
import org.eclipse.core.runtime.Status;
31
import org.eclipse.mylyn.builds.core.BuildState;
32
import org.eclipse.mylyn.builds.core.IBuildElement;
33
import org.eclipse.mylyn.builds.core.IBuildPlan;
22
import org.eclipse.mylyn.builds.core.IOperationMonitor;
34
import org.eclipse.mylyn.builds.core.IOperationMonitor;
23
import org.eclipse.mylyn.commons.net.AbstractWebLocation;
35
import org.eclipse.mylyn.commons.net.AbstractWebLocation;
24
import org.eclipse.mylyn.commons.net.WebUtil;
36
import org.eclipse.mylyn.commons.net.WebUtil;
37
import org.eclipse.mylyn.internal.builds.core.BuildFactory;
38
import org.eclipse.mylyn.internal.builds.core.BuildPlan;
39
import org.eclipse.mylyn.internal.hudson.model.HudsonModelBallColor;
40
import org.eclipse.mylyn.internal.hudson.model.HudsonModelHudson;
41
import org.eclipse.mylyn.internal.hudson.model.HudsonModelJob;
42
import org.w3c.dom.Element;
43
import org.w3c.dom.Node;
25
44
26
/**
45
/**
27
 * Represents the Hudson repository that is accessed through REST.
46
 * Represents the Hudson repository that is accessed through REST.
Lines 54-57 Link Here
54
		return Status.OK_STATUS;
73
		return Status.OK_STATUS;
55
	}
74
	}
56
75
76
	public List<IBuildPlan> getPlans(IOperationMonitor convert) {
77
		GetMethod get = new GetMethod(location.getUrl() + "/api/xml"); //$NON-NLS-1$
78
79
		String response = null;
80
		try {
81
			httpClient.executeMethod(get);
82
			response = get.getResponseBodyAsString();
83
		} catch (IOException e) {
84
			throw new RuntimeException(e);
85
		}
86
87
		HudsonModelHudson hudson = unmarshal(stringToElement(response), HudsonModelHudson.class);
88
		List<IBuildPlan> buildPlans = new ArrayList<IBuildPlan>();
89
		List<Object> jobs = hudson.getJob();
90
		for (Object jobObj : jobs) {
91
			HudsonModelJob job = unmarshal((Node) jobObj, HudsonModelJob.class);
92
93
			BuildPlan buildPlan = new BuildFactory().createBuildPlan();
94
			buildPlan.setId(job.getName());
95
			if ("".equals(job.getDisplayName())) { //$NON-NLS-1$
96
				buildPlan.setName(job.getDisplayName());
97
			} else {
98
				buildPlan.setName(job.getName());
99
			}
100
			buildPlan.setSummary(job.getDescription());
101
			buildPlan.setUrl(job.getUrl());
102
			if (job.getColor().equals(HudsonModelBallColor.BLUE_ANIME)
103
					|| job.getColor().equals(HudsonModelBallColor.RED_ANIME)
104
					|| job.getColor().equals(HudsonModelBallColor.YELLOW_ANIME)
105
					|| job.getColor().equals(HudsonModelBallColor.DISABLED_ANIME)
106
					|| job.getColor().equals(HudsonModelBallColor.GREY_ANIME)) {
107
				buildPlan.setState(BuildState.RUNNING);
108
			} else {
109
				buildPlan.setState(BuildState.STOPPED);
110
			}
111
			buildPlan.setHealth(job.getColor().ordinal());
112
			buildPlans.add(buildPlan);
113
		}
114
115
		return buildPlans;
116
	}
117
118
	public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) {
119
		GetMethod get = new GetMethod(element.getUrl() + "/build");
120
		try {
121
			if (httpClient.executeMethod(get) >= HttpStatus.SC_BAD_REQUEST) {
122
				return Status.CANCEL_STATUS;
123
			}
124
		} catch (IOException e) {
125
			return Status.CANCEL_STATUS;
126
		}
127
		return Status.OK_STATUS;
128
	}
129
130
	private Element stringToElement(String string) {
131
		try {
132
			return DocumentBuilderFactory.newInstance()
133
					.newDocumentBuilder()
134
					.parse(new ByteArrayInputStream(string.getBytes()))
135
					.getDocumentElement();
136
		} catch (Exception e) {
137
			throw new RuntimeException(e);
138
		}
139
	}
140
141
	private <T> T unmarshal(Node node, Class<T> clazz) {
142
		try {
143
			JAXBContext ctx = JAXBContext.newInstance(clazz);
144
			Unmarshaller unmarshaller = ctx.createUnmarshaller();
145
146
			JAXBElement<T> hudsonElement = unmarshaller.unmarshal(node, clazz);
147
			return hudsonElement.getValue();
148
		} catch (JAXBException e) {
149
			throw new RuntimeException(e);
150
		}
151
	}
152
57
}
153
}

Return to bug 317384