Community
Participate
Working Groups
The IServer.publish method has the following prototype: public IStatus publish(int kind, IProgressMonitor monitor); int kind can be one of the following, as per javadoc: * <li><code>PUBLSIH_FULL</code>- indicates a full publish.</li> * <li><code>PUBLISH_INCREMENTAL</code>- indicates a incremental publish. * <li><code>PUBLISH_CLEAN</code>- indicates a clean request. Clean throws * out all state and cleans up the module on the server before doing a * full publish. This API allows for full, incremental, or clean publish of the server as an entire entity, but it does not allow for the publishing of one or more specific modules only. Use Case: User has 8 projects opened, all of which qualify as "modules". They are all in various states of sync. Some are perfectly sync'd, others need a full publish, and still others need only an incremental publish. The user decides he wants to re-publish ONLY project5, and none of the others. There is no API for me to provide the user with this option. Suggestion: IServer.publish(int kind, IProgressMonitor monitor) { publish(kind, getAllModules(), monitor); } IServer.publish(int kind, IModule[] modules, IProgressMonitor monitor) { etc } This would require a similar change in the ServerBehaviorDelegate class.
This would require a similar change in the PublishServerJob, which admittedly is internal and trivially easy to duplicate, but would still benefit from the change.
Agreed; I knew this was coming. No plans in the short term yet for when this would be implemented and what changes would be made to the Servers view (although most likely an individual Publish option on each module).
I could care less about the ui's impl dealing with the issue. I just want the core to be changed as soon as is possible to allow for it. ;)
*** Bug 200279 has been marked as a duplicate of this bug. ***
*** Bug 205319 has been marked as a duplicate of this bug. ***
Tim I've noticed API changes in 3.0 m7. Would you say this bug is fixed?
That depends if you say 'yes' :). The new API exists and is passed through to ServerBehaviourDelegate, and all changes to affected classes like PublishJob, etc., have been made and tested. I had wanted to make some further changes to ServerBehaviourDelegate. Right now it just delegates to the existing publish() method, leaving it to individual servers to provide a better implementation that only publishes the correct modules. However, I have not found any non-breaking ways to make this change given the existing protected/impl methods (which may have been overridden by existing adapters) and hence have not made any further changes. If you consider this done for your scenario, I agree we should close and I can always open up another bug in the future if I find additional changes that could be made.
Doing cleanup. It sounds like this one should be closed. Tim, if there is further enhancements that you would like to get done, please open a new bug.
Closing old bugs.
New Gerrit change created: https://git.eclipse.org/r/108414
New Gerrit change created: https://git.eclipse.org/r/108413
New Gerrit change created: https://git.eclipse.org/r/108532
New Gerrit change created: https://git.eclipse.org/r/108534
New Gerrit change created: https://git.eclipse.org/r/109732
New Gerrit change created: https://git.eclipse.org/r/109762
Gerrit change https://git.eclipse.org/r/109762 was merged to [master]. Commit: http://git.eclipse.org/c/servertools/webtools.servertools.git/commit/?id=ba6dd0be95fa5e3c28157f8287600abf39efc3b1
Gerrit change https://git.eclipse.org/r/109732 was merged to [master]. Commit: http://git.eclipse.org/c/servertools/webtools.servertools.git/commit/?id=78436b76609d39c7c67bf0673fe533d3a7bb82c7