David Ostrovsky
2014-03-09 84f406bfd20ec2076cf7616e7f396ad480513bc4
refs
author David Ostrovsky <david@ostrovsky.org>
Sunday, March 9, 2014 20:50 -0400
committer James Moger <james.moger@gitblit.com>
Thursday, April 10, 2014 18:58 -0400
commit84f406bfd20ec2076cf7616e7f396ad480513bc4
tree 661045f193871d676c1c06b996b831469cfc067c tree | zip | gz
parent 261ddf0fcf9a55fbb5b4e7c6c2cdb4c2f8c860fe view | diff
Add plugins/extension infrastructure

Plugins are stored in `${baseFolder}/plugins` and are loaded
during startup by the PluginManager.

A plugin defines it's metadata in META-INF/MANIFEST.MF:

Plugin-Class: com.gitblit.plugins.cookbook.CookbookPlugin
Plugin-Dependencies: foo, bar
Plugin-Id: gitblit-plugin
Plugin-Provider: John Doe
Plugin-Version: 1.0

Plugins can define extension points that can be implemented
by other plugins and they can depend on other plugins:

Plugin-Dependencies: foo, bar

During the load phase, a directed acyclic graph is built and the loading
order of the dependency chain is reversed using a topological sort;
parent followed by children. The parent plugin classloader is the
combined classloader of all parent plugins.

Change-Id: I738821fa2bff02a5dbe339a944cc7e3c4dd8e299
2 files added
13 files modified
167 ■■■■■ changed files
.classpath 1 ●●●● diff | view | raw | blame | history
build.moxie 1 ●●●● diff | view | raw | blame | history
gitblit.iml 11 ●●●●● diff | view | raw | blame | history
src/main/distrib/data/gitblit.properties 8 ●●●●● diff | view | raw | blame | history
src/main/java/WEB-INF/web.xml 3 ●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/DaggerModule.java 13 ●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/FederationClient.java 2 ●●● diff | view | raw | blame | history
src/main/java/com/gitblit/GitBlit.java 7 ●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/dagger/DaggerFilter.java 2 ●●● diff | view | raw | blame | history
src/main/java/com/gitblit/manager/GitblitManager.java 18 ●●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/manager/IGitblit.java 3 ●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/manager/IPluginManager.java 39 ●●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/manager/PluginManager.java 56 ●●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/servlet/GitblitContext.java 2 ●●●●● diff | view | raw | blame | history
src/main/java/com/gitblit/servlet/SyndicationFilter.java 1 ●●●● diff | view | raw | blame | history