Added by Garnet R. Chaney, last edited by Garnet R. Chaney on Apr 21, 2007  (view change)

Labels:

plugin plugin Delete
wiki wiki Delete
macro macro Delete
confluence confluence Delete
implementation implementation Delete
Enter labels to add to this page:
Wait Image 
Looking for a label? Just start typing.

There are various ways to implement the projects described in this project. They are documented at the Confluence Development Hub.

Here is an overview of the variety of ways to implment new features.

List of Implementation Methods

Macros

These allow users to simply add small features that extend the page rendering functionality of Confluence. These can be as simple as a short macro that emits

<img src...>

html to link to an emoticon, to a more complicated macro with conditions that creates edit buttons with optional labels.

Examples of features developed using user macros:

Plugins

Plugins interact with Confluence on a deeper level to extend it's functionality. They can hook into various event notifications within Confluence. They are written and installed as jar files. Confluence Module Types documents the various kinds of plugins.

Types of events:

  • ClusterEventWrapper
    **
  • ClusterPanicEvent
    **
  • ConfigurationEvent
    **
  • ConfigurationMigrationEvent
    **
  • ConfluenceReadyEvent
    **
  • ContentEvent
    • AttachmentEvent
    • BlogPostEvent
    • CommentEvent
    • MailEvent
    • PageEvent
      • PageCreateEvent, PageRemoveEvent, PageRestoreEvent, PageTrashedEvent, PageUpdateEvent, PageViewEvent
    • PersonalInformationEvent
  • GroupEvent
    • GroupCreateEvent, GroupRemoveEvent
  • ImportFinishedEvent
  • LabelEvent
    • LabelCreateEvent On the creation of the first label to the target Content Entity Object.
    • LabelRemoveEvent On the removal of the last label from the target Content Entity Object.
    • LabelAddEvent On the addition of any label to the target Content Entity Object.
    • LabelDeleteEvent On the deletion of any label from the target Content Entity Object.
  • LookAndFeelEvent
    • ColourSchemeChangedEvent, ThemeChangedEvent
  • ReindexEvent
    • ReindexFinishedEvent, ReindexStartedEvent
  • SearchEvent
    • SearchPerformedEvent
  • SecurityEvent
    • LoginEvent, LoginFailedEvent, LogoutEvent
  • SpaceEvent
    • SpaceConvertEvent, SpaceCreateEvent, SpaceRemoveEvent, SpaceUpdateEvent
  • TemplateEvent
    • TemplateRemoveEvent, TemplateUpdateEvent
  • UserEvent
    • UserCreateEvent, UserDeactivateEvent, UserReactivateEvent, UserRemoveEvent

Changes To Confluence Codebase

These are possibly the most difficult to maintain. Since they involve the Confluence codebase, they'd have to be recompiled on each
new version of Confluence. Many Confluence installations may not be prepared to recompile the Confluence sources, or to merge various changes.
Plus there is chance of destabilizing Confluence, and making it more difficult to get support.

Filters

Filters are a method of externally manipulating the operation of Confluence. Since they are external, they may depend on the operating environment that Confluence is running in.

Examples of filters I have already successfully developed for my clients:

  • IIS filtering layer that protects Confluence by limiting rapid access to the Confluence
  • IIS filtering later to allow user and script limited access to the Confluence API

External programs

External programs can communicate with Confluence through it's remote API. This external API allows programs to edit pages, create and modify users, create spaces, and other operations. It may not implement all the features available from the user interface of Confluence, for example, page permission restrictions.

This approach can be an especially good solution for clients that want to avoid modifying the stock distribution of Confluence.

Examples of external programs that I have successfully developed to interact with Confluence:

  • watchdog automatic restart for Confluence under Windows.
  • Windows utility to allow for command line, or GUI based, creation of new users
  • XML site description based wiki space creator that enforces creation of certain "meta-info" pages for each space, and auto maintains a table of wiki spaces, creation dates, owners and admins, as well as emailing new space owners, their admins, and management, upon creation of each space.
  • Twiki to Confluence converter which completely handles recreating all attachments, revision histories, and wiki markup conversions. Used to port an 80,000 page twiki to Confluence.

Confluence Development Environment Setup

Profit from Penny Stocks. Learn from a millionaire who shares everything! Learn from Timothy Sykes.