# Sparkplug Development Guide

### What Are Sparkplugs?

Sparkplugs dynamically extend the features of the Spark instant messaging client. Use Sparkplugs to customize Spark for your business or organization or to add an innovative twist to instant messaging. The extensive plugin API allows for complete client flexibility but is still simple and (we hope!) fun to use.

### Before compiling the Plugin

In order to compile the ExamplePlugin you will need to checkout the Spark-Trunk and compile Spark.

1. checkout spark (svn checkout http://svn.igniterealtime.org/svn/repos/spark/trunk [DIRECTORY])
2. compile spark (ant -f [DIRECTORY]/trunk/build/build.xml release)

### How to build a SparkPlug

You will find an example plugin located in the trunk of the Spark-Repository.
> [DIRECTORY]/build/builder/
It already has the basic steps implemented to get the Plugin loaded and have an own menu entry within the Spark Preferences
to compile it open a terminal (or your JAVA IDE) and execute the build.xml with target <jar>
Windows Command Line

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\>cd [DIRECTORY]/build/builder/build
    C:[DIRECTORY]/build/builder/build>ant jar

    Buildfile: [DIRECTORY]\build\builder\build\build.xml
    clean:
       [delete] Deleting: [DIRECTORY]\build\builder\target\lib\plugin-classes.jar
       [delete] Deleting directory [DIRECTORY]\build\builder\build\classes
       [delete] Deleting directory [DIRECTORY]\build\builder\target
    compile:
         [echo] [DIRECTORY]\build\builder/./../../target/build/lib
        [mkdir] Created dir: [DIRECTORY]\build\builder\build\classes
        [javac] Compiling 2 source files to [DIRECTORY]\build\builder\build\classes
    jar:
        [mkdir] Created dir: [DIRECTORY]\build\builder\target
        [mkdir] Created dir: [DIRECTORY]\build\builder\target\lib
         [copy] Copying 1 file to [DIRECTORY]\build\builder\target
          [jar] Building jar: [DIRECTORY]\build\builder\target\lib\plugin-classes.jar
          [zip] Building zip: [DIRECTORY]\build\builder\myplugin.jar
    BUILD SUCCESSFUL
    Total time: 702 milliseconds

[Directory] refers to the Path on your hard drive where your spark-trunk directory is located
e.g.: C:/spark/