This page contains the basic information to guide plugin developers in coding and building a plugin for FishEye. There is also Crucible documentation on this topic, if you wish to also access Crucible with your plugin.
FishEye uses the standard Atlassian Plugins framework, so many of the tasks involved in developing a plugin for FishEye are the same as for other Atlassian products.
The differences are:
- The set of plugin types available.
- The API available for plugins to interact with the FishEye application.
Building a FishEye Plugin
The simplest way to build a FishEye plugin is via Maven.
Atlassian provides an Archetype for Fisheye/Crucible plugins.
You can create a Maven 2 project containing a sample Servlet Plugin Module with the following command:
mvn org.apache.maven.plugins:maven-archetype-plugin:1.0-alpha-7:create \ -DarchetypeGroupId=com.atlassian.maven.archetypes \ -DarchetypeArtifactId=crucible-plugin-archetype \ -DarchetypeVersion=1-SNAPSHOT \ -DremoteRepositories=https://maven.atlassian.com/repository/public/ \ -DgroupId=com.foo -DartifactId=foo-crucible-plugin
This will create your project in a subdirectory of your current directory named
foo-crucible-plugin. Change into that directory (
cd foo-crucible-plugin). You can create the plugin jar with the command
mvn package, and install it in a running Fisheye or Crucible instance by copying
target/foo-crucible-plugin-1.0-SNAPSHOT.jar to the
var/plugins/user directory of your Fisheye/Crucible instance.
FishEye Plugin Module Types
FishEye supports several different kinds of plugin modules, listed below.
FishEye Web Items
Web UI plugin modules allow you to add links, tabs and sections of links to the Fisheye user interface. See FishEye Web Items for more details.
Servlet Plugin Modules
Create a servlet which is deployed to the same web application context as Fisheye/Crucible. See Servlet Plugin Modules for more details.
Spring Component Plugin Modules
The FishEye API
Your plugin will need to use The FishEye Remote API to retrieve data from FishEye and to perform operations on it, such as retrieving a changeset.
Debugging your plugin
You can start FishEye in debug mode with the environment variable setting:
export FISHEYE_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
This allows you to connect your IDE to the debugger listening on port 5005.
Source Code Links
See the following pages for code from example plugins: