| | |
| | | public void onUninstall() { |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * You can also create Webapp plugins that register pages. |
| | | */ |
| | | public class ExampleWicketPlugin extends GitblitWicketPlugin { |
| | | @Override |
| | | public void start() { |
| | | } |
| | | |
| | | @Override |
| | | public void stop() { |
| | | } |
| | | |
| | | @Override |
| | | public void onInstall() { |
| | | } |
| | | |
| | | @Override |
| | | public void onUpgrade(Version oldVersion) { |
| | | } |
| | | |
| | | @Override |
| | | public void onUninstall() { |
| | | } |
| | | |
| | | @Override |
| | | protected void init(GitblitWicketApp app) { |
| | | app.mount("/logo", LogoPage.class); |
| | | app.mount("/hello", HelloWorldPage.class); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### SSH Dispatch Command |
| | |
| | | } |
| | | ``` |
| | | |
| | | ### Admin Menu Items |
| | | ### User Menu Items |
| | | |
| | | *SINCE 1.6.0* |
| | | |
| | | You can provide your own admin menu items by subclassing the *AdminMenuExtension* class. |
| | | You can provide your own user menu items by subclassing the *UserMenuExtension* class. |
| | | |
| | | ```java |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import ro.fortsoft.pf4j.Extension; |
| | | import com.gitblit.extensions.AdminMenuExtension; |
| | | import com.gitblit.extensions.UserMenuExtension; |
| | | import com.gitblit.models.Menu.ExternalLinkMenuItem; |
| | | import com.gitblit.models.Menu.MenuItem; |
| | | import com.gitblit.models.UserModel; |
| | | |
| | | @Extension |
| | | public class MyAdminMenuContributor extends AdminMenuExtension { |
| | | public class MyUserMenuContributor extends UserMenuExtension { |
| | | |
| | | @Override |
| | | public List<MenuItem> getMenuItems(UserModel user) { |
| | | return Arrays.asList((MenuItem) new ExternalLinkMenuItem("Github", String.format("https://github.com/%s", user.username)); |
| | | MenuItem item = new ExternalLinkMenuItem("Github", String.format("https://github.com/%s", user.username)); |
| | | return Arrays.asList(item); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### Navigation Links |
| | | |
| | | *SINCE 1.6.0* |
| | | |
| | | You can provide your own top-level navigation links by subclassing the *NavLinkExtension* class. |
| | | |
| | | ```java |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import ro.fortsoft.pf4j.Extension; |
| | | import com.gitblit.extensions.NavLinkExtension; |
| | | import com.gitblit.models.UserModel; |
| | | |
| | | @Extension |
| | | public class MyNavLink extends NavLinkExtension { |
| | | |
| | | @Override |
| | | public List<NavLink> getNavLinks(UserModel user) { |
| | | NavLink link = new ExternalLinkMenuItem("Github", String.format("https://github.com/%s", user.username)); |
| | | return Arrays.asList(link); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### Lifecycle Listener |
| | | |
| | | *SINCE 1.6.0* |
| | | |
| | | You can provide a lifecycle listener to be notified when Gitblit has completely started and just before Gitblit is gracefully terminated. |
| | | |
| | | ```java |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import ro.fortsoft.pf4j.Extension; |
| | | import com.gitblit.extensions.LifeCycleListener; |
| | | |
| | | @Extension |
| | | public class MyLifeCycleListener extends LifeCycleListener { |
| | | |
| | | final Logger log = LoggerFactory.getLogger(getClass()); |
| | | |
| | | @Override |
| | | public void onStartup() { |
| | | log.info("Gitblit is Ready!!"); |
| | | } |
| | | |
| | | @Override |
| | | public void onShutdown() { |
| | | log.info("Gitblit is Going Down!!"); |
| | | } |
| | | } |
| | | ``` |