summaryrefslogtreecommitdiffstats
path: root/config-provisioning
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@yahoo-inc.com>2016-07-06 14:32:42 +0200
committerJon Bratseth <bratseth@yahoo-inc.com>2016-07-06 14:32:42 +0200
commit5bb63fcb4013d0c8d9e6ae93e0c76ce0bfaf11e7 (patch)
treef3a1db7db7c4bcda82a096baf3e8cb334015b4a1 /config-provisioning
parente1ff21d131360952d57db9498d8fd0962aee9c95 (diff)
Make application remove transactional
Diffstat (limited to 'config-provisioning')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java21
1 files changed, 19 insertions, 2 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
index 0ec00d965b2..bf8773858a2 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Provisioner.java
@@ -39,8 +39,25 @@ public interface Provisioner {
* Notifies provisioner that an application has been removed.
*
* @param application The {@link ApplicationId} that was removed.
- */
- void removed(ApplicationId application);
+ * @deprecated use remove(transaction, application) instead
+ */
+ @Deprecated
+ default void removed(ApplicationId application) {
+ throw new IllegalStateException("Unexpected use of deprecated method");
+ }
+
+ /**
+ * Transactionally remove this application.
+ * This default implementation delegates to removed(application), i.e performs the removal non-transactional.
+ *
+ * @param application
+ */
+ // TODO: Remove the default implementation in this when
+ // no applications are on a version before 5.17
+ @SuppressWarnings("deprecation")
+ default void remove(NestedTransaction transaction, ApplicationId application) {
+ removed(application);
+ }
/**
* Requests a restart of the services of the given application