This page last changed on Dec 02, 2008 by smaddox.

On this page:

Error formatting macro: toc: java.lang.NullPointerException

Purpose of this Module Type

Servlet Context Listener plugin modules allow you to deploy Java Servlet context listeners as a part of your plugin. This helps you to integrate easily with frameworks that use context listeners for initialisation.

Configuration

The root element for the Servlet Context Listener plugin module is servlet-context-listener. It allows the following attributes and child elements for configuration:

Attributes

Name Required Description Default
class   The class which implements this plugin module. The class you need to provide depends on the module type. For example, Confluence theme, layout and colour-scheme modules can use classes already provided in Confluence. So you can write a theme-plugin without any Java code. But for macro and listener modules you need to write your own implementing class and include it in your plugin. The servlet context listener Java class. Must implement javax.servlet.ServletContextListener.  
disabled   Indicate whether the plugin module should be disabled by default (value='true') or enabled by default (value='false'). false
i18n-name-key   The localisation key for the human-readable name of the plugin module.  
key The identifier of the plugin module. This key must be unique within the plugin where it is defined.
Sometimes you will need to uniquely identify a module. Do this with the module complete key. A module with key fred in a plugin with key com.example.modules will have a complete key of com.example.modules:fred. I.e. the identifier of the context listener.
N/A
name   The human-readable name of the plugin module. I.e. the human-readable name of the listener. The plugin key
singleton   Indicates whether this plugin module should only have one instance of its class (value='true') or may have more than one instance (value='false').
Support for this attribute varies between applications (JIRA, Confluence, etc).
false
system   Indicates whether this plugin module is a system plugin module (value='true') or not (value='false'). false

Elements

Name Required Description Default
description   The description of the plugin module. The 'key' attribute can be specified to declare a localisation key for the value instead of text in the element body. I.e. the description of the listener.  
param   Parameters for the plugin module. Use the 'key' attribute to declare the parameter key, then specify the value in either the 'value' attribute or the element body. This element may be repeated. An example is the configuration link described in Adding a Configuration UI for your Plugin. N/A
resource   A resource for this plugin module. This element may be repeated. A 'resource' is a non-Java file that a plugin may need in order to operate. Refer to Adding Plugin and Module Resources for details on defining a resource. N/A

Example

Here is an example atlassian-plugin.xml file containing a single servlet context listener:

<atlassian-plugin name="Hello World Listener" key="example.plugin.helloworld" pluginsVersion="2">
    <plugin-info>
        <description>A basic Servlet context listener module test - says "Hello World!"</description>
        <vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
        <version>1.0</version>
    </plugin-info>

    <servlet-context-listener name="Hello World Listener" key="helloWorld" class="com.example.myplugins.helloworld.HelloWorldListener">
        <description>Initialises the Hello World plugin.</description>
    </servlet-context-listener>
</atlassian-plugin>

Notes

Some information to be aware of when developing or configuring a Servlet Context Listener plugin module:

  • The servlet context you listen for will not be created on web application startup. Instead, it will be created the first time a servlet or filter in your plugin is accessed after each time it is enabled, triggering a new instance of your listener followed by the calling of the listener's contextCreated() method. This means that if you disable a plugin containing a listener and re-enable it again, the following will happen:
    1. The contextDestroyed() method will be called on your listener after the plugin was disabled.
    2. A new servlet context will be created after the plugin was re-enabled.
    3. Your listener will be instantiated.
    4. The method contextCreated() on your listener will be called.
RELATED TOPICS

Writing Confluence Plugins
Installing and Configuring Plugins Manually

Document generated by Confluence on Dec 03, 2008 15:14