"Delivery" vs "Delivery and Resolve Work Item"
By default RTC provides these two options to deliver changeset to the stream.
Thanks.
- Deliver
- Deliver and Resolve Work Item
Assume there is two extension plugins associated with these two actions being triggered (I may be wrong) My question is:
- does these two actions implement as into two separate extension plugins? if yes do they declare its own extension point such that they could be extended by additional extension plugin?
- does these two actions extend the same extension point: com.ibm.team.scm.server.deliver
3 answers
I'm not sure what you want to do here. The actions are implemented by separate plugins due to the way we separate the dependencies on other components. The underlying operation is different for each action except that the deliver and resolve operation creates a deliver operation to perform the deliver part.
If you're referring to com.ibm.team.scm.server.deliver, I'm not sure what you mean. There is a permission id by that name and the permission to deliver is checked with both actions.
If you're referring to com.ibm.team.scm.server.deliver, I'm not sure what you mean. There is a permission id by that name and the permission to deliver is checked with both actions.
Comments
I'll make a few assumptions.
First, I assume you are asking about the behavior of the "deliver and resolve work item" request (and not the "deliver" request).
Second, I assume by "extension plug-in associated with an action", you are referring to something like a precondition or follow-up action associated with an action.
Third, I assume when you say "two extension plug-ins associated with these two actions", you mean one extension associated with the "deliver" action (e.g. a deliver precondition) and another that is associated with the "resolve work item" action (e.g. a save work item precondition).
This is my understanding of how it works.
The "deliver and resolve work item" effectively invokes two actions: the deliver action and an edit/save action on the work item. All extensions of the deliver action and all extensions of the edit/save action will be invoked when you perform a "deliver and resolve work item". I did a quick test, and it appears to invoke all of the pre-conditions before invoking the actions (as one would expect), since if either a deliver precondition or a save-work-item precondition fails, then neither the deliver or the resolve-work-item actions are performed. But I haven't had a chance to experiment with the follow-up actions. Ideally, I'd like all actions and their follow-up actions to be performed in one database transaction, so if any of the actions or follow-up actions fail, then no changes are made to the database. But it is possible that what is actually done is that each action with its follow-up actions are performed in a separate transaction. If that is the case, then the question is what is done when one of the follow-up actions fails ... are the rest of the actions skipped, or are they attempted? Does anyone know which is the case?
First, I assume you are asking about the behavior of the "deliver and resolve work item" request (and not the "deliver" request).
Second, I assume by "extension plug-in associated with an action", you are referring to something like a precondition or follow-up action associated with an action.
Third, I assume when you say "two extension plug-ins associated with these two actions", you mean one extension associated with the "deliver" action (e.g. a deliver precondition) and another that is associated with the "resolve work item" action (e.g. a save work item precondition).
This is my understanding of how it works.
The "deliver and resolve work item" effectively invokes two actions: the deliver action and an edit/save action on the work item. All extensions of the deliver action and all extensions of the edit/save action will be invoked when you perform a "deliver and resolve work item". I did a quick test, and it appears to invoke all of the pre-conditions before invoking the actions (as one would expect), since if either a deliver precondition or a save-work-item precondition fails, then neither the deliver or the resolve-work-item actions are performed. But I haven't had a chance to experiment with the follow-up actions. Ideally, I'd like all actions and their follow-up actions to be performed in one database transaction, so if any of the actions or follow-up actions fail, then no changes are made to the database. But it is possible that what is actually done is that each action with its follow-up actions are performed in a separate transaction. If that is the case, then the question is what is done when one of the follow-up actions fails ... are the rest of the actions skipped, or are they attempted? Does anyone know which is the case?
we had an issue here too, the resolve action puts it into the closed group resolved state.
our next workflow state was not 'resolved', but 'implemented' with verified and resolved after that.
our next workflow state was not 'resolved', but 'implemented' with verified and resolved after that.