support atomic publish operation
--------------------------------
Key: IVY-492
URL: https://issues.apache.org/jira/browse/IVY-492
Project: Ivy
Issue Type: New Feature
Components: Core
Reporter: Geoff Reedy
Some resolver types (e.g. one that uses subversion) could benefit from
publishing a module as a single atomic transaction. Currently, each artifact
(and it's checksums) are published as separate operations, if one of the
artifact uploads fail (perhaps an artifact is missing or another user is trying
to publish the same version at the same time) the ivy repository can be in an
inconsistent state with a half published module. In addition, if uploads are
logged many entries in the log are generated for a single logical operation.
A possible implementation strategy is to add three new methods to the resolver
interface:
beginPublish(ModuleRevisionId)
abortPublish()
commitPublish()
beginPublish would be called before publishing the artifacts of the module,
abortPublish would be called if there is an error while publishing the module,
commitPublish would be called if all artifacts were successfully published.
Existing resolvers could simple implement these methods as no-ops to retain the
present behavior.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.