| | |
| | | import com.gitblit.manager.IFederationManager; |
| | | import com.gitblit.manager.IPluginManager; |
| | | import com.gitblit.manager.IGitblit; |
| | | import ro.fortsoft.pf4j.Version; |
| | | |
| | | public class ExamplePlugin extends GitblitPlugin { |
| | | |
| | |
| | | IFederationManager federation = GitblitContext.getManager(IFederationManager.class); |
| | | IPluginManager plugins = GitblitContext.getManager(IPluginManager.class); |
| | | IGitblit gitblit = GitblitContext.getManager(IGitblit.class); |
| | | } |
| | | |
| | | @Override |
| | | public void stop() { |
| | | } |
| | | |
| | | @Override |
| | | public void onInstall() { |
| | | } |
| | | |
| | | @Override |
| | | public void onUpgrade(Version oldVersion) { |
| | | } |
| | | |
| | | @Override |
| | | public void onUninstall() { |
| | | } |
| | | } |
| | | ``` |
| | |
| | | public class MyDispatcher extends DispatchCommand { |
| | | |
| | | @Override |
| | | protected void setup(UserModel user) { |
| | | protected void setup() { |
| | | // commands in this dispatcher |
| | | register(user, CommandA.class); |
| | | register(user, CommandB.class); |
| | | register(CommandA.class); |
| | | register(CommandB.class); |
| | | |
| | | // nested dispatchers |
| | | register(user, SubDispatcher1.class); |
| | | register(user, SubDispatcher2.class); |
| | | register(SubDispatcher1.class); |
| | | register(SubDispatcher2.class); |
| | | } |
| | | |
| | | @CommandMetaData(name = "commanda", aliases = { "ca" }, description = "description of command a") |
| | |
| | | } |
| | | ``` |
| | | |
| | | ### Request Filter |
| | | |
| | | *SINCE 1.6.0* |
| | | |
| | | You can provide your own custom request filter by subclassing the *HttpRequestFilter* class. |
| | | |
| | | ```java |
| | | import com.gitblit.extensions.HttpRequestFilter; |
| | | import ro.fortsoft.pf4j.Extension; |
| | | |
| | | @Extension |
| | | public class MyRequestFilter extends HttpRequestFilter { |
| | | |
| | | @Override |
| | | public void doFilter(ServletRequest request, ServletResponse response, |
| | | FilterChain chain) throws IOException, ServletException { |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | ### Admin Menu Items |
| | | |
| | | *SINCE 1.6.0* |
| | | |
| | | You can provide your own admin menu items by subclassing the *AdminMenuExtension* class. |
| | | |
| | | ```java |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | import ro.fortsoft.pf4j.Extension; |
| | | import com.gitblit.extensions.AdminMenuExtension; |
| | | import com.gitblit.models.Menu.ExternalLinkMenuItem; |
| | | import com.gitblit.models.Menu.MenuItem; |
| | | import com.gitblit.models.UserModel; |
| | | |
| | | @Extension |
| | | public class MyAdminMenuContributor extends AdminMenuExtension { |
| | | |
| | | @Override |
| | | public List<MenuItem> getMenuItems(UserModel user) { |
| | | return Arrays.asList((MenuItem) new ExternalLinkMenuItem("Github", String.format("https://github.com/%s", user.username)); |
| | | } |
| | | } |
| | | ``` |
| | | |
| | | |