2.3 Packaging an Extension

After you create an extension as described in Section 2.2, 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 Section 2.3.1, Examples of the Archive Format.

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

Table 2-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

2.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

2.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>