4.3 Packaging an Extension

After you create an extension as described in Creating an Extension, you must package the extension before it can be deployed on the Vibe site.

  1. Create a ZIP file that contains all of the files needed for your extension.

    The ZIP file should have a relative directory structure that mirrors the layout of the teaming/tomcat/webapps/ssf directory found in your Vibe installation.

    For examples of how the extension directory structure should look, see Examples of the Archive Format.

    Table 4-1 lists key files and their appropriate locations in this directory structure.

Table 4-1 File Locations for Vibe Extensions

File Type

Location

Web-visible resources, such as graphics, static html pages, js files, and css files.

tomcat/webapps/ssf

You can create additional folders inside the ssf directory. For example, you might want to create a js directory where you can place all your javascript files.

Templates

WEB-INF/classes/config/templates

Definitions

WEB-INF/classes/config/definitions

jsp

WEB-INF/jsp

jar

WEB-INF/lib

4.3.1 Examples of the Archive Format

Your ZIP file should be structured in the Archive format. This section provides two examples of the archive format. Archive: VideoEntry.zip includes externally referenced files in the swf/, img/, and js/ directories. Archive: twitter.zip references only those files that are located within the WEB-INF directory.

Archive: VideoEntry.zip

install.xml
js/
js/flashembed.min.js
swf/
swf/FlowPlayerClassic.swf
swf/FlowPlayerLight.swf
swf/FlowPlayerLP.swf
swf/FlowPlayerDark.swf
WEB-INF/
WEB-INF/classes/
WEB-INF/classes/config/
WEB-INF/classes/config/definitions/
WEB-INF/classes/config/definitions/VideoEntry.xml
WEB-INF/classes/config/definitions/VideoFolder.xml
WEB-INF/classes/config/templates/
WEB-INF/classes/config/templates/Video Folder Template.xml
WEB-INF/jsp/
WEB-INF/jsp/view.jsp
img/
img/no-flash.png
img/no-flash.svg

Archive: twitter.zip

install.xml
WEB-INF/
WEB-INF/classes/
WEB-INF/classes/config/
WEB-INF/classes/config/definitions/
WEB-INF/classes/config/definitions/_user.xml
WEB-INF/classes/config/definitions/pubToTwitter.xml
WEB-INF/src/
WEB-INF/src/TwitterWorkflowAction.java
WEB-INF/lib/
WEB-INF/lib/TwitterExtension.jar
WEB-INF/lib/commons-httpclient-3.1.jar
WEB-INF/lib/twitter4j-2.0.8.jar
WEB-INF/jsp/
WEB-INF/jsp/password.jsp

4.3.2 Extension Metadata

The install.xml file should contain the following information:

<?xml version="1.0" encoding="utf-8"?>
<extension version="1.0" >
<title>Twitter Extension</title>
<author>Author's Name</author>
<creationDate>August 27 2009</creationDate>
<license>http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL</license>
<authorEmail>nbjensen@novell.com</authorEmail>
<authorUrl>www.mysite.com</authorUrl>
<description>This Plugin is a sample.</description>
<usage>Instructions on how to use this extension.</usage>
</extension>