From a502d96a860456ec5e8c96761db70f7cabb74751 Mon Sep 17 00:00:00 2001
From: Paul Martin <paul@paulsputer.com>
Date: Sat, 30 Apr 2016 04:19:14 -0400
Subject: [PATCH] Merge pull request #1073 from gitblit/1062-DocEditorUpdates

---
 src/main/java/com/gitblit/extensions/GitblitPlugin.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/gitblit/extensions/GitblitPlugin.java b/src/main/java/com/gitblit/extensions/GitblitPlugin.java
index 129f584..d0603eb 100644
--- a/src/main/java/com/gitblit/extensions/GitblitPlugin.java
+++ b/src/main/java/com/gitblit/extensions/GitblitPlugin.java
@@ -17,11 +17,45 @@
 
 import ro.fortsoft.pf4j.Plugin;
 import ro.fortsoft.pf4j.PluginWrapper;
+import ro.fortsoft.pf4j.Version;
 
+/**
+ * Parent class of Gitblit plugins.
+ *
+ * @author James Moger
+ * @since 1.5.0
+ */
 public abstract class GitblitPlugin extends Plugin {
 
 	public GitblitPlugin(PluginWrapper wrapper) {
 		super(wrapper);
 	}
 
+	/**
+	 * Called after a plugin as been loaded but before it is started for the
+	 * first time.  This allows the plugin to install settings or perform any
+	 * other required first-time initialization.
+	 *
+	 * @since 1.5.0
+	 */
+	public abstract void onInstall();
+
+	/**
+	 * Called after an updated plugin has been installed but before the updated
+	 * plugin is started.  The oldVersion is passed as a parameter in the event
+	 * that special processing needs to be executed.
+	 *
+	 * @param oldVersion
+	 * @since 1.5.0
+	 */
+	public abstract void onUpgrade(Version oldVersion);
+
+	/**
+	 * Called before a plugin has been unloaded and deleted from the system.
+	 * This allows a plugin to remove any settings it may have created or
+	 * perform and other necessary cleanup.
+	 *
+	 * @since 1.5.0
+	 */
+	public abstract void onUninstall();
 }

--
Gitblit v1.9.1