Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 172296 Details for
Bug 317384
[build] add "Run build" functionality
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
Add "Run build" function
mylyn-run-build.diff (text/plain), 28.84 KB, created by
Markus Knittig
on 2010-06-20 16:25:33 EDT
(
hide
)
Description:
Add "Run build" function
Filename:
MIME Type:
Creator:
Markus Knittig
Created:
2010-06-20 16:25:33 EDT
Size:
28.84 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.mylyn.builds.core >Index: src/org/eclipse/mylyn/builds/core/IBuildServer.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.builds.core/src/org/eclipse/mylyn/builds/core/IBuildServer.java,v >retrieving revision 1.3 >diff -u -r1.3 IBuildServer.java >--- src/org/eclipse/mylyn/builds/core/IBuildServer.java 30 May 2010 20:28:49 -0000 1.3 >+++ src/org/eclipse/mylyn/builds/core/IBuildServer.java 20 Jun 2010 20:24:12 -0000 >@@ -34,4 +34,6 @@ > > public IBuildPlanWorkingCopy createBuildPlan(); > >+ IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException; >+ > } >Index: src/org/eclipse/mylyn/builds/core/spi/BuildServerBehaviour.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.builds.core/src/org/eclipse/mylyn/builds/core/spi/BuildServerBehaviour.java,v >retrieving revision 1.2 >diff -u -r1.2 BuildServerBehaviour.java >--- src/org/eclipse/mylyn/builds/core/spi/BuildServerBehaviour.java 30 May 2010 19:27:55 -0000 1.2 >+++ src/org/eclipse/mylyn/builds/core/spi/BuildServerBehaviour.java 20 Jun 2010 20:24:12 -0000 >@@ -15,6 +15,7 @@ > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IStatus; >+import org.eclipse.mylyn.builds.core.IBuildElement; > import org.eclipse.mylyn.builds.core.IBuildPlan; > import org.eclipse.mylyn.builds.core.IBuildServer; > import org.eclipse.mylyn.builds.core.IOperationMonitor; >@@ -38,4 +39,6 @@ > > public abstract IStatus validate(IOperationMonitor monitor) throws CoreException; > >+ public abstract IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException; >+ > } >Index: src/org/eclipse/mylyn/internal/builds/core/BuildServer.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.builds.core/src/org/eclipse/mylyn/internal/builds/core/BuildServer.java,v >retrieving revision 1.3 >diff -u -r1.3 BuildServer.java >--- src/org/eclipse/mylyn/internal/builds/core/BuildServer.java 30 May 2010 20:28:49 -0000 1.3 >+++ src/org/eclipse/mylyn/internal/builds/core/BuildServer.java 20 Jun 2010 20:24:12 -0000 >@@ -22,6 +22,7 @@ > import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; > import org.eclipse.emf.ecore.util.EcoreUtil; > import org.eclipse.emf.ecore.util.InternalEList; >+import org.eclipse.mylyn.builds.core.IBuildElement; > import org.eclipse.mylyn.builds.core.IBuildPlan; > import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy; > import org.eclipse.mylyn.builds.core.IBuildServer; >@@ -32,14 +33,13 @@ > > /** > * <!-- begin-user-doc --> A representation of the model object '<em><b>Server</b></em>'. <!-- end-user-doc --> >- * > * <p> > * The following features are supported: > * <ul> >- * <li>{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getServer <em>Server</em>}</li> >+ * <li>{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getServer <em>Server</em>}</li> > * </ul> > * </p> >- * >+ * > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer() > * @model kind="class" superTypes="org.eclipse.mylyn.internal.builds.core.IBuildServer" > * @generated >@@ -56,8 +56,8 @@ > protected static final String URL_EDEFAULT = null; > > /** >- * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute. >- * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * The cached value of the '{@link #getUrl() <em>Url</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @see #getUrl() > * @generated > * @ordered >@@ -85,9 +85,9 @@ > protected String name = NAME_EDEFAULT; > > /** >- * The cached value of the '{@link #getPlans() <em>Plans</em>}' containment reference list. >- * <!-- begin-user-doc --> >+ * The cached value of the '{@link #getPlans() <em>Plans</em>}' containment reference list. <!-- begin-user-doc --> > * <!-- end-user-doc --> >+ * > * @see #getPlans() > * @generated > * @ordered >@@ -95,9 +95,9 @@ > protected EList<IBuildPlan> plans; > > /** >- * The default value of the '{@link #getRepository() <em>Repository</em>}' attribute. >- * <!-- begin-user-doc --> <!-- >+ * The default value of the '{@link #getRepository() <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!-- > * end-user-doc --> >+ * > * @see #getRepository() > * @generated > * @ordered >@@ -105,9 +105,9 @@ > protected static final TaskRepository REPOSITORY_EDEFAULT = null; > > /** >- * The cached value of the '{@link #getRepository() <em>Repository</em>}' attribute. >- * <!-- begin-user-doc --> <!-- >+ * The cached value of the '{@link #getRepository() <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!-- > * end-user-doc --> >+ * > * @see #getRepository() > * @generated > * @ordered >@@ -115,9 +115,9 @@ > protected TaskRepository repository = REPOSITORY_EDEFAULT; > > /** >- * The default value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. >- * <!-- begin-user-doc --> >+ * The default value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. <!-- begin-user-doc --> > * <!-- end-user-doc --> >+ * > * @see #getConnectorKind() > * @generated > * @ordered >@@ -125,9 +125,9 @@ > protected static final String CONNECTOR_KIND_EDEFAULT = null; > > /** >- * The cached value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. >- * <!-- begin-user-doc --> >+ * The cached value of the '{@link #getConnectorKind() <em>Connector Kind</em>}' attribute. <!-- begin-user-doc --> > * <!-- end-user-doc --> >+ * > * @see #getConnectorKind() > * @generated > * @ordered >@@ -135,9 +135,9 @@ > protected String connectorKind = CONNECTOR_KIND_EDEFAULT; > > /** >- * The default value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. >- * <!-- begin-user-doc --> >+ * The default value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. <!-- begin-user-doc --> > * <!-- end-user-doc --> >+ * > * @see #getRepositoryUrl() > * @generated > * @ordered >@@ -145,9 +145,9 @@ > protected static final String REPOSITORY_URL_EDEFAULT = null; > > /** >- * The cached value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. >- * <!-- begin-user-doc --> >+ * The cached value of the '{@link #getRepositoryUrl() <em>Repository Url</em>}' attribute. <!-- begin-user-doc --> > * <!-- end-user-doc --> >+ * > * @see #getRepositoryUrl() > * @generated > * @ordered >@@ -155,9 +155,9 @@ > protected String repositoryUrl = REPOSITORY_URL_EDEFAULT; > > /** >- * The cached value of the '{@link #getServer() <em>Server</em>}' reference. >- * <!-- begin-user-doc --> <!-- >+ * The cached value of the '{@link #getServer() <em>Server</em>}' reference. <!-- begin-user-doc --> <!-- > * end-user-doc --> >+ * > * @see #getServer() > * @generated > * @ordered >@@ -166,6 +166,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > protected BuildServer() { >@@ -174,6 +175,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override >@@ -182,12 +184,12 @@ > } > > /** >- * Returns the value of the '<em><b>Url</b></em>' attribute. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Url</b></em>' attribute. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Url</em>' attribute isn't clear, there really should be more of a description here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Url</em>' attribute. > * @see #setUrl(String) > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Url() >@@ -201,24 +203,27 @@ > /** > * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getUrl <em>Url</em>}' attribute. > * <!-- begin-user-doc --> <!-- end-user-doc --> >- * @param value the new value of the '<em>Url</em>' attribute. >+ * >+ * @param value >+ * the new value of the '<em>Url</em>' attribute. > * @see #getUrl() > * @generated > */ > public void setUrl(String newUrl) { > String oldUrl = url; > url = newUrl; >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__URL, oldUrl, url)); >+ } > } > > /** >- * Returns the value of the '<em><b>Name</b></em>' attribute. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Name</b></em>' attribute. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Name</em>' attribute isn't clear, there really should be more of a description here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Name</em>' attribute. > * @see #setName(String) > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildElement_Name() >@@ -230,33 +235,37 @@ > } > > /** >- * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getName <em>Name</em>}' attribute. >- * <!-- begin-user-doc --> <!-- end-user-doc --> >- * @param value the new value of the '<em>Name</em>' attribute. >+ * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getName <em>Name</em>}' >+ * attribute. <!-- begin-user-doc --> <!-- end-user-doc --> >+ * >+ * @param value >+ * the new value of the '<em>Name</em>' attribute. > * @see #getName() > * @generated > */ > public void setName(String newName) { > String oldName = name; > name = newName; >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__NAME, oldName, name)); >+ } > } > > /** >- * Returns the value of the '<em><b>Plans</b></em>' containment reference list. >- * The list contents are of type {@link org.eclipse.mylyn.builds.core.IBuildPlan}. >- * It is bidirectional and its opposite is '{@link org.eclipse.mylyn.builds.core.IBuildPlan#getServer <em>Server</em>}'. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Plans</b></em>' containment reference list. The list contents are of type >+ * {@link org.eclipse.mylyn.builds.core.IBuildPlan}. It is bidirectional and its opposite is ' >+ * {@link org.eclipse.mylyn.builds.core.IBuildPlan#getServer <em>Server</em>}'. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Plans</em>' containment reference list isn't clear, there really should be more of a > * description here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Plans</em>' containment reference list. > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Plans() > * @see org.eclipse.mylyn.builds.core.IBuildPlan#getServer >- * @model type="org.eclipse.mylyn.internal.builds.core.IBuildPlan" opposite="server" containment="true" ordered="false" >+ * @model type="org.eclipse.mylyn.internal.builds.core.IBuildPlan" opposite="server" containment="true" >+ * ordered="false" > * @generated > */ > public EList<IBuildPlan> getPlans() { >@@ -268,13 +277,13 @@ > } > > /** >- * Returns the value of the '<em><b>Repository</b></em>' attribute. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Repository</b></em>' attribute. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Repository</em>' attribute isn't clear, there really should be more of a description > * here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Repository</em>' attribute. > * @see #setRepository(TaskRepository) > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_Repository() >@@ -286,28 +295,31 @@ > } > > /** >- * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepository <em>Repository</em>}' attribute. >- * <!-- begin-user-doc --> <!-- end-user-doc --> >- * @param value the new value of the '<em>Repository</em>' attribute. >+ * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepository >+ * <em>Repository</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> >+ * >+ * @param value >+ * the new value of the '<em>Repository</em>' attribute. > * @see #getRepository() > * @generated > */ > public void setRepository(TaskRepository newRepository) { > TaskRepository oldRepository = repository; > repository = newRepository; >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY, oldRepository, > repository)); >+ } > } > > /** >- * Returns the value of the '<em><b>Connector Kind</b></em>' attribute. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Connector Kind</b></em>' attribute. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Connector Kind</em>' attribute isn't clear, there really should be more of a > * description here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Connector Kind</em>' attribute. > * @see #setConnectorKind(String) > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_ConnectorKind() >@@ -319,28 +331,31 @@ > } > > /** >- * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getConnectorKind <em>Connector Kind</em>}' attribute. >- * <!-- begin-user-doc --> <!-- end-user-doc --> >- * @param value the new value of the '<em>Connector Kind</em>' attribute. >+ * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getConnectorKind >+ * <em>Connector Kind</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> >+ * >+ * @param value >+ * the new value of the '<em>Connector Kind</em>' attribute. > * @see #getConnectorKind() > * @generated > */ > public void setConnectorKind(String newConnectorKind) { > String oldConnectorKind = connectorKind; > connectorKind = newConnectorKind; >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__CONNECTOR_KIND, > oldConnectorKind, connectorKind)); >+ } > } > > /** >- * Returns the value of the '<em><b>Repository Url</b></em>' attribute. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Repository Url</b></em>' attribute. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Repository Url</em>' attribute isn't clear, there really should be more of a > * description here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Repository Url</em>' attribute. > * @see #setRepositoryUrl(String) > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getIBuildServer_RepositoryUrl() >@@ -352,28 +367,31 @@ > } > > /** >- * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepositoryUrl <em>Repository Url</em>}' attribute. >- * <!-- begin-user-doc --> <!-- end-user-doc --> >- * @param value the new value of the '<em>Repository Url</em>' attribute. >+ * Sets the value of the '{@link org.eclipse.mylyn.internal.builds.core.BuildServer#getRepositoryUrl >+ * <em>Repository Url</em>}' attribute. <!-- begin-user-doc --> <!-- end-user-doc --> >+ * >+ * @param value >+ * the new value of the '<em>Repository Url</em>' attribute. > * @see #getRepositoryUrl() > * @generated > */ > public void setRepositoryUrl(String newRepositoryUrl) { > String oldRepositoryUrl = repositoryUrl; > repositoryUrl = newRepositoryUrl; >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.SET, BuildPackage.BUILD_SERVER__REPOSITORY_URL, > oldRepositoryUrl, repositoryUrl)); >+ } > } > > /** >- * Returns the value of the '<em><b>Server</b></em>' reference. >- * <!-- begin-user-doc --> >+ * Returns the value of the '<em><b>Server</b></em>' reference. <!-- begin-user-doc --> > * <p> > * If the meaning of the '<em>Server</em>' reference isn't clear, there really should be more of a description > * here... > * </p> > * <!-- end-user-doc --> >+ * > * @return the value of the '<em>Server</em>' reference. > * @see org.eclipse.mylyn.internal.builds.core.BuildPackage#getBuildServer_Server() > * @model required="true" changeable="false" derived="true" >@@ -381,12 +399,13 @@ > */ > public BuildServer getServer() { > if (server != null && server.eIsProxy()) { >- InternalEObject oldServer = (InternalEObject) server; >+ InternalEObject oldServer = server; > server = (BuildServer) eResolveProxy(oldServer); > if (server != oldServer) { >- if (eNotificationRequired()) >+ if (eNotificationRequired()) { > eNotify(new ENotificationImpl(this, Notification.RESOLVE, BuildPackage.BUILD_SERVER__SERVER, > oldServer, server)); >+ } > } > } > return server; >@@ -394,6 +413,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > public BuildServer basicGetServer() { >@@ -402,6 +422,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @SuppressWarnings("unchecked") >@@ -416,6 +437,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override >@@ -429,6 +451,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override >@@ -447,8 +470,9 @@ > case BuildPackage.BUILD_SERVER__REPOSITORY_URL: > return getRepositoryUrl(); > case BuildPackage.BUILD_SERVER__SERVER: >- if (resolve) >+ if (resolve) { > return getServer(); >+ } > return basicGetServer(); > } > return super.eGet(featureID, resolve, coreType); >@@ -456,6 +480,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @SuppressWarnings("unchecked") >@@ -487,6 +512,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override >@@ -516,6 +542,7 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override >@@ -543,12 +570,14 @@ > > /** > * <!-- begin-user-doc --> <!-- end-user-doc --> >+ * > * @generated > */ > @Override > public String toString() { >- if (eIsProxy()) >+ if (eIsProxy()) { > return super.toString(); >+ } > > StringBuffer result = new StringBuffer(super.toString()); > result.append(" (url: "); >@@ -609,4 +638,8 @@ > return plan; > } > >+ public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException { >+ return getBehaviour().runBuild(element, monitor); >+ } >+ > } // BuildServer >#P org.eclipse.mylyn.builds.tests >Index: src/org/eclipse/mylyn/builds/tests/mock/MockBuildServerBehavior.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.builds.tests/src/org/eclipse/mylyn/builds/tests/mock/MockBuildServerBehavior.java,v >retrieving revision 1.3 >diff -u -r1.3 MockBuildServerBehavior.java >--- src/org/eclipse/mylyn/builds/tests/mock/MockBuildServerBehavior.java 30 May 2010 20:28:46 -0000 1.3 >+++ src/org/eclipse/mylyn/builds/tests/mock/MockBuildServerBehavior.java 20 Jun 2010 20:24:13 -0000 >@@ -18,6 +18,7 @@ > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; > import org.eclipse.mylyn.builds.core.BuildState; >+import org.eclipse.mylyn.builds.core.IBuildElement; > import org.eclipse.mylyn.builds.core.IBuildPlan; > import org.eclipse.mylyn.builds.core.IBuildPlanWorkingCopy; > import org.eclipse.mylyn.builds.core.IBuildServer; >@@ -73,4 +74,9 @@ > return Status.OK_STATUS; > } > >+ @Override >+ public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException { >+ return Status.OK_STATUS; >+ } >+ > } >#P org.eclipse.mylyn.builds.ui >Index: src/org/eclipse/mylyn/internal/builds/ui/view/BuildsView.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.builds.ui/src/org/eclipse/mylyn/internal/builds/ui/view/BuildsView.java,v >retrieving revision 1.3 >diff -u -r1.3 BuildsView.java >--- src/org/eclipse/mylyn/internal/builds/ui/view/BuildsView.java 30 May 2010 20:28:45 -0000 1.3 >+++ src/org/eclipse/mylyn/internal/builds/ui/view/BuildsView.java 20 Jun 2010 20:24:15 -0000 >@@ -90,6 +90,15 @@ > MenuManager menuManager = new MenuManager(); > > GroupMarker marker = new GroupMarker(IWorkbenchActionConstants.MB_ADDITIONS); >+ >+ OpenInBrowserAction openInBrowserAction = new OpenInBrowserAction(); >+ menuManager.add(openInBrowserAction); >+ viewer.addSelectionChangedListener(openInBrowserAction); >+ >+ RunBuildAction runBuildAction = new RunBuildAction(); >+ menuManager.add(runBuildAction); >+ viewer.addSelectionChangedListener(runBuildAction); >+ > menuManager.add(marker); > Menu contextMenu = menuManager.createContextMenu(parent); > >Index: src/org/eclipse/mylyn/internal/builds/ui/view/RunBuildAction.java >=================================================================== >RCS file: src/org/eclipse/mylyn/internal/builds/ui/view/RunBuildAction.java >diff -N src/org/eclipse/mylyn/internal/builds/ui/view/RunBuildAction.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/mylyn/internal/builds/ui/view/RunBuildAction.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,60 @@ >+/******************************************************************************* >+ * Copyright (c) 2010 Markus Knittig and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * Markus Knittig - initial API and implementation >+ *******************************************************************************/ >+ >+package org.eclipse.mylyn.internal.builds.ui.view; >+ >+import org.eclipse.core.runtime.CoreException; >+import org.eclipse.core.runtime.IProgressMonitor; >+import org.eclipse.core.runtime.IStatus; >+import org.eclipse.core.runtime.NullProgressMonitor; >+import org.eclipse.core.runtime.Status; >+import org.eclipse.core.runtime.jobs.Job; >+import org.eclipse.jface.viewers.IStructuredSelection; >+import org.eclipse.mylyn.builds.core.IBuildElement; >+import org.eclipse.mylyn.builds.core.util.ProgressUtil; >+import org.eclipse.ui.actions.BaseSelectionListenerAction; >+ >+/** >+ * @author Markus Knittig >+ */ >+public class RunBuildAction extends BaseSelectionListenerAction { >+ >+ protected RunBuildAction() { >+ super("Run Build"); >+ setToolTipText("Run Build"); >+ // TODO insert eclipse run icon >+ } >+ >+ @Override >+ protected boolean updateSelection(IStructuredSelection selection) { >+ return !selection.isEmpty(); >+ } >+ >+ @Override >+ public void run() { >+ IStructuredSelection selection = getStructuredSelection(); >+ for (Object object : selection.toList()) { >+ if (object instanceof IBuildElement) { >+ final IBuildElement element = (IBuildElement) object; >+ new Job("Running build...") { >+ @Override >+ protected IStatus run(IProgressMonitor monitor) { >+ try { >+ return element.getServer().runBuild(element, ProgressUtil.convert(monitor)); >+ } catch (CoreException e) { >+ return Status.CANCEL_STATUS; >+ } >+ } >+ }.run(new NullProgressMonitor()); >+ } >+ } >+ } >+} >#P org.eclipse.mylyn.hudson.core >Index: src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java,v >retrieving revision 1.1 >diff -u -r1.1 HudsonServerBehaviour.java >--- src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java 8 Jun 2010 02:15:59 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/hudson/core/HudsonServerBehaviour.java 20 Jun 2010 20:24:16 -0000 >@@ -15,6 +15,7 @@ > > import org.eclipse.core.runtime.CoreException; > import org.eclipse.core.runtime.IStatus; >+import org.eclipse.mylyn.builds.core.IBuildElement; > import org.eclipse.mylyn.builds.core.IBuildPlan; > import org.eclipse.mylyn.builds.core.IBuildServer; > import org.eclipse.mylyn.builds.core.IOperationMonitor; >@@ -36,7 +37,7 @@ > > @Override > public List<IBuildPlan> getPlans(IOperationMonitor monitor) throws CoreException { >- return null; >+ return client.getPlans(monitor); > } > > @Override >@@ -44,4 +45,9 @@ > return client.validate(monitor); > } > >+ @Override >+ public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) throws CoreException { >+ return client.runBuild(element, monitor); >+ } >+ > } >Index: src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java >=================================================================== >RCS file: /cvsroot/tools/org.eclipse.mylyn/sandbox/org.eclipse.mylyn.hudson.core/src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java,v >retrieving revision 1.1 >diff -u -r1.1 RestfulHudsonClient.java >--- src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java 8 Jun 2010 02:15:59 -0000 1.1 >+++ src/org/eclipse/mylyn/internal/hudson/core/client/RestfulHudsonClient.java 20 Jun 2010 20:24:16 -0000 >@@ -11,7 +11,16 @@ > > package org.eclipse.mylyn.internal.hudson.core.client; > >+import java.io.ByteArrayInputStream; > import java.io.IOException; >+import java.util.ArrayList; >+import java.util.List; >+ >+import javax.xml.bind.JAXBContext; >+import javax.xml.bind.JAXBElement; >+import javax.xml.bind.JAXBException; >+import javax.xml.bind.Unmarshaller; >+import javax.xml.parsers.DocumentBuilderFactory; > > import org.apache.commons.httpclient.HttpClient; > import org.apache.commons.httpclient.HttpStatus; >@@ -19,9 +28,19 @@ > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.NullProgressMonitor; > import org.eclipse.core.runtime.Status; >+import org.eclipse.mylyn.builds.core.BuildState; >+import org.eclipse.mylyn.builds.core.IBuildElement; >+import org.eclipse.mylyn.builds.core.IBuildPlan; > import org.eclipse.mylyn.builds.core.IOperationMonitor; > import org.eclipse.mylyn.commons.net.AbstractWebLocation; > import org.eclipse.mylyn.commons.net.WebUtil; >+import org.eclipse.mylyn.internal.builds.core.BuildFactory; >+import org.eclipse.mylyn.internal.builds.core.BuildPlan; >+import org.eclipse.mylyn.internal.hudson.model.HudsonModelBallColor; >+import org.eclipse.mylyn.internal.hudson.model.HudsonModelHudson; >+import org.eclipse.mylyn.internal.hudson.model.HudsonModelJob; >+import org.w3c.dom.Element; >+import org.w3c.dom.Node; > > /** > * Represents the Hudson repository that is accessed through REST. >@@ -54,4 +73,81 @@ > return Status.OK_STATUS; > } > >+ public List<IBuildPlan> getPlans(IOperationMonitor convert) { >+ GetMethod get = new GetMethod(location.getUrl() + "/api/xml"); //$NON-NLS-1$ >+ >+ String response = null; >+ try { >+ httpClient.executeMethod(get); >+ response = get.getResponseBodyAsString(); >+ } catch (IOException e) { >+ throw new RuntimeException(e); >+ } >+ >+ HudsonModelHudson hudson = unmarshal(stringToElement(response), HudsonModelHudson.class); >+ List<IBuildPlan> buildPlans = new ArrayList<IBuildPlan>(); >+ List<Object> jobs = hudson.getJob(); >+ for (Object jobObj : jobs) { >+ HudsonModelJob job = unmarshal((Node) jobObj, HudsonModelJob.class); >+ >+ BuildPlan buildPlan = new BuildFactory().createBuildPlan(); >+ buildPlan.setId(job.getName()); >+ if ("".equals(job.getDisplayName())) { //$NON-NLS-1$ >+ buildPlan.setName(job.getDisplayName()); >+ } else { >+ buildPlan.setName(job.getName()); >+ } >+ buildPlan.setSummary(job.getDescription()); >+ buildPlan.setUrl(job.getUrl()); >+ if (job.getColor().equals(HudsonModelBallColor.BLUE_ANIME) >+ || job.getColor().equals(HudsonModelBallColor.RED_ANIME) >+ || job.getColor().equals(HudsonModelBallColor.YELLOW_ANIME) >+ || job.getColor().equals(HudsonModelBallColor.DISABLED_ANIME) >+ || job.getColor().equals(HudsonModelBallColor.GREY_ANIME)) { >+ buildPlan.setState(BuildState.RUNNING); >+ } else { >+ buildPlan.setState(BuildState.STOPPED); >+ } >+ buildPlan.setHealth(job.getColor().ordinal()); >+ buildPlans.add(buildPlan); >+ } >+ >+ return buildPlans; >+ } >+ >+ public IStatus runBuild(IBuildElement element, IOperationMonitor monitor) { >+ GetMethod get = new GetMethod(element.getUrl() + "/build"); >+ try { >+ if (httpClient.executeMethod(get) >= HttpStatus.SC_BAD_REQUEST) { >+ return Status.CANCEL_STATUS; >+ } >+ } catch (IOException e) { >+ return Status.CANCEL_STATUS; >+ } >+ return Status.OK_STATUS; >+ } >+ >+ private Element stringToElement(String string) { >+ try { >+ return DocumentBuilderFactory.newInstance() >+ .newDocumentBuilder() >+ .parse(new ByteArrayInputStream(string.getBytes())) >+ .getDocumentElement(); >+ } catch (Exception e) { >+ throw new RuntimeException(e); >+ } >+ } >+ >+ private <T> T unmarshal(Node node, Class<T> clazz) { >+ try { >+ JAXBContext ctx = JAXBContext.newInstance(clazz); >+ Unmarshaller unmarshaller = ctx.createUnmarshaller(); >+ >+ JAXBElement<T> hudsonElement = unmarshaller.unmarshal(node, clazz); >+ return hudsonElement.getValue(); >+ } catch (JAXBException e) { >+ throw new RuntimeException(e); >+ } >+ } >+ > }
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 317384
:
172296
|
172297
|
172835
|
172836
|
172896
|
172897
|
172954
|
172955
|
172957