<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:opensearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>Jivespace : Document List - Developers</title>
    <link>http://www.jivesoftware.com/jivespace/community/developer?view=documents</link>
    <description>Latest Documents in Developers</description>
    <language>en</language>
    <pubDate>Tue, 10 Nov 2009 21:34:40 GMT</pubDate>
    <generator>Jive SBS 3.0.8 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2009-11-10T21:34:40Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Jive SBS Maven Archetypes</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-8933</link>
      <description>&lt;!-- [DocumentBodyStart:bb66c8a2-d428-467f-92ef-7b7105d46c61] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;h4&gt;This document will describe in detail the Jive SBS Maven archetypes, covering both their structure and build processes.&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;Version: 4.0.x-SNAPSHOT&lt;/h1&gt;&lt;p&gt;The &lt;strong&gt;4.0.x-SNAPSHOT&lt;/strong&gt; version of the SBS Maven archetypes includes two separate archetypes:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;maven-sbs-archetype: intended for WAR overlay projects&lt;br/&gt;&lt;/li&gt;&lt;li&gt;maven-sbs-plugin-archetype: for use with SBS plugin projects&lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Each archetype can be used independently of the other.&amp;#160; However, plugin projects are generally created within the context of a WAR overlay project.&amp;#160; The following sections will describe each archetype in detail.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Archetype: maven-sbs-archetype&lt;/h2&gt;&lt;p&gt;The WAR overlay archetype is generally used in a Jive SBS customized implementation when plugins will not suffice.&amp;#160; The general idea is that changes within this project are compressed into a WAR, along with the core SBS code, to create a custom SBS instance.&amp;#160; While a plugin is the preferred method of customizing your SBS instance, in extreme cases an overlay is acceptable.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Archetype Structure&lt;/h3&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-8933-1-23625/Screen+shot+2009-11-09+at+8.24.38+AM.png"&gt;&lt;img alt="Screen shot 2009-11-09 at 8.24.38 AM.png" class="jive-image" height="681" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-8933-1-23625/575-681/Screen+shot+2009-11-09+at+8.24.38+AM.png" width="575"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;In addition to the standard Maven &lt;strong&gt;src&lt;/strong&gt; folder, the archetype contains a single sub-project, &lt;strong&gt;web&lt;/strong&gt;.&amp;#160; The root project's structure contains mainly test resources that allow the local instance to run properly, while the &lt;strong&gt;web&lt;/strong&gt; project houses the customized pieces of the project.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;src/test/resources/jiveHome&lt;/h4&gt;&lt;p&gt;This is the jiveHome directory that is used by default by the overlay instance.&amp;#160; When the project is built at the root level, the jiveHome directory is copied directly to the root &lt;strong&gt;target&lt;/strong&gt; folder, replacing whatever was there before.&amp;#160; Because of this, save for your initial build,it's probably best not to do your builds from the root level, but at the individual sub-project levels instead.&amp;#160; The initial contents of the folder consists only of:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;jive_startup.xml&lt;/strong&gt;: Contains server startup settings, such as database and log info.&amp;#160; The initial database name listed is directly affected by the name of the project being generated with the archetype.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;jive.license&lt;/strong&gt;: A standard development license.&amp;#160; Non-expiring, including all optional modules (except Insights), and limited to 15 users.&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;web/src/main/etc&lt;/h4&gt;&lt;p&gt;Commonly referred to the &lt;strong&gt;ETC Escape Hatch&lt;/strong&gt;, the &lt;strong&gt;etc&lt;/strong&gt; folder is where any Spring XML files are placed.&amp;#160; Jive SBS loads these XML files last when initializing the Spring application context, so any beans defined therein will take precedence over any defined within the core SBS Spring XML files.&amp;#160; This gives developers the ability to override any Spring beans defined within SBS, as well as add new ones, as needed.&amp;#160; When the &lt;strong&gt;web&lt;/strong&gt; project is built, this directory's contents are copied to the root &lt;strong&gt;target/jiveHome/etc&lt;/strong&gt;.&amp;#160; Although only one file, &lt;strong&gt;spring-etc.xml&lt;/strong&gt;, is included by default, multiple Spring XML files can be included in this directory, if the developer wishes to ruther compartmentalize any custom Spring beans.&lt;/p&gt;&lt;h4&gt;web/src/main/java&lt;/h4&gt;&lt;p&gt;This is where your custom Java classes will live.&amp;#160; The package structure used here is up to the developer, and should reflect the current project.&amp;#160; However, if an overlay of a core SBS class is needed, the developer will need to create the exact package structure in which the class to be overlaid lives, and the core Java class copied and modified as needed.&amp;#160; At build time, the core Jive SBS WAR file is exploded, and the contents of the &lt;strong&gt;web/src/main/java&lt;/strong&gt; folder are copied to the exploded WAR's &lt;strong&gt;WEB-INF/classes&lt;/strong&gt; directory, and thusly take precedence over any classes defined in JAR files contained within the WAR's &lt;strong&gt;lib&lt;/strong&gt; directory.&amp;#160; A placeholder class, &lt;strong&gt;App.java&lt;/strong&gt;, is included here by default, but can be deleted when development work starts.&lt;/p&gt;&lt;h4&gt;web/src/main/keys&lt;/h4&gt;&lt;p&gt;Any public/private encryption key certifications needed by the customization go here.&amp;#160; At build time, contents of this folder are copied to the root &lt;strong&gt;target/jiveHome/keys&lt;/strong&gt; directory to make them available to the development instance.&lt;/p&gt;&lt;h4&gt;web/src/main/overlay&lt;/h4&gt;&lt;p&gt;Certain overlaid resources cannot just be placed within the WAR's &lt;strong&gt;WEB-INF/classes&lt;/strong&gt; directory for the customization to take effect.&amp;#160; Resources like Javascript files and Widget properties files need to actually replace the original artifacts in the SBS JAR file, and placed back into the WAR.&amp;#160; By default, this is disabled in the web &lt;strong&gt;pom.xml&lt;/strong&gt; for build performance reasons, but can be enabled by uncommenting the &lt;strong&gt;&lt;em&gt;package-sbs-plugin&lt;/em&gt;&lt;/strong&gt; execution element in the &lt;em&gt;&lt;strong&gt;maven-antrun-plugin &lt;/strong&gt;&lt;/em&gt;section in the pom.&lt;/p&gt;&lt;h4&gt;web/src/main/overlay/beans&lt;/h4&gt;&lt;p&gt;Overlaid widget properties files are placed here.&amp;#160; Generally, this is needed when adding, removing, or modifying the configurable properties available within a core SBS widget.&lt;/p&gt;&lt;h4&gt;web/src/main/overlay/resources/scripts&lt;/h4&gt;&lt;p&gt;Any overlaid Javascript resources will live here.&amp;#160; In previous versions of the archetype, overlaid Javascript files needed to be accompanied by a compressed version of the file, but now that processing is done automatically by the build.&lt;/p&gt;&lt;h4&gt;web/src/main/resources-filtered&lt;/h4&gt;&lt;p&gt;The contents of this folder are filtered at build time, and the parameterized sections of the files contained within are populated with values, such as build number, project name, etc.&amp;#160; The &lt;strong&gt;version.properties&lt;/strong&gt; file is accessed by the &lt;strong&gt;web/src/main/webapp/customer_version.jsp&lt;/strong&gt; to provide information about the build number for a deployed instance.&lt;/p&gt;&lt;h4&gt;web/src/main/themes&lt;/h4&gt;&lt;p&gt;This is where custom themes go.&amp;#160; The provided &lt;strong&gt;theme.xml&lt;/strong&gt; file is initially populated with a theme name reflecting the name of the project.&amp;#160; This file should be copied into the theme's main folder (&lt;strong&gt;web/src/main/theme/mytheme&lt;/strong&gt;) in order to be visible to the app.&amp;#160; It is merely placed in this folder as a placeholder.&lt;/p&gt;&lt;h4&gt;web/src/main/webapp&lt;/h4&gt;&lt;p&gt;The &lt;strong&gt;webapp&lt;/strong&gt; folder contains artifact that are to be placed within the exploded WAR file directory.&amp;#160; The archetype provides the &lt;strong&gt;customer_version.jsp&lt;/strong&gt; and a &lt;strong&gt;WEB-INF &lt;/strong&gt;folder to house WAR customizations.&lt;/p&gt;&lt;h4&gt;web/src/main/webapp/WEB-INF/classes&lt;/h4&gt;&lt;p&gt;A series of files meant to provide a custom configuration to an SBS overlay instance go here.&amp;#160; Specifically:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;jive_custom_i18n_en.properties&lt;/strong&gt;: Override existing resource bundle values, and add new mappings here.&amp;#160; This file is created by default.&amp;#160; Should the project require other languages, the developer will need to create the appropriate file variations (jive_custom_i18n_es.properties, etc.).&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;struts-community-custom.xml&lt;/strong&gt;: Override core Struts actions here.&amp;#160; New actions can be added, as well.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;ui-components-custom.xml&lt;/strong&gt;: Additions, deletions of certain UI components are done here.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;upgrade-custom.xml&lt;/strong&gt;: Custom upgrade tasks are defined here.&amp;#160; &lt;br/&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;web/src/main/webapp/WEB-INF/classes/template&lt;/h4&gt;&lt;p&gt;Add your custom Freemarker templates here.&amp;#160; Generally, if your change is look and feel-related, it will go in a theme.&amp;#160; However, if the change needs to exist outside the context of a theme, such as in a major page structure/logic change, it will need to go here, in the same directory structure as the FTL being overlaid.&amp;#160; Any overlaid Freemarker templates defined here will take precedence over any matching files within the core WAR file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Archetype Build&lt;/h3&gt;&lt;p&gt;The build behavior is all contained within the &lt;strong&gt;web/pom.xml&lt;/strong&gt; file.&amp;#160; This section will walk through each section of the pom, explaining them in detail.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:6a1f67b7-dd8c-4173-9612-7aa568637020]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&lt;span&gt;&amp;lt;project xmlns="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/POM/4.0.0" target="_blank"&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&lt;span&gt;"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xmlns:xsi="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.w3.org/2001/XMLSchema-instance" target="_blank"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&lt;span&gt;"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xsi:schemaLocation="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/POM/4.0.0" target="_blank"&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&lt;span&gt; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/maven-v4_0_0.xsd" target="_blank"&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&lt;span&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;weboverlay&lt;span class="jive-xml-tag"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;modelVersion&amp;gt;&lt;/span&gt;4.0.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/modelVersion&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;${groupId}&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;web&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;packaging&amp;gt;&lt;/span&gt;war&lt;span class="jive-xml-tag"&gt;&amp;lt;/packaging&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${version}&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;description&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Custom Jive SBS war. We try to only place files in this project that MUST be overlayed.
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Usually this means there is no way to make the change as a plugin.&amp;#160; Most customizations can be done by plugin these days, and there
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; are many advantages to doing so in terms of packaging, deployment, upgradability and debugging. 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Overlaying a file ensures that you will have to put forth at least some development effort when you want to upgrade versions
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; of Jive SBS.&amp;#160; 
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/description&amp;gt;&lt;/span&gt;

&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;parent&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;${groupId}&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;${artifactId}&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${version}&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;relativePath&amp;gt;&lt;/span&gt;../pom.xml&lt;span class="jive-xml-tag"&gt;&amp;lt;/relativePath&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/parent&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:6a1f67b7-dd8c-4173-9612-7aa568637020]--&gt;&lt;p&gt;This is the standard pom fare, defining the name, packaging, version, parentage of the project.&amp;#160; The parameterized values are populated by the archetypes generation process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:20aed3f6-7eeb-4654-bf5e-792b8f0f6ff4]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;build&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;finalName&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ${customer.name}-${customer.version}-sbs-${sbs.version}
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/finalName&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;resources&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;directory&amp;gt;&lt;/span&gt;\${basedir}/src/main/resources-filtered&lt;span class="jive-xml-tag"&gt;&amp;lt;/directory&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;filtering&amp;gt;&lt;/span&gt;true&lt;span class="jive-xml-tag"&gt;&amp;lt;/filtering&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/resources&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:20aed3f6-7eeb-4654-bf5e-792b8f0f6ff4]--&gt;&lt;p&gt;The &lt;strong&gt;finalName&lt;/strong&gt; element dictates the name of the custom WAR file generated by the build process, and reflects the name of the project, and the version of SBS being built upon.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;As referenced above, the &lt;strong&gt;resources&lt;/strong&gt; element specifies that artifacts in the &lt;strong&gt;src/main/resources-filtered&lt;/strong&gt; folder are to be filtered when they are processed by the Maven build.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:36b2b1ff-6df0-4e43-893d-b71106c83af3]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;lt;plugins&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;plugin&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;org.apache.maven.plugins&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;maven-compiler-plugin&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;source&amp;gt;1.6&amp;lt;/source&amp;gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- compiling with JDK 6 now --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;target&amp;gt;1.6&amp;lt;/target&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/plugin&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:36b2b1ff-6df0-4e43-893d-b71106c83af3]--&gt;&lt;p&gt;The &lt;strong&gt;maven-compiler-plugin&lt;/strong&gt; is set up to compile with JDK 6.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We also use some Ant tasks to accomplish some of the more rudimentary file movements needed for the build:&lt;/p&gt;&lt;!--[CodeBlockStart:e71cf126-4e88-4062-8a47-227e86beb830]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;lt;plugin&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;maven-antrun-plugin&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;executions&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;execution&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;id&amp;gt;delete-cobertura-ser&amp;lt;/id&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;phase&amp;gt;clean&amp;lt;/phase&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;echo message="deleting cobertura.ser" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;delete file="\${basedir}/cobertura.ser" failonerror="false"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/execution&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:e71cf126-4e88-4062-8a47-227e86beb830]--&gt;&lt;p&gt;The &lt;strong&gt;delete-cobertura-ser&lt;/strong&gt; Ant execution deletes the cobertura.ser file generated in previous builds.&amp;#160; If this file is not deleted, it can result in erroneous coverage data.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:0a7c7bc2-e6c2-4594-94fe-487fcf0188f9]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;lt;execution&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;id&amp;gt;compile-sbs-artifacts&amp;lt;/id&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;phase&amp;gt;compile&amp;lt;/phase&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Copy themes files into ../target/jiveHome/themes for testing&amp;#160; --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;copy todir="\${basedir}/../target/jiveHome/themes" overwrite="true"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="\${basedir}/src/main/themes"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;include name="**/*" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/fileset&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/copy&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Now build a new themes.zip for distribution --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;mkdir dir="${project.build.directory}/themes"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;copy todir="${project.build.directory}/themes" overwrite="yes" filtering="off"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="\${basedir}/src/main/themes"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; includes="**/*" excludes="**/.svn, **/.svn/**" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/copy&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zip destfile="${project.build.directory}/themes.zip"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zipfileset dir="${project.build.directory}/themes" prefix=""/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/zip&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Copy your etc directory to ../target/jiveHome for testing--&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;mkdir dir="../target/jiveHome/etc"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;copy todir="../target/jiveHome/etc" overwrite="true"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="src/main/etc"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;include name="*.xml"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/fileset&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/copy&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Build an etc.zip for distribution--&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zip destfile="${project.build.directory}/etc.zip"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zipfileset dir="\${basedir}/src/main/etc" prefix=""/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/zip&amp;gt;

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Copy your etc directory to ../target/jiveHome for testing--&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;mkdir dir="../target/jiveHome/keys"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;copy todir="../target/jiveHome/keys" overwrite="true"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="\${basedir}/src/main/keys"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;include name="*.der"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/fileset&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/copy&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Build an keys.zip for distribution--&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zip destfile="${project.build.directory}/keys.zip"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;zipfileset dir="\${basedir}/src/main/keys" prefix=""/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/zip&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/configuration&amp;gt;
&amp;lt;/execution&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:0a7c7bc2-e6c2-4594-94fe-487fcf0188f9]--&gt;&lt;p&gt;The &lt;strong&gt;compile-sbs-artifacts &lt;/strong&gt;Ant execution performs the following actions:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Copies the &lt;strong&gt;web/src/main/themes&lt;/strong&gt; directory to the root &lt;strong&gt;target/jiveHome/themes&lt;/strong&gt; for use by the local instance (if running Cargo, this is not necessary as the -DthemesDir system property points to the &lt;strong&gt;src/main/themes&lt;/strong&gt; directory and makes changes available on the fly).&lt;/li&gt;&lt;li&gt;Zips the &lt;strong&gt;web/src/main/themes&lt;/strong&gt; directory up into a &lt;strong&gt;themes.zip&lt;/strong&gt; file, for deployment to a test or production server.&lt;/li&gt;&lt;li&gt;Copies the &lt;strong&gt;web/src/main/etc&lt;/strong&gt; directory to the root&lt;strong&gt; target/jiveHome/etc&lt;/strong&gt; for use by the local instance.&lt;/li&gt;&lt;li&gt;Zips the &lt;strong&gt;web/src/main/etc &lt;/strong&gt;directory up into an &lt;strong&gt;etc.zip&lt;/strong&gt; file, for deployment to a test or production server.&lt;/li&gt;&lt;li&gt;Copies the &lt;strong&gt;web/src/main/keys&lt;/strong&gt; directory to the root &lt;strong&gt;target/jiveHome/keys&lt;/strong&gt; for use by the local instance.&lt;/li&gt;&lt;li&gt;Zips the &lt;strong&gt;web/src/main/keys&lt;/strong&gt; directory up into a &lt;strong&gt;keys.zip&lt;/strong&gt; file, for deployment to a test or production server.&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:45fd3010-50ba-4ce3-b5f5-02763249a532]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- The execution below should be used when a project needs to overlay any Jive SBS bean.properties
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; or resources in the Jive SBS directory "resources.scripts".&amp;#160; In order for these overlay files
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; to actually override their equivalents in the Jive SBS jar, they need to be placed in the
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Jive SBS jar itself. --&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&amp;lt;execution&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;id&amp;gt;repackage-sbs-jar&amp;lt;/id&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;phase&amp;gt;package&amp;lt;/phase&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;goal&amp;gt;run&amp;lt;/goal&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/goals&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;unjar src="./target/${build.finalName}/WEB-INF/lib/jive-sbs-employee-${sbs.shortversion}.jar"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dest="./target/jive-sbs-employee-temp-${sbs.shortversion}" /&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;copy todir="./target/jive-sbs-employee-temp-${sbs.shortversion}" overwrite="true"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="./src/main/overlay/" includes="**/*"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/copy&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;taskdef name="yui-compressor"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; classname="net.noha.tools.ant.yuicompressor.tasks.YuiCompressorTask"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; classpathref="maven.dependency.classpath"/&amp;gt;

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;yui-compressor
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; warn="false"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; munge="true"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; preserveallsemicolons="false"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; todir="./target/jive-sbs-employee-temp-${sbs.shortversion}"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; fromdir="./src/main/overlay"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; charset="utf8"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/yui-compressor&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;jar jarfile="./target/${build.finalName}/WEB-INF/lib/jive-sbs-employee-${sbs.shortversion}.jar" update="false"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="./target/jive-sbs-employee-temp-${sbs.shortversion}" includes="**/*"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/jar&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;jar destfile="./target/${build.finalName}.war"&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;fileset dir="./target/${build.finalName}"/&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/jar&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/tasks&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/configuration&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/execution&amp;gt;--&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/executions&amp;gt;
&amp;lt;/plugin&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:45fd3010-50ba-4ce3-b5f5-02763249a532]--&gt;&lt;p&gt;The &lt;strong&gt;repackage-sbs-jar&lt;/strong&gt; Ant execution, which is commented out by default, repackages the SBS JAR file with artifacts that cannot be appropriately overlaid within the WAR's &lt;strong&gt;WEB-INF/classes&lt;/strong&gt; directory, specifically widget properties and Javascript files.&amp;#160; It performs the following actions:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Explodes the core SBS JAR file to a directory.&lt;/li&gt;&lt;li&gt;Copies any artifacts from &lt;strong&gt;web/source/main/overlay&lt;/strong&gt; to the exploded SBS JAR directory, overwriting any duplicate files.&lt;/li&gt;&lt;li&gt;Compresses any Javascript artifacts using the YUI Compressor utility to create the *-min.js Javascript artifacts.&lt;/li&gt;&lt;li&gt;Creates a new JAR file from the contents of the exploded JAR directory.&lt;/li&gt;&lt;li&gt;Creates a new WAR file from the contents of the exploded WAR directory.&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:7654716c-ad74-4d61-a206-9d2c4d6b3948]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- Surefire is our unit testing framework of choice--&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-surefire-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Don't suck up selenium tests in there--&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;excludes&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;exclude&amp;gt;&lt;/span&gt;**/selenium/*Test.java&lt;span class="jive-xml-tag"&gt;&amp;lt;/exclude&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/excludes&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:7654716c-ad74-4d61-a206-9d2c4d6b3948]--&gt;&lt;p&gt;The &lt;strong&gt;maven-surefire-plugin&lt;/strong&gt; is configured to exclude any Selenium tests from being executed as part of the normal build process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:f551de9a-58f5-426b-958b-bc3b6bb37205]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.maven.plugins&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-war-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;workingDirectory&amp;gt;&lt;/span&gt;\${basedir}/target/tmp&lt;span class="jive-xml-tag"&gt;&amp;lt;/workingDirectory&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:f551de9a-58f5-426b-958b-bc3b6bb37205]--&gt;&lt;p&gt;More goodies for further configuring the &lt;strong&gt;maven-war-plugin&lt;/strong&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:eb19a8f6-16d8-42c2-871c-ff3d448cd4e3]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-comment"&gt;&amp;lt;!-- These properties are set by a TeamCity CI server.&amp;#160; They get populated into the customer_version.jsp that
&amp;#160;&amp;#160;&amp;#160;&amp;#160; is copied into our war file at the root.&amp;#160; This gives you web-accessible, definitive build information --&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;build.number&amp;gt;&lt;/span&gt;${env.BUILD_NUMBER}&lt;span class="jive-xml-tag"&gt;&amp;lt;/build.number&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; #set($vcsNumber = '${env.BUILD_VCS_NUMBER.1}')
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;build.vcs.number&amp;gt;&lt;/span&gt;$vcsNumber&lt;span class="jive-xml-tag"&gt;&amp;lt;/build.vcs.number&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; #set($projectName = '${env.TEAMCITY_PROJECT_NAME}')
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;build.project.name&amp;gt;&lt;/span&gt;$projectName&lt;span class="jive-xml-tag"&gt;&amp;lt;/build.project.name&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:eb19a8f6-16d8-42c2-871c-ff3d448cd4e3]--&gt;&lt;p&gt;This is how we get the build version numbers into the &lt;strong&gt;custom_version.jsp &lt;/strong&gt;file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:893d86e2-146e-450b-a753-180aea2db033]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code"&gt;&amp;lt;dependencies&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;com.jivesoftware&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;jive-sbs-employee&amp;lt;/artifactId&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- was clearspacex --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;${sbs.version}&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;type&amp;gt;war&amp;lt;/type&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;com.jivesoftware&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;jive-sbs-employee&amp;lt;/artifactId&amp;gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- was clearspacex --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;${sbs.version}&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;type&amp;gt;jar&amp;lt;/type&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;com.jivesoftware&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;jive-sbs-employee-all&amp;lt;/artifactId&amp;gt; &amp;lt;!-- was clearspacex-all --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;${sbs.version}&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;type&amp;gt;pom&amp;lt;/type&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;javax.servlet&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;servlet-api&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;2.4&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;compile&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- We assume your jdbc jars will be provided at runtime--&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;mysql&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;mysql-connector-java&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;5.1.5&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;postgresql&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;postgresql&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;8.3-603.jdbc3&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;provided&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;org.openqa.selenium.client-drivers&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;selenium-java-client-driver&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;0.9.2&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- The dependencies below should be used when a project needs to overlay any resources in the Jive SBS
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; directory "resources.scripts".&amp;#160; In order for the minimized Javascript files to be generated, these
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; dependencies must be present so the yui-compressor task can run --&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;com.jivesoftware&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;yuicompressor&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;2.2.4_2_0_0_rc1&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;dependency&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;groupId&amp;gt;com.jivesoftware&amp;lt;/groupId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;artifactId&amp;gt;yuicompressor-anttask&amp;lt;/artifactId&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;version&amp;gt;2.4.2&amp;lt;/version&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;/dependency&amp;gt;--&amp;gt;
&amp;lt;/dependencies&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:893d86e2-146e-450b-a753-180aea2db033]--&gt;&lt;p&gt;The &lt;strong&gt;dependency&lt;/strong&gt; element defines the libraries needed to compile and build the &lt;strong&gt;web&lt;/strong&gt; project, including:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;jive-sbs-employee&lt;/strong&gt; &lt;strong&gt;(war)&lt;/strong&gt;:&amp;#160; Jive SBS Core WAR &lt;br/&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;jive-sbs-employee (jar)&lt;/strong&gt;: Jive SBS Core JAR file&lt;/li&gt;&lt;li&gt;&lt;strong&gt;jive-sbs-employee-all (pom)&lt;/strong&gt;: Jive SBS Core dependencies&lt;/li&gt;&lt;li&gt;&lt;strong&gt;servlet-api&lt;/strong&gt;: J2EE Servlet library needed to run the app.&amp;#160; This used to be included via transitive dependencies, which have recently been discontinued.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;mysql-connector-java&lt;/strong&gt;:&amp;#160; MySQL JDBC Driver&lt;/li&gt;&lt;li&gt;&lt;strong&gt;postgresql&lt;/strong&gt;: PostgreSQL JDBC Driver&lt;/li&gt;&lt;li&gt;&lt;strong&gt;selenium-java-client-driver&lt;/strong&gt;:&amp;#160; Test driver class for Selenium test suite&lt;/li&gt;&lt;li&gt;&lt;strong&gt;yuicompressor&lt;/strong&gt;:&amp;#160; YUI Compressor library.&amp;#160; Disabled by default, this is needed if the &lt;strong&gt;repackage-sbs-jar&lt;/strong&gt; plugin is in use.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;yuicompressor-anttask&lt;/strong&gt;:&amp;#160; YUI Compressor Ant task definition.&amp;#160; Disabled by default, this is needed if the &lt;strong&gt;repackage-sbs-jar&lt;/strong&gt; plugin is in use.&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Profiles&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div id="_mcePaste"&gt;The following section describes the various profiles that exist within the web project's POM.&amp;#160; Profiles allow for different configurations to be used during a build by specifying the profile when the build is run.&amp;#160; In the case of the overlay project, two profiles are used by default:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;int&lt;/strong&gt;: integration-testing profile. Allows for running all of the integration tests for the project, but more commonly for running the project inside of a local Tomcat instance via Cargo.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;dev&lt;/strong&gt;:&amp;#160; largely the same as the int profile, but adds the ability to run the project in an environment a bit more conducive to the iterations associated with development.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div id="_mcePaste"&gt; &lt;/div&gt;&lt;div id="_mcePaste"&gt; &lt;/div&gt;&lt;div id="_mcePaste"&gt; &lt;/div&gt;&lt;div&gt;&lt;strong&gt;Profile: int&lt;/strong&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The int profile contains two plugins:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;cargo-maven2-plugin&lt;/strong&gt;: Discussed below&lt;/li&gt;&lt;li&gt;&lt;strong&gt;selenium-maven-plugin&lt;/strong&gt;:&amp;#160; Runs the Selenium integration test suite&lt;/li&gt;&lt;li&gt;&lt;strong&gt;maven-surefire-plugin&lt;/strong&gt;:&amp;#160; Specifies that only Selenium integration tests are to be run&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;The &lt;strong&gt;cargo-maven2-plugin&lt;/strong&gt; allows us to deploy the app to Tomcat for the purpose of running integration tests against the instance, and also to allow for manual use of the app, depending how it is run.&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;There are several ways to run Cargo:&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 100%; border: 1px solid #000000;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;Command&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mvn -P int integration-test&lt;/td&gt;&lt;td&gt;Runs the integration tests inside of Cargo and then exits.&amp;#160; Maven will run through all of the other dependent lifecycle phases before running the tests (compile, package, test, etc).&amp;#160; You would use this if you wanted to only run the automated integration tests.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mvn -Dcargo.wait=true -P int integration-test&lt;/td&gt;&lt;td&gt;Runs the app within Cargo, after running through dependent Maven lifecycle phases.&amp;#160; The presence of the cargo.wait system property tells Maven to keep the Tomcat instance up and to wait for either user input, or for the instance to be shut down manually.&amp;#160; Note that running this way will cause the custom WAR to be rebuilt before the app is deployed.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;mvn -Dcargo.wait=true -P int cargo:start&lt;/td&gt;&lt;td&gt;Runs the app within Cargo, but does not run through any dependent Maven lifecycle phases.&amp;#160; Rather, it deploys the existing custom WAR to the Tomcat instance, and waits for user input or a manual shutdown.&amp;#160; This option is recommended for plugin development when a new WAR is not required to observe changes in a local instance.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;The &lt;strong&gt;cargo-maven2-plugin&lt;/strong&gt; is defined in the POM as follows:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;!--[CodeBlockStart:589faa37-2f74-41ea-b09a-ccc54c268774]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;profiles&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;profile&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;int&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;build&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&lt;span&gt;&amp;lt;!-- Cargo is our main method of running and testing/debugging SBS.&amp;#160; This is the main configuration area. --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Here is the config reference:&amp;#160; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide" target="_blank"&gt;http://cargo.codehaus.org/Maven2+Plugin+Reference+Guide&lt;/a&gt;&lt;span&gt;&amp;#160;&amp;#160;&amp;#160; --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.codehaus.cargo&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;cargo-maven2-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Feed them this value; Decides if Cargo should wait after the container is started or not --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;wait&amp;gt;&lt;/span&gt;${cargo.wait}&lt;span class="jive-xml-tag"&gt;&amp;lt;/wait&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;container&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;containerId&amp;gt;&lt;/span&gt;tomcat6x&lt;span class="jive-xml-tag"&gt;&amp;lt;/containerId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;home&amp;gt;&lt;/span&gt;${tomcat6.home}&lt;span class="jive-xml-tag"&gt;&amp;lt;/home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;systemProperties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.instance.home&amp;gt;&lt;/span&gt;\${basedir}/../target/jiveHome&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.instance.home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.ws.disabled&amp;gt;&lt;/span&gt;true&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.ws.disabled&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.devMode&amp;gt;&lt;/span&gt;true&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.devMode&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;themes.directory&amp;gt;&lt;/span&gt;\${basedir}/src/main/themes&lt;span class="jive-xml-tag"&gt;&amp;lt;/themes.directory&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- &lt;span class="jive-xml-tag"&gt;&amp;lt;pluginDirs&amp;gt;&lt;/span&gt;\${basedir}/../myplugin/src/main/plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/pluginDirs&amp;gt;&lt;/span&gt; --&amp;gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/systemProperties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Throw in our most common jdbc connectors; add yours here if it's missing --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;mysql&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;mysql-connector-java&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;postgresql&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;postgresql&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;javax.servlet&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;servlet-api&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/container&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;home&amp;gt;&lt;/span&gt;target/tomcat6x&lt;span class="jive-xml-tag"&gt;&amp;lt;/home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;cargo.jvmargs&amp;gt;&lt;/span&gt;-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Xms512m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC&lt;span class="jive-xml-tag"&gt;&amp;lt;/cargo.jvmargs&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;deployables&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;deployable&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;location&amp;gt;&lt;/span&gt;target/${customer.name}-${customer.version}-sbs-${sbs.version}.war&lt;span class="jive-xml-tag"&gt;&amp;lt;/location&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;pingURL&amp;gt;&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://localhost:8080/jive" target="_blank"&gt;http://localhost:8080/jive&lt;/a&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;/pingURL&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;context&amp;gt;&lt;/span&gt;jive&lt;span class="jive-xml-tag"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/deployable&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/deployables&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;start-container&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;pre-integration-test&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;start&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;stop-container&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;post-integration-test&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;stop&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:589faa37-2f74-41ea-b09a-ccc54c268774]--&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;configuration&lt;/strong&gt; element allows for the specification of system properties, deployables, customization of the JVM args, and more.&amp;#160; Each item is discussed below.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:4b941992-d486-4a5f-9605-dcb2ea3aed58]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;wait&amp;gt;&lt;/span&gt;${cargo.wait}&lt;span class="jive-xml-tag"&gt;&amp;lt;/wait&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:4b941992-d486-4a5f-9605-dcb2ea3aed58]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The value for the wait property is passed through from the command line, and determines whether Cargo will remain up, waiting for user interaction.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:612ebfca-f92b-4ffe-b6a5-1115108dda0f]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;container&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;containerId&amp;gt;&lt;/span&gt;tomcat6x&lt;span class="jive-xml-tag"&gt;&amp;lt;/containerId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;home&amp;gt;&lt;/span&gt;${tomcat6.home}&lt;span class="jive-xml-tag"&gt;&amp;lt;/home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;systemProperties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.instance.home&amp;gt;&lt;/span&gt;\${basedir}/../target/jiveHome&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.instance.home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.ws.disabled&amp;gt;&lt;/span&gt;true&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.ws.disabled&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jive.devMode&amp;gt;&lt;/span&gt;true&lt;span class="jive-xml-tag"&gt;&amp;lt;/jive.devMode&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;themes.directory&amp;gt;&lt;/span&gt;\${basedir}/src/main/themes&lt;span class="jive-xml-tag"&gt;&amp;lt;/themes.directory&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- &lt;span class="jive-xml-tag"&gt;&amp;lt;pluginDirs&amp;gt;&lt;/span&gt;\${basedir}/../myplugin/target/myplugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/pluginDirs&amp;gt;&lt;/span&gt; --&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/systemProperties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Throw in our most common jdbc connectors; add yours here if it's missing --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;mysql&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;mysql-connector-java&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;postgresql&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;postgresql&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;javax.servlet&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;servlet-api&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/container&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:612ebfca-f92b-4ffe-b6a5-1115108dda0f]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;container&lt;/strong&gt; element allows for the configuration of how the Tomcat instance is run.&amp;#160; The &lt;strong&gt;home&lt;/strong&gt; element specifies where the Tomcat instance to be used is located, the value of which should be specified in your Maven &lt;strong&gt;settings.xml&lt;/strong&gt; file.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;JVM system properties are specified in the &lt;strong&gt;systemProperties&lt;/strong&gt; element.&amp;#160; The default values are as follows:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 100%; border: 1px solid #000000;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;System Property&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Value&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jive.instance.home&lt;/td&gt;&lt;td&gt;${basedir}/../target/jiveHome&lt;/td&gt;&lt;td&gt;This points the SBS instance to the jiveHome directory deployed when the root project is built.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jive.ws.disabled&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;Disables web services, which makes startup much faster.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;jive.devMode&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;Allows for running SBS in dev mode, which allows for the use of pluginDirs, themes.directory, and disables FTL cacheing.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;themes.directory&lt;/td&gt;&lt;td&gt;${basedir}/src/main/themes&lt;/td&gt;&lt;td&gt;Specifies that the themes directory used by the app will be the those in the src/main/themes directory.&amp;#160; This allows for changes to the themes to be made and observed on the fly, without rebuilding or restarting.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;pluginDirs&lt;/td&gt;&lt;td&gt;none&lt;/td&gt;&lt;td&gt;Specifes a comma-delimited list of plugins to run, each being represented by a directory containing the contents of the exploded plugin JAR file.&amp;#160; This allows the plugin to be installed in the SBS instance without actually saving it to the database and having to restart.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;dependencies&lt;/strong&gt; element references upstream dependencies defined within the POM that are needed to properly run the tomcat instance.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:b57d8db3-4739-4e40-b4c6-d5d63e91d1c6]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;home&amp;gt;&lt;/span&gt;target/tomcat6x&lt;span class="jive-xml-tag"&gt;&amp;lt;/home&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;cargo.jvmargs&amp;gt;&lt;/span&gt;-Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n -Xms512m -Xmx1024m -XX:MaxPermSize=256m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC&lt;span class="jive-xml-tag"&gt;&amp;lt;/cargo.jvmargs&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;deployables&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;deployable&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;location&amp;gt;&lt;/span&gt;target/${customer.name}-${customer.version}-sbs-${sbs.version}.war&lt;span class="jive-xml-tag"&gt;&amp;lt;/location&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;pingURL&amp;gt;&lt;/span&gt;http://localhost:8080/jive&lt;span class="jive-xml-tag"&gt;&amp;lt;/pingURL&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;context&amp;gt;&lt;/span&gt;jive&lt;span class="jive-xml-tag"&gt;&amp;lt;/context&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/deployable&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/deployables&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:b57d8db3-4739-4e40-b4c6-d5d63e91d1c6]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;configuration&lt;/strong&gt; element defines various Cargo properties, including how to start the JVM, and where the artifacts to be deployed reside.&amp;#160; The &lt;strong&gt;home&lt;/strong&gt; element specifies where the WAR being deployed should be copied to and exploded.&amp;#160; Running SBS is very memory intensive and requires that additional memory be allocated to the stack, which is done using the &lt;strong&gt;cargo.jvmargs&lt;/strong&gt; property.&amp;#160; The webapp(s) to run is/are defined in the &lt;strong&gt;deployables&lt;/strong&gt; element, each supplying the &lt;strong&gt;location&lt;/strong&gt; of the war to be deployed, as well as the &lt;strong&gt;context&lt;/strong&gt; under which the deployable is to be run.&amp;#160; By default, only one deployable is defined: the WAR created during the build, which runs under the &lt;strong&gt;&lt;em&gt;jive&lt;/em&gt;&lt;/strong&gt;&lt;span&gt; context (&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://localhost:8080/jive" target="_blank"&gt;http://localhost:8080/jive&lt;/a&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;Profile: dev&lt;/h5&gt;&lt;p&gt;The dev profile, like the int profile, provides for the running of the customized SBS instance locally, via Tomcat and Cargo, but without the notion of integration testing being the purpose.&amp;#160; The plugins offered by the profile are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;cargo-maven2-plugin&lt;/li&gt;&lt;li&gt;javarebel-maven-plugin&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;cargo-maven2-plugin&lt;/strong&gt; functions largely the same as in the &lt;strong&gt;int&lt;/strong&gt; profile, but with a few more options to better facilitate the use of Java Rebel.&amp;#160; For example, the following system properties are specified in the &lt;strong&gt;systemProperties&lt;/strong&gt; element:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="width: 100%; border: 1px solid #000000;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;System Property&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;Default Value&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Comments&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;docverse.enabled&lt;/td&gt;&lt;td&gt;false&lt;/td&gt;&lt;td&gt;Disables the DocVerse module, which causes problems with JavaRebel&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;rebel.struts2-plugin&lt;/td&gt;&lt;td&gt;true&lt;/td&gt;&lt;td&gt;Enables Rebel monitoring of Struts configuration changes&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The JavaRebel plugin is commented out by default, since it requires a license to run.&amp;#160; Java Rebel allows for the monitoring of class directories so that changes can be hot-deployed to a running instance without a restart.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:da08317d-e0b6-4dcd-bfb3-7fd82660d113]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-comment"&gt;&amp;lt;!--&lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.zeroturnaround&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;javarebel-maven-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;generate-rebel-xml&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;process-resources&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;generate&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;classpath&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;fallback&amp;gt;&lt;/span&gt;default&lt;span class="jive-xml-tag"&gt;&amp;lt;/fallback&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;resources&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;directory&amp;gt;&lt;/span&gt;\${basedir}/../myplugin/target/classes&lt;span class="jive-xml-tag"&gt;&amp;lt;/directory&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;jarset&amp;gt;&lt;/span&gt;\${basedir}/../myplugin/target/dependency&lt;span class="jive-xml-tag"&gt;&amp;lt;/jarset&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/resource&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/resources&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/classpath&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;war&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;path&amp;gt;&lt;/span&gt;\${basedir}/target/${customer.name}-${customer.version}-sbs-${sbs.version}&lt;span class="jive-xml-tag"&gt;&amp;lt;/path&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/war&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt; --&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:da08317d-e0b6-4dcd-bfb3-7fd82660d113]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The custom WAR file is specified by default.&amp;#160; To target additional directories, such as plugins, an entry for the plugin's classes directory is needed in the &lt;strong&gt;resources&lt;/strong&gt; element, like shown in the listing above.&amp;#160; This will allow for changes to the plugin's code to be monitored and loaded without having to rebuild the plugin and restart the server.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Archetype: maven-sbs-plugin-archetype&lt;/h2&gt;&lt;p&gt;The plugin archetype provides a template for SBS plugin projects, and is the preferred method for customizing an SBS instance.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Archetype Structure&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-8933-1-23673/Screen+shot+2009-11-10+at+9.19.51+AM.png"&gt;&lt;img alt="Screen shot 2009-11-10 at 9.19.51 AM.png" class="jive-image" height="427" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-8933-1-23673/439-427/Screen+shot+2009-11-10+at+9.19.51+AM.png" width="439"/&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The archetype creates a single project, representing the plugin to be developed, built, and deployed.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;src/main/assembly&lt;/h4&gt;&lt;p&gt;The plugin makes use of the &lt;strong&gt;maven-assembly-plugin&lt;/strong&gt; to determine how the plugin JAR is packaged.&amp;#160; Its configuration is contained within the &lt;strong&gt;assembly-plugin.xml&lt;/strong&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;src/main/java&lt;/h4&gt;&lt;p&gt;The Java code making up the plugin goes here.&amp;#160; Not much else to say about it.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;src/main/plugin&lt;/h4&gt;&lt;p&gt;Artifacts contained within this folder will be placed in the plugin's root directory as part of the build process.&amp;#160; Artifacts in this folder are filtered by the build process and can be parameterized.&amp;#160; Files included in this folder by default include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;cache-config.xml&lt;/strong&gt;: For specifying any custom Coherence caches needed by the plugin.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;plugin.xml&lt;/strong&gt;: The plugin's definition, including Sitemesh configs, widgets, schema version, UI customizations, etc.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;schema.xml&lt;/strong&gt;:&amp;#160; Defines the initial database schema to be created upon the plugin's initial installation into the system.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;spring.xml&lt;/strong&gt;: Defines any Spring beans needed by the plugin.&amp;#160; This includes new beans defined within the plugin itself, as well as overrides for bean definitions in the core product.&amp;#160; The latter practice is completely legal, but a little dangerous in that it could invite problems when deployed into in an environment with multiple plugins, any of which could override the same core Spring bean, causing a collision.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;struts.xml&lt;/strong&gt;: Defines the Struts configuration and mappings needed by the plugin.&amp;#160; Like the spring.xml, it can contain both new and overridden items, which can cause collisions.&lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;src/main/plugin/resources/images&lt;/h4&gt;&lt;p&gt;Images needed by the plugin go here&lt;/p&gt;&lt;h4&gt;src/main/plugin/resources/script&lt;/h4&gt;&lt;p&gt;Javascript files used by the plugin go here&lt;/p&gt;&lt;h4&gt;src/main/plugin/resources/styles&lt;/h4&gt;&lt;p&gt;The plugin's cascading stylesheets will go here.&lt;/p&gt;&lt;h4&gt;src/main/plugin/resources/templates&lt;/h4&gt;&lt;p&gt;Freemarker templates needed by the plugin go here.&lt;/p&gt;&lt;h4&gt;src/main/resources&lt;/h4&gt;&lt;p&gt;Artifacts in this directory will be placed in the classes directory when the project is built.&amp;#160; Only one file, &lt;strong&gt;plugin_i18n.properties&lt;/strong&gt;, which acts as the default resource bundle for the plugin, is included here by default.&lt;/p&gt;&lt;h4&gt;src/test/java&lt;/h4&gt;&lt;p&gt;This is where unit tests live.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Archetype Build&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The build behavior is all contained within the plugin's &lt;strong&gt;pom.xml&lt;/strong&gt; file.&amp;#160; This section will walk through each section of the pom, explaining them in detail.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:3f8e16be-07c9-468e-8498-6744443e6160]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-comment"&gt;&amp;lt;!--
&amp;#160; ~&amp;#160; $Revision: 96475 $
&amp;#160; ~&amp;#160; $Date: 2009-11-02 16:51:02 -0800 (Mon, 02 Nov 2009) $
&amp;#160; ~
&amp;#160; ~&amp;#160; Copyright (C) 1999-${YEAR} Jive Software. All rights reserved.
&amp;#160; ~
&amp;#160; ~&amp;#160; This software is the proprietary information of Jive Software. Use is subject to license terms.
&amp;#160; --&amp;gt;
&lt;span class="jive-xml-tag"&gt;&lt;span&gt;&amp;lt;project xmlns="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/POM/4.0.0" target="_blank"&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&lt;span&gt;" xmlns:xsi="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.w3.org/2001/XMLSchema-instance" target="_blank"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/a&gt;&lt;span&gt;"
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; xsi:schemaLocation="&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/POM/4.0.0" target="_blank"&gt;http://maven.apache.org/POM/4.0.0&lt;/a&gt;&lt;span&gt; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://maven.apache.org/maven-v4_0_0.xsd" target="_blank"&gt;http://maven.apache.org/maven-v4_0_0.xsd&lt;/a&gt;&lt;span&gt;"&amp;gt;&lt;/span&gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; These parameters were pased in via the commandline when this pom was created by the archetype.
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;modelVersion&amp;gt;&lt;/span&gt;4.0.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/modelVersion&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;${groupId}&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;${artifactId}-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;name&amp;gt;&lt;/span&gt;${artifactId}&lt;span class="jive-xml-tag"&gt;&amp;lt;/name&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;packaging&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/packaging&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;url&amp;gt;&lt;/span&gt;http://www.jivesoftware.com&lt;span class="jive-xml-tag"&gt;&amp;lt;/url&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:3f8e16be-07c9-468e-8498-6744443e6160]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This is the standard Maven project definition, the parameterized values of which are populated upon creation of the plugin project.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:aac089ba-2f7b-4cbf-9973-8aff8f47659d]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;build&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;finalName&amp;gt;&lt;/span&gt;${artifactId}-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/finalName&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugins&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- For compilation--&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-compiler-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;1.6&lt;span class="jive-xml-tag"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;target&amp;gt;&lt;/span&gt;1.6&lt;span class="jive-xml-tag"&gt;&amp;lt;/target&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:aac089ba-2f7b-4cbf-9973-8aff8f47659d]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;finalName&lt;/strong&gt; element defines the name of the JAR file created by the build process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Like the web POM, the &lt;strong&gt;maven-compiler-plugin&lt;/strong&gt; is set up to use JDK 6 to compile Java resources.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:e168aadc-cd65-4c64-a1bc-b3bbe03738e2]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- Weave transactions into the plugin --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.codehaus.mojo&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;aspectj-maven-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.1&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;aspectLibraries&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;aspectLibrary&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.springframework&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;spring-aspects&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/aspectLibrary&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/aspectLibraries&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;source&amp;gt;&lt;/span&gt;1.6&lt;span class="jive-xml-tag"&gt;&amp;lt;/source&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;compile&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:e168aadc-cd65-4c64-a1bc-b3bbe03738e2]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;aspectj-maven-plugin&lt;/strong&gt; allows for the weaving of aspect libraries into the plugin code.&amp;#160; By default, the &lt;strong&gt;spring-aspects&lt;/strong&gt; library is included to provide support for use of the @Transactional aspect within Java classes.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:4b93087b-74e8-4a30-a2cb-4a39042e3f59]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-assembly-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;assembly&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;package&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;single&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;&lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;appendAssemblyId&amp;gt;&lt;/span&gt;false&lt;span class="jive-xml-tag"&gt;&amp;lt;/appendAssemblyId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;descriptors&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;descriptor&amp;gt;&lt;/span&gt;\${basedir}/src/main/assembly/assembly-plugin.xml&lt;span class="jive-xml-tag"&gt;&amp;lt;/descriptor&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/descriptors&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:4b93087b-74e8-4a30-a2cb-4a39042e3f59]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;maven-assembly-plugin&lt;/strong&gt; affects how the JAR file artifact produced by the build process is structured.&amp;#160; This configuration points to the &lt;strong&gt;assembly-plugin.xml&lt;/strong&gt; for its directives.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:3c6a6150-9920-4900-9a55-6c8f38282fd7]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-antrun-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- Unpackages this SBS plugin.&amp;#160; That way it can be used in conjunction with the -DpluginDirs= property, which
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bypasses the standard plugin installation (which happens via the admin console), by pointing to exploded plugin jar created by this. --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;explode-sbs-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;package&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;run&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;tasks&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;mkdir dir="\${basedir}/target/${artifactId}" /&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;unjar src="\${basedir}/target/${artifactId}-plugin.jar" dest="\${basedir}/target/${artifactId}" /&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/tasks&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:3c6a6150-9920-4900-9a55-6c8f38282fd7]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The &lt;strong&gt;maven-antrun-plugin&lt;/strong&gt; for the plugin build process takes the resulting JAR artifact and explodes it into a directory, whose name is dictated by the plugin's name, within the plugin's &lt;strong&gt;target&lt;/strong&gt; folder.&amp;#160; This enables the inclusion of the plugin in a local SBS instance using the pluginDirs system property, which points to the exploded JAR directory.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:dad784eb-e02c-4db2-84cf-cd2a550ff967]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.apache.maven.plugins&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-source-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;id&amp;gt;&lt;/span&gt;attach-sources&lt;span class="jive-xml-tag"&gt;&amp;lt;/id&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;phase&amp;gt;&lt;/span&gt;verify&lt;span class="jive-xml-tag"&gt;&amp;lt;/phase&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;goal&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/goal&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/goals&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/execution&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/executions&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:dad784eb-e02c-4db2-84cf-cd2a550ff967]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Including the &lt;strong&gt;maven-source-plugin&lt;/strong&gt; creates a source jar artifact for the plugin when it's built.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:5bcc4415-13a9-4e02-8500-79aee1aa4b70]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- For unit testing --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;plugin&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;maven-surefire-plugin&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;excludes&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;exclude&amp;gt;&lt;/span&gt;**/selenium/*Test.java&lt;span class="jive-xml-tag"&gt;&amp;lt;/exclude&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/excludes&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/configuration&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugin&amp;gt;&lt;/span&gt;

&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/plugins&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/build&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:5bcc4415-13a9-4e02-8500-79aee1aa4b70]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Like in the web POM, this configuration of the &lt;strong&gt;maven-surefire-plugin&lt;/strong&gt; excludes Selenium tests from being run as part of the normal build process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:f1fe03b4-0e5e-4fee-868c-0af84cfafcd4]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependencies&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.jivesoftware&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;jive-sbs-employee&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${sbs.version}&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;provided&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;com.jivesoftware&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;jive-sbs-employee-all&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;${sbs.version}&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;pom&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;provided&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;javax.servlet&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;servlet-api&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.3&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;type&amp;gt;&lt;/span&gt;jar&lt;span class="jive-xml-tag"&gt;&amp;lt;/type&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;provided&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- The following dependencies are for unit testing--&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;junit&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;junit&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;4.4&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.objenesis&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;objenesis&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;1.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;cglib&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;cglib&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.1&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;groupId&amp;gt;&lt;/span&gt;org.jmock&lt;span class="jive-xml-tag"&gt;&amp;lt;/groupId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;artifactId&amp;gt;&lt;/span&gt;jmock-junit4&lt;span class="jive-xml-tag"&gt;&amp;lt;/artifactId&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;version&amp;gt;&lt;/span&gt;2.4.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;scope&amp;gt;&lt;/span&gt;test&lt;span class="jive-xml-tag"&gt;&amp;lt;/scope&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependency&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/dependencies&amp;gt;&lt;/span&gt;

 
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:f1fe03b4-0e5e-4fee-868c-0af84cfafcd4]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The plugin POM includes the following dependencies by default:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;jive-sbs-employee&lt;/strong&gt;: Needed for compilation of SBS-dependent code.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;jive-sbs-employee-all&lt;/strong&gt;: Provides a way to the libraries needed by SBS core code.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;servlet-api&lt;/strong&gt;: Needed to satisfy references to the J2EE Servlet API by plugin classes.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;junit:&lt;/strong&gt; JUnit 4 unit testing library&lt;/li&gt;&lt;li&gt;&lt;strong&gt;objenesis:&amp;#160; &lt;/strong&gt;Needed for use with the JMock library&lt;/li&gt;&lt;li&gt;&lt;strong&gt;cglib&lt;/strong&gt;:&amp;#160; Neded for use with the JMock library&lt;/li&gt;&lt;li&gt;&lt;strong&gt;jmock-junit4&lt;/strong&gt;: JMock library, which allows for the creation of mock objects to satisfy downstream dependencies of classes under test with JUnit.&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:158a93ec-a82f-4392-8b08-7c468b065b7c]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- This is where you set the Jive SBS version your plugin is compiled against. --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;properties&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;sbs.version&amp;gt;&lt;/span&gt;4.0.0&lt;span class="jive-xml-tag"&gt;&amp;lt;/sbs.version&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/properties&amp;gt;&lt;/span&gt;
&lt;span class="jive-xml-tag"&gt;&amp;lt;/project&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:158a93ec-a82f-4392-8b08-7c468b065b7c]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The version of SBS against which the plugin is being compiled against is defined here, in the &lt;strong&gt;sbs.version&lt;/strong&gt; property.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:bb66c8a2-d428-467f-92ef-7b7105d46c61] --&gt;</description>
      <pubDate>Mon, 09 Nov 2009 16:13:17 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-8933</guid>
      <dc:date>2009-11-09T16:13:17Z</dc:date>
      <clearspace:dateToText>1 week, 4 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Dynamically Extending or Modifying the Acegi Security Chain in SBS 4.0 and later</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-8840</link>
      <description>&lt;!-- [DocumentBodyStart:2a32b23f-e8f0-47ad-9d4b-e929d4f8980f] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;strong style="font-size: 18pt; "&gt;Introduction&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This document presents a simple yet powerful approach to adding custom security filters deployed by a plugin. These filters allows a plugin to intercept requests and perform operations during the authentication phase.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 18pt; "&gt;Problem Defintion&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The Acegi security filters are defined in spring-security.xml in a bean called "filterChainProxy".&amp;#160; This filter chain proxy is composed of a series of URL patterns and each URL pattern has an associated ordered list of filters. Often there is a need for plug-ins or other customizations to either modify the list of filters associated with a URL pattern or add a new URL pattern with it's own associated list. The Acegi API provides the ability to get access to the list of filters for each URL pattern and allows you to replace the entire list. This was the technique described in the aforementioned blog post. However it did not provide any ability to add new URL patterns. Furthermore, the coding required to do this was quite verbose and required you to copy the existing list of filters and re-write it back in order to preserve existing behavior.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Example extract of the filter chain proxy bean:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:04ca37a1-876d-46ab-8122-8d63d9b6fd79]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt; &lt;span class="jive-xml-tag"&gt;&amp;lt;bean id="filterChainProxy"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;property name="filterInvocationDefinitionSource"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /admin/**=httpSessionContextIntegrationFilter, sessionTrackingFilter, adminAuthenticationFilter, openfireAuthenticationFilter, adminExceptionTranslationFilter,jiveAuthenticationTranslationFilter
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /__services/**=httpSessionContextIntegrationFilter, basicAuthenticationFilter, wsExceptionTranslator, jiveAuthenticationTranslationFilter
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /**=httpSessionContextIntegrationFilter, sessionTrackingFilter, formAuthenticationFilter, loginPopupFormAuthenticationFilter, rememberMeProcessingFilter, feedBasicAuthenticationFilter, exceptionTranslationFilter, jiveAuthenticationTranslationFilter,contextOptimizationFilter
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...




&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:04ca37a1-876d-46ab-8122-8d63d9b6fd79]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We need a better way to add new filters into existing chain and also provide for new URL patterns.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 18pt; "&gt;Solution&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Since each filter can also be treated as a filter chain proxy, we can add standardized filter chain proxies to the filter lists in the hard coded spring-security.xml. By defining these filter chain proxies as "org.springframework.security.util.FilterChainProxy", we are provided with a much more flexibile API where we can control both the list of filters and the actual URL mapping.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Using the example extract above, the following standardized filter chain proxies have been defined and added to spring-security.xml in SBS 4.0:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:d53e8e4c-a307-4f07-99fa-e258c7eade37]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;bean id="filterChainProxy"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;property name="filterInvocationDefinitionSource"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;value&amp;gt;&lt;/span&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; 
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /admin/**=pluginPreFilterChain, httpSessionContextIntegrationFilter, pluginPostSessionContextFilterChain, sessionTrackingFilter, adminAuthenticationFilter, openfireAuthenticationFilter, adminExceptionTranslationFilter,jiveAuthenticationTranslationFilter, pluginPostFilterChain
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /__services/**=pluginPreFilterChain, httpSessionContextIntegrationFilter, pluginPostSessionContextFilterChain, basicAuthenticationFilter, wsExceptionTranslator, jiveAuthenticationTranslationFilter, pluginPostFilterChain
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ...
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; /**=pluginPreFilterChain, httpSessionContextIntegrationFilter, pluginPostSessionContextFilterChain, sessionTrackingFilter, formAuthenticationFilter, loginPopupFormAuthenticationFilter, rememberMeProcessingFilter, feedBasicAuthenticationFilter, exceptionTranslationFilter, jiveAuthenticationTranslationFilter,contextOptimizationFilter, pluginPostFilterChain
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/value&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/property&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;

&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;bean id="pluginPreFilterChain"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain-map path-type="ant"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain pattern="do-not-filter-stub" filters="none" /&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/security:filter-chain-map&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;


&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-comment"&gt;&amp;lt;!-- Filter chain that is processed right after the httpSessionContextIntegrationFilter has been processed --&amp;gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;bean id="pluginPostSessionContextFilterChain"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain-map path-type="ant"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain pattern="do-not-filter-stub" filters="none" /&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/security:filter-chain-map&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;

&amp;#160;&amp;#160;&amp;#160; &amp;lt;!-- Filter chain that is processed after all other filters have been processed --&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;bean id="pluginPostFilterChain"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain-map path-type="ant"&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;security:filter-chain pattern="do-not-filter-stub" filters="none" /&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/security:filter-chain-map&amp;gt;&lt;/span&gt;
&amp;#160;&amp;#160;&amp;#160; &lt;span class="jive-xml-tag"&gt;&amp;lt;/bean&amp;gt;&lt;/span&gt;



&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:d53e8e4c-a307-4f07-99fa-e258c7eade37]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Three standard filter chains have been provided; &lt;strong&gt;pluginPreFilterChain&lt;/strong&gt;, &lt;strong&gt;pluginPostSessionContextFilterChain&lt;/strong&gt; and &lt;strong&gt;pluginPostFilterChain&lt;/strong&gt;. Of the three &lt;strong&gt;pluginPreFilterChain&lt;/strong&gt; is the most powerful as it will be processed before the others, allowing you to potentially override subsequent processing. The other two have been provided for convenience as common customization require inserting processing in the middle of the chains.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;These filter chain proxies are defined as empty stubs in the hard coded spring file. Custom code can add new URL patterns and associate a list of filters.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For example, consider the need to add our custom processing filter (smeAuthFilter) to our restful service which is accessed at the URL /__services/sme. In order to do this we need to add a sub filter chain to the existing pattern /__services/**. We will use the pluginPreFilterChain to ensure that we get priority processing. This can be achieved with the following code which should be called from your plugin init method:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;!--[CodeBlockStart:b70e920b-34ae-44e8-a00e-0ba05c03fa90]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-java"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; &lt;font color="navy"&gt;&lt;b&gt;void&lt;/b&gt;&lt;/font&gt; addWebserviceSecurityFilter() &lt;font color="navy"&gt;{&lt;/font&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; JiveContext context = JiveApplication.getContext();
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FilterChainProxy chain = (FilterChainProxy) context.getSpringBean(&lt;font color="red"&gt;"pluginPostSessionContextFilterChain"&lt;/font&gt;);
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Map filterChainMap = chain.getFilterChainMap();
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; filterChainMap.put(&lt;font color="red"&gt;"/__services/sme/**"&lt;/font&gt;, getFilterList(&lt;font color="red"&gt;"smeWebServiceAuthFilter"&lt;/font&gt;));
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; chain.setFilterChainMap(filterChainMap);
&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;}&lt;/font&gt;
&amp;nbsp;
&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;&lt;b&gt;private&lt;/b&gt;&lt;/font&gt; List&amp;lt;Filter&amp;gt; getFilterList(String... names) &lt;font color="navy"&gt;{&lt;/font&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; JiveContext context = JiveApplication.getContext();
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;Filter&amp;gt; filters = Lists.newArrayList();
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;&lt;b&gt;for&lt;/b&gt;&lt;/font&gt; (String name : names) &lt;font color="navy"&gt;{&lt;/font&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; filters.add((Filter) context.getSpringBean(name));
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;}&lt;/font&gt;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;&lt;b&gt;return&lt;/b&gt;&lt;/font&gt; filters;
&amp;#160;&amp;#160;&amp;#160; &lt;font color="navy"&gt;}&lt;/font&gt;
&amp;nbsp;
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:b70e920b-34ae-44e8-a00e-0ba05c03fa90]--&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This technique can be used to modify or extend any existing URL access pattern. For example, one could add a new URL pattern to block an existing specific web service.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:2a32b23f-e8f0-47ad-9d4b-e929d4f8980f] --&gt;</description>
      <pubDate>Tue, 03 Nov 2009 18:01:57 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-8840</guid>
      <dc:date>2009-11-03T18:01:57Z</dc:date>
      <clearspace:dateToText>2 weeks, 4 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Maven: How to use with Eclipse</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-7729</link>
      <description>&lt;!-- [DocumentBodyStart:c50861e2-e168-45ad-98d4-a6a34728d975] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;h2&gt;Approach Using M2Eclipse Plugin&lt;/h2&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We recommend using the M2Eclipse Plugin for Maven.&amp;#160; First you will want to have the most current versions available of the following:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;Eclipse Classic version of the Eclipse IDE:&amp;#160; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.eclipse.org/downloads/" target="_blank"&gt;http://www.eclipse.org/downloads/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Eclipse XML Editors and Tools&lt;/li&gt;&lt;li&gt;M2Eclipse Plugin&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;First, install Eclipse Classic.&amp;#160; Next,&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;Install Eclipse XML Editors and Tools&lt;/strong&gt;&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Go to Help &amp;gt; Install New Software:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20614/Picture+21.png"&gt;&lt;img alt="Picture 21.png" class="jive-image" height="196" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20614/251-196/Picture+21.png" width="251"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Select the Galileo update site and select the Eclipse XML Editors and Tools:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20615/Picture+22.png"&gt;&lt;img alt="Picture 22.png" class="jive-image-thumbnail jive-image" height="462" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20615/396-462/Picture+22.png" width="396"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;&lt;strong&gt;Install the M2Eclipse Plugin&lt;/strong&gt;&lt;br/&gt;&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Use the same facility to add the M2Eclipse tools.&amp;#160; Click the Add. . .&amp;#160; button and enter the M2Eclipse update site URL:&amp;#160; &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://m2eclipse.sonatype.org/update/" target="_blank"&gt;http://m2eclipse.sonatype.org/update/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20616/Picture+23.png"&gt;&lt;img alt="Picture 23.png" class="jive-image-thumbnail jive-image" height="179" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20616/441-179/Picture+23.png" width="441"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Select the first group, to include all of "Maven Integration".&amp;#160; When this completes successfully, your IDE should be good to go.&amp;#160; It will restart several times in the above process.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Project Setup&lt;/h3&gt;&lt;p&gt;From an empty or existing workspace, choose File &amp;gt; Import or right click on the Package Explorer pane and select Import. Select to import Maven Projects:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20618/Picture+12.png"&gt;&lt;img alt="Picture 12.png" class="jive-image" height="433" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20618/416-433/Picture+12.png" width="416"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;M2Eclipse will detect all the pom files and generate the project structure.&amp;#160; Create a New. . . Java working set from this:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20619/Picture+13.png"&gt;&lt;img alt="Picture 13.png" class="jive-image-thumbnail jive-image" height="276" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20619/510-276/Picture+13.png" width="510"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Click on the Advanced options and add a template name to tie each maven module to your project, e.g. Acme-[artifactId]&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20620/Picture+14.png"&gt;&lt;img alt="Picture 14.png" class="jive-image-thumbnail jive-image" height="424" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20620/372-424/Picture+14.png" width="372"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Congratulations your project has been creaed:&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20621/Picture+16.png"&gt;&lt;img alt="Picture 16.png" class="jive-image" height="331" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20621/225-331/Picture+16.png" width="225"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Now when you build Eclipse will use the Maven compile configuration.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Where are my sources?&lt;/h3&gt;&lt;p&gt;Sources are stored in Maven source jars.&amp;#160; To download and link these up in your IDE, do the following steps:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20622/Picture+18.png"&gt;&lt;img alt="Picture 18.png" class="jive-image" height="753" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20622/535-753/Picture+18.png" width="535"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Right-click on your pom &amp;gt; Maven &amp;gt; Downlaod Sources&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This should pull the dependency sources and link them up.&amp;#160; Try by pulling up a Jive class, such as LoginAction (cmd+shift+T) and validate the source is there.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;And what about my .ftls and other war file sources?&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you have downloaded a source build, you can perform the above sets and create a new working set that references those source files.&amp;#160; However, the simplest approach is to include your war target directories in the project configuration.&amp;#160; The good news is that this will happen by default, unless you choose to explicitly hide the target directories.&amp;#160; The bad news is you'll see multiple entries for files such as struts-community-custom.xml when you do a resource search (cmd+shift-R).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you want to go ahead and hide the target directories from an index search, right-click on the e.g. web/target directory in your package explorer, and click Properties:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20623/Picture+17.png"&gt;&lt;img alt="Picture 17.png" class="jive-image-thumbnail jive-image" height="440" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20623/620-440/Picture+17.png" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;If you check the Derived checkbox, it will no longer appear in your searches.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Maven-Only Alternative Method&lt;br/&gt;&lt;/h2&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It is possible to use Maven with Eclipse without using the M2Eclipse tool.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;From the root of your project run the following command:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="jive-quote"&gt;&lt;p&gt;mvn eclipse:clean eclipse:eclipse -DdownloadSources=true&lt;/p&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This will refresh your existing eclipse project files and link up your sources, so that all SBS sources are indexed and will link up in the debugger.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Then from a fresh workspace you import the root directory as an existing project.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-7729-4-20624/Picture+24.png"&gt;&lt;img alt="Picture 24.png" class="jive-image" height="559" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-7729-4-20624/532-559/Picture+24.png" width="532"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c50861e2-e168-45ad-98d4-a6a34728d975] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">eclipse</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">ide</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">build</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">maven</category>
      <pubDate>Thu, 24 Sep 2009 16:07:02 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-7729</guid>
      <dc:date>2009-09-24T16:07:02Z</dc:date>
      <clearspace:dateToText>1 month, 3 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Information on Configuring Domain Name for Cloud Edition</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-7359</link>
      <description>&lt;!-- [DocumentBodyStart:45297c56-5c68-492a-8d66-282203b251e3] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;&lt;span&gt;This page provides information and instructions on how to set up DNS entries so that your Jive SBS community can be accessed by a hostname of your choosing. As an example this will let you refer to your site as something like &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://public.mycompany.com/"&gt;http://public.mycompany.com&lt;/a&gt;&lt;span&gt; instead of &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://public-mycompany.jivesbs.com/"&gt;http://public-mycompany.jivesbs.com&lt;/a&gt;&lt;span&gt;. &lt;/span&gt;This feature is only available on Cloud editions of Jive SBS.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;Background&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;DNS is an internet protocol that maps human-friendly hostnames like 'www.mycompany.com' to the IP Addresses like '10.192.7.8' that are needed to actually communicate over the network. The technical name for this type of mapping is a DNS "A" Record. With Jive SBS hostname mapping we use a separate type of DNS mapping called a "CNAME record". This just points one hostname to another.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;What we want to have setup is two DNS mappings:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;public.mycompany.com is a CNAME record pointing to public-mycompany.jivesbs.com&lt;/li&gt;&lt;li&gt;public-mycompany.jivesbs.com is an A record pointing to the specific address hosting your service. &lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;A key part of how DNS works is that every domain has it's own "Master Server". So for instance the jivesbs.com domain has a Master Server controlled by Jive while mycompany.com would have it's own Master Server controlled by either the IT department of "My Company" or by a 3rd party DNS registrar. DNS software handles all the details of figuring out which Master Server to contact to look for records.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;What this means for you is that Jive can only make DNS changes for domains we control, such as jivesbs.com. In our example this means Jive can't make any changes to the DNS setup for the mycompany.com domain.&lt;/p&gt;&lt;h4&gt;Setting up CNAME&lt;/h4&gt;&lt;p&gt;The steps to do this all depend on who is maintaining the DNS server for the domain you want to use. In most companies this change can be done just by making a request to your I.T. department to setup the CNAME record.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you are using a 3rd-party registrat like GoDaddy then you most likely have self-service access to make these kinds of DNS changes. For instance in GoDaddy you would follow these steps:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;login to godaddy.com&lt;/li&gt;&lt;li&gt;Go to your domain dashboard&lt;/li&gt;&lt;li&gt;Go to "Total DNS/MAX" Manage&lt;/li&gt;&lt;li&gt;Click on "Add CNAME"&lt;/li&gt;&lt;li&gt;Enter the sub-domain you want to use ('public' in the example above). For the "points to host name" value use the name supplied in the product ('public-mycompany.jivesbs.com' in the example). &lt;br/&gt;&lt;/li&gt;&lt;li&gt;For the "TTL" value use something like "1 Hour". This stands for "Time To Live" - it governs how long DNS servers should cache the value without rechecking. &lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h4&gt;Configuring in Jive SBS&lt;/h4&gt;&lt;p&gt;Once the CNAME has been setup you need to configure in Jive SBS what the name of the site is. This can be found under "Settings -&amp;gt; Network Settings"&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size: 14pt;"&gt;&lt;strong&gt;FAQ&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: Can I just have Jive handle setting this up?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A: No - as explained above Jive can only make DNS changes to domains it controls.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: Why don't we just map 'public.mycompany.com' to an IP address?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A: There are various technical reasons for this - the main one is that by using a CNAME then Jive can move your service to a different IP address without having to make any changes to DNS configuration for 'mycompany.com'.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: What does Jive SBS use the configured hostname for?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A: Examples of where this value will be used include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;creating links in outgoing emails&lt;/li&gt;&lt;li&gt;creating links for blog trackbacks&lt;br/&gt;&lt;/li&gt;&lt;li&gt;replacing full URLs pasted into the editor with relative links to the actual content&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: How does this impact the mail address/domain used by my community?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A: This has no impact on mail addresses and domains. In the future Jive SBS will provide a method to configure incoming and outgoing emails to go through a customer domain.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Q: How this impact SSL?&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;A: When using a CNAME for your community name SSL will not be available. In the future Jive SBS will provide a method to allow the appropriate SSL certificates to be generated/uploaded.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:45297c56-5c68-492a-8d66-282203b251e3] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">cloud</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">dns</category>
      <pubDate>Thu, 03 Sep 2009 19:26:32 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-7359</guid>
      <dc:date>2009-09-03T19:26:32Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Customer SVN Repository JIRA Policy</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-7355</link>
      <description>&lt;!-- [DocumentBodyStart:24272096-2278-4a78-99de-2c33428897f1] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;h3&gt;Audience&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This document applies only to customers or partners who have access to a project in the customer Subversion (SVN) source code repository hosted by Jive's Professional Services.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3 style="padding: 0px; min-height: 8pt; height: 8pt;"&gt;Overview of Changes&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Effective 9/14/09, a change to the SVN checkin policy will affect you if you are commiting code to this repository.&amp;#160; The change requires that all commits contain a valid JIRA Issue ID in the commit message.&amp;#160; Commits without a valid JIRA Issue ID in the message will fail.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;This change affects all projects located under the following directory:&amp;#160; &lt;/span&gt;&lt;a class="jive-link-external-small" href="https://svn.jivesoftware.com/svn/ext/customer/"&gt;https://svn.jivesoftware.com/svn/ext/customer/&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;If you are actively working on a project in conjunction with Jive Professional Services, please contact your Jive project or account manager to provide you with a JIRA ID.&amp;#160; If you are not currently working with Jive but still using our repository, you can contact Greg Weinger (&lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:greg.weinger@jivesoftware.com"&gt;greg.weinger@jivesoftware.com&lt;/a&gt;&lt;span&gt;), and he will provide you a JIRA ID.&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;We apologize for any inconvenience.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Why We Are Doing This&lt;br/&gt;&lt;/h3&gt;&lt;p&gt;Jive PS is adopting this policy to provide better traceability from coding requirements and/or bug fixes to the actual modifications made in source code.&amp;#160; Requiring a JIRA ID ensures we can link from the JIRA documentation of the requirement or bug report to the code modifications. We believe this will improve our efficiency in writing new and modifying old code, aid troubleshooting, improve code quality, and enhance communication with our customers.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;These benefits extend to all custom code deployed on Jive SBS that we maintain, and therefore we are adopting this across the entire repository.&lt;/p&gt;&lt;br/&gt;&lt;h3 style="padding: 0px; min-height: 8pt; height: 8pt;"&gt;Instructions&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;First, you need to obtain a valid JIRA ID for your checkins.&amp;#160; Contact &lt;a class="jive-link-profile-small" href="http://www.jivesoftware.com/jivespace/people/gweinger"&gt;Gregory Weinger&lt;/a&gt;, or your Jive Professional Services Project Manager or Account Manager to provide you with one.&amp;#160; If you'd like to use the JIRA tool to do issue tracking as well, we'll be happy to set up a specific JIRA account and project, and thereafter you can create your own individual JIRA IDs.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To commit successfully you need to embed this JIRA ID in your commit message.&amp;#160; For example, if the JIRA ID associated with the code changes is "BEE-22", to check in a change to a file named test.txt, from the command line you would type:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="jive-quote"&gt;&lt;p&gt;svn commit -m "BEE-22 New test text"&amp;#160;&amp;#160; test.txt&lt;/p&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you have an invalid JIRA ID or if you do not include one, you will see a message like this:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="jive-quote"&gt;gw$ svn commit test.txt &lt;br/&gt;Sending&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; test.txt&lt;br/&gt;Transmitting file data .svn: Commit failed (details follow):&lt;br/&gt;svn: Commit blocked by pre-commit hook (exit code 1) with output:&lt;br/&gt;Committer: greg.weinger&lt;br/&gt;Commit message: "no!"&lt;br/&gt;Commit rejected: No project accepts this commit. Project [*]: Commit message must contain at least one valid issue key.&lt;br/&gt;&lt;br/&gt;&lt;/div&gt;&lt;br/&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:24272096-2278-4a78-99de-2c33428897f1] --&gt;</description>
      <pubDate>Thu, 03 Sep 2009 17:37:26 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-7355</guid>
      <dc:date>2009-09-03T17:37:26Z</dc:date>
      <clearspace:dateToText>2 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Jive SBS Delegated Authentication</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-7357</link>
      <description>&lt;!-- [DocumentBodyStart:1a4e8b4c-e809-4dc0-830c-f0eef22ec459] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;h4&gt;What is Jive SBS Delegated Authentication?&lt;/h4&gt;&lt;p&gt;Delegated Authentication is a mechanism that allows a customer to control the definition of users outside of the Jive SBS system. This feature is available in Jive SBS starting with version 4.0.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Elements controlled by Delegated Authentication include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;existance of a user account&lt;/li&gt;&lt;li&gt;enabled/disabled state of a user account&lt;/li&gt;&lt;li&gt;password used to authenticate an account&lt;/li&gt;&lt;li&gt;profile fields associated with account&lt;/li&gt;&lt;/ul&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When Delegated Authentication is enabled and configured Jive SBS will make a simple Web Service call out to the configured server whenever a user attempts to login.&lt;/p&gt;&lt;h4&gt;Web Service Details&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;When Delegated Authentication is enabled, the login process is as follows:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;When a user tries to log in through the website or Jive API, a web services call passes the username, password, and sourceIP to a web service hosted by&amp;#160; your organization. The web service must be deployed at a location&amp;#160; that can be accessed by Jive servers.&lt;/li&gt;&lt;li&gt;Your&amp;#160; implementation of the web service validates the information and returns a value for "authenticated" of either "true" or "false". Optionally, the web service can return profile information that should be used by Jive, and whether the user account is enabled or disabled.&lt;br/&gt;&lt;/li&gt;&lt;li&gt;If the disabled value is "true" then the user account will be disabled in the Jive SBS UI and the user is informed that the username and password combination was invalid.&lt;/li&gt;&lt;li&gt;If the authenticated value is "true" then the login succeeds. If "false" is returned, then the user is informed that the username and password combination was invalid.&lt;/li&gt;&lt;li&gt;If the authenticated value is "true" and includes profile data, the Jive profile information for the user will be updated with the supplied values.&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The web service will be called using HTTP POST using the following parameters:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="border: 1px solid #000000; width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Name&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Description&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;username&lt;/td&gt;&lt;td&gt;the user's username&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;password&lt;/td&gt;&lt;td&gt;the user's password&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;sourceIP&lt;/td&gt;&lt;td&gt;the IP address that originated the login request. This value can be used to only allow logins from a certain IP address range; for example, to ensure that a user is connected to the VPN.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;The response to the web service call is an XML document with a single required parameter indicating whether the authentication succeeded. If authenticated has a value of "true" the web service response can include optional profile data so that the Jive profile is kept synchronized with an external profile such as an LDAP directory or website member data. An optional attribute will control if the user account should be disabled.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="border: 1px solid #000000; width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Name&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Description&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;authenticated&lt;/td&gt;&lt;td&gt;"true" if the user should be authenticated, "false" otherwise. When "true", an optional profile element can be specified to update the user's profile data&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;disabled&lt;/td&gt;&lt;td&gt;"true" if the user account should be disabled, "false" otherwise.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;The values contained in the &amp;lt;profile&amp;gt; element depend on the edition and configuration of your Jive SBS instance. All values are optional. The following is an example of values that are recognized by a Jive SBS Public Community:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" style="border: 1px solid #000000; width: 100%;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Name&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;th align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;span style="color: #ffffff;"&gt;&lt;strong&gt;Description&lt;br/&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;firstName&lt;/td&gt;&lt;td&gt;The user's first name; the Jive profile will be updated with this value&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;lastName&lt;/td&gt;&lt;td&gt;The user's late name; the Jive profile will be updated with this value&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;occupation&lt;/td&gt;&lt;td&gt;The user's occupation; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;company&lt;/td&gt;&lt;td&gt;The company the user works at; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;phonenumber&lt;/td&gt;&lt;td&gt;The user's primary phone number; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;biography&lt;/td&gt;&lt;td&gt;The user's biography; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;url&lt;/td&gt;&lt;td&gt;The user's url; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;expertise&lt;/td&gt;&lt;td&gt;A description of the user's expertise areas; the Jive profile will be updated with this value if the profile field exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;joindate&lt;/td&gt;&lt;td&gt;Date the user account was created; the Jive profile will be updated with this value if the profile fields exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;alternatephonenumber&lt;/td&gt;&lt;td&gt;The user's alternative phone number; the Jive profile will be updated with this value if the profile fields exists&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;alternateemail&lt;/td&gt;&lt;td&gt;The user's alternative email address; the Jive profile will be updated with this value if the profile fields exists&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Example web service responses:&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1. User is authenticated and certain profile data is included.&lt;/p&gt;&lt;pre class="jive-pre"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br/&gt;&amp;lt;AuthenticationResponse xmlns:ns2="http://jivesoftware.com/authentication"&amp;gt;&lt;br/&gt;&lt;code class="jive-code"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authenticated&amp;gt;true&amp;lt;/authenticated&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;profile&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;firstName&amp;gt;Joe&amp;lt;/firstName&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;lastName&amp;gt;Smith&amp;lt;/lastName&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;email&amp;gt;joe.smith@example.com&amp;lt;/email&amp;gt;&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/profile&amp;gt;&lt;br/&gt;&amp;lt;/AuthenticationResponse&amp;gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;2. Authentication fails&lt;/p&gt;&lt;pre class="jive-pre"&gt;&amp;lt;?xml version="1.0" encoding="UTF-8" standalone="yes"?&amp;gt;&lt;br/&gt;&amp;lt;AuthenticationResponse xmlns:ns2="http://jivesoftware.com/authentication"&amp;gt;&lt;br/&gt;&lt;code class="jive-code"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;authenticated&amp;gt;false&amp;lt;/authenticated&amp;gt;&lt;br/&gt;&amp;lt;/AuthenticationResponse&amp;gt;&lt;br/&gt;&lt;/code&gt;&lt;/pre&gt;&lt;h4&gt;Additional Recommendations and Considerations&lt;/h4&gt;&lt;ul&gt;&lt;li&gt;We highly recommend using and requiring https for the web service end-point to improve security. When https is used, a valid signed certificate is required from a trusted provider such as Thawte or Verisign.&lt;/li&gt;&lt;li&gt;The web service endpoint must return a reasponse within 2 seconds. If a response is not returned within this period, the end-user will be shown an error message stating that the remote authentication service is not available.&lt;/li&gt;&lt;li&gt;The implementation of the web service must be accessible by Jive servers. Typically this means deploying the web service on a server in the DMZ then using the server's external DNS name when configuring authentication gateway URL within Jive. &lt;/li&gt;&lt;/ul&gt;&lt;h4&gt;Sample Projects&lt;br/&gt;&lt;/h4&gt;&lt;p&gt;&lt;span&gt;There are two attachments to this document for implementations of sample servers. Both of these servers have a sample implementation of user validation logic - if the user name is like &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:%27userN@company.com"&gt;'userN@company.com&lt;/a&gt;&lt;span&gt;' (where N is a number) and the password is 'passN' then the user will be authenticated. You can replace this sample implementation with your own logic.&lt;/span&gt;&lt;/p&gt;&lt;h5&gt;delegatedsso-sample-cxf.tar&lt;/h5&gt;&lt;p&gt;This is a sample Java implementation. It is a Maven project that uses CXF's support for JAX-RS to implement the server.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To get the sample up and running:&lt;/p&gt;&lt;div class="jive-quote"&gt;&lt;p&gt;tar xvf delegated-sample-cxf.tar&lt;/p&gt;&lt;p&gt;cd delegated-sample-cxf&lt;/p&gt;&lt;p&gt;mvn install&lt;/p&gt;&lt;p&gt;mvn jetty:run&lt;/p&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;At this point you can access the webservice at a URL like:&lt;/p&gt;&lt;div class="jive-quote"&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://localhost:8080/delegated-sample-cxf/jiveauth/auth?username=user1@company.com&amp;amp;password=pass1"&gt;http://localhost:8080/delegated-sample-cxf/jiveauth/auth?username=user1@company.com&amp;amp;password=pass1&lt;/a&gt;&lt;a class="jive-link-email-small" href="mailto:8080/delegated-sample-cxf/jiveauth/auth?username=user1@company.com"&gt;8080/delegated-sample-cxf/jiveauth/auth?username=user1@company.com&lt;/a&gt;&lt;span&gt;&amp;amp;password=pass1&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;This project will output a WAR file that can be deployed to your choice of App server.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;You can replace the sample implementation in SampleSSOManager.java with your own implementation. To specify your implementation you can edit the spring configuration in cxf-beans.xml.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h5&gt;delegatedsso.zip&lt;/h5&gt;&lt;p&gt;This is a ASP.Net project solution. After opening the project and running it you can access the sample at a URL like:&lt;/p&gt;&lt;div class="jive-quote"&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://localhost/Auth.asmx/doAuth?username=user2@company.com&amp;amp;password=pass2&amp;amp;sourceip="&gt;http://localhost/Auth.asmx/doAuth?username=user2@company.com&amp;amp;password=pass2&amp;amp;sourceip=&lt;/a&gt;&lt;a class="jive-link-email-small" href="mailto://localhost/Auth.asmx/doAuth?username=user2@company.com"&gt;//localhost/Auth.asmx/doAuth?username=user2@company.com&lt;/a&gt;&lt;span&gt;&amp;amp;password=pass2&amp;amp;sourceip=&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;p&gt;Implementation of sample service is in the Auth.asmx Web Service Code-Behind file Auth.asmx.cs.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:1a4e8b4c-e809-4dc0-830c-f0eef22ec459] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">authentication</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">delegated_sso</category>
      <pubDate>Thu, 03 Sep 2009 17:29:36 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-7357</guid>
      <dc:date>2009-09-03T17:29:36Z</dc:date>
      <clearspace:dateToText>1 month, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Testing REST</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-6511</link>
      <description>&lt;!-- [DocumentBodyStart:525dbbe8-7bc8-422c-8b6a-e27b542f85a5] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Testing REST on SBS is quick and straight forward with the &lt;a class="jive-link-external-small" href="https://addons.mozilla.org/en-US/firefox/addon/9780"&gt;REST Client Firefox Add-on&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Go to your SBS Admin Console and System &amp;gt; Settings &amp;gt; Web Services to enable REST web services.&amp;#160; &lt;em&gt;You will need to &lt;strong&gt;restart&lt;/strong&gt; your server for the settings to take effect.&lt;/em&gt;&lt;br/&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-6511-2-16683/screenshot1.png"&gt;&lt;img alt="screenshot1.png" class="jive-image-thumbnail jive-image" height="406" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-6511-2-16683/620-406/screenshot1.png" width="620"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Read through the &lt;a class="jive-link-external-small" href="../builds/docs/jive_sbs_employee/latest/developer/RestServicesReference.html"&gt;REST Web Services Reference&lt;/a&gt; documentation to find what commands you will need.&lt;/li&gt;&lt;li&gt;Once &lt;a class="jive-link-external-small" href="https://addons.mozilla.org/en-US/firefox/addon/9780"&gt;REST Client&lt;/a&gt; is installed, open it through Tools &amp;gt; REST Client in Firefox.&lt;/li&gt;&lt;li&gt;Log into the appropriate account.&lt;br/&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-6511-2-16684/screenshot3.png"&gt;&lt;img alt="screenshot3.png" class="jive-image" height="267" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-6511-2-16684/533-267/screenshot3.png" width="533"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;li&gt;Fill out the appropriate request.&amp;#160; Put your XML parameters in the Request Body field.&lt;br/&gt; &lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-6511-2-16685/screenshot5.png"&gt;&lt;img alt="screenshot5.png" class="jive-image-thumbnail jive-image" height="445" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-6511-2-16685/620-445/screenshot5.png" width="620"/&gt;&lt;/a&gt;&lt;a href="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/showImage/102-6511-2-16686/screenshot6.png"&gt;&lt;img alt="screenshot6.png" class="jive-image-thumbnail jive-image" height="445" src="http://www.jivesoftware.com/jivespace/servlet/JiveServlet/downloadImage/102-6511-2-16686/620-445/screenshot6.png" width="620"/&gt;&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:525dbbe8-7bc8-422c-8b6a-e27b542f85a5] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">clearspace</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">web_services</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">rest</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">how_to</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">sbs</category>
      <pubDate>Fri, 10 Jul 2009 23:00:52 GMT</pubDate>
      <author>communities@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-6511</guid>
      <dc:date>2009-07-10T23:00:52Z</dc:date>
      <clearspace:dateToText>2 weeks, 4 days ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Displaying a Custom Icon for a Content Type</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-5159</link>
      <description>&lt;!-- [DocumentBodyStart:5f6298c6-15bb-4620-869f-7036c9c2885a] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;p&gt;You can have the application display a different icon for included content types. To do that, you override SkinUtils.getJiveObjectIcon. Include your code where it will execute on application startup, or where it will execute when your plugin is initialized.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;strong&gt;Note:&lt;/strong&gt; If you're building a custom content type, be sure to check out &lt;a class="jive-link-wiki-small" href="http://www.jivesoftware.com/jivespace/docs/DOC-4958"&gt;Content Type Framework&lt;/a&gt; and &lt;a class="jive-link-external-small" href="http://www.jivesoftware.com/builds/docs/jive_sbs_employee/latest/javadoc/api/com/jivesoftware/community/TypeUIProvider.html"&gt;TypeUIProvider&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;To replace an included icon with another, your code should add an icon generator that is associated with the existing content type -- here, a blog post:&lt;/p&gt;&lt;!--[CodeBlockStart:0cfce648-e917-4a41-90de-cf24a89ed796]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;// Override an existing icon
IconGenerator blogpostIG = new IconGenerator() {
&amp;#160;&amp;#160; public String getIcon(JiveObject object, boolean returnAsCssClass, int type) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return &lt;span class="jive-xml-quote"&gt;my-blog-post&lt;/span&gt;;
&amp;#160;&amp;#160; }
};
SkinUtils.addIconGenerator(JiveConstants.BLOGPOST, blogpostIG);
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:0cfce648-e917-4a41-90de-cf24a89ed796]--&gt;&lt;p&gt;When you want to associate an icon with a particular content type, but only when that content type features a particular property and value, check for the property on the JiveObject instance your code receives:&lt;/p&gt;&lt;!--[CodeBlockStart:f9453d2b-dfce-4ce2-a6ef-470667ae138e]--&gt;&lt;pre class="jive-pre"&gt;&lt;code class="jive-code jive-xml"&gt;// Only handle documents with a certain property, otherwise use the default.
IconGenerator documentIG = new IconGenerator() {
&amp;#160;&amp;#160; public String getIcon(JiveObject object, boolean returnAsCssClass, int type) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Document doc = (Document)object;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (doc.getProperties().get(&lt;span class="jive-xml-quote"&gt;my.prop) != null) {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return &lt;/span&gt;my-property";
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else {
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return null;
&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }
&amp;#160;&amp;#160; }
};
SkinUtils.addIconGenerator(JiveConstants.DOCUMENT, documentIG);
&lt;/code&gt;&lt;/pre&gt;&lt;!--[CodeBlockEnd:f9453d2b-dfce-4ce2-a6ef-470667ae138e]--&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5f6298c6-15bb-4620-869f-7036c9c2885a] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">themes</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">front_end</category>
      <pubDate>Thu, 09 Apr 2009 16:45:47 GMT</pubDate>
      <author>steve@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-5159</guid>
      <dc:date>2009-04-09T16:45:47Z</dc:date>
      <clearspace:dateToText>7 months, 2 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Jive SBS 3.0 Admin &amp; Developer Training Course: San Francisco, May 14-15 2009</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-4970</link>
      <description>&lt;!-- [DocumentBodyStart:4f0dcbcf-d894-45a9-a6ea-36d1723bc052] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;h3&gt;Ramp up quickly on Jive SBS 3.0 Administration, Management, and Development&lt;br/&gt;&lt;/h3&gt;&lt;div class="jive-rendered-content"&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="jive-rendered-content"&gt;Learn what's new in version 3.0. Includes 1 Day of User/Admin Training and 1 Day of Developer Training. Computers and software are provided.&lt;/div&gt;&lt;div class="jive-rendered-content"&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="jive-rendered-content"&gt;&lt;span&gt;To sign up, return the attached order form to &lt;/span&gt;&lt;a class="jive-link-email-small" href="mailto:education@jivesoftware.com" target="_blank"&gt;education@jivesoftware.com&lt;/a&gt;&lt;span&gt; or fax to (503) 961-1322.&lt;/span&gt;&lt;br/&gt;&lt;/div&gt;&lt;div class="jive-rendered-content"&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Agenda/Price: (order form and agenda attached below)&lt;br/&gt;&lt;/h4&gt;&lt;p&gt;$1695 for both days&lt;/p&gt;&lt;p&gt;$995 per day if only attending one day (save $295 by attending both days)&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Dates:&lt;/h4&gt;&lt;p&gt;May 14-15, 2009&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Location:&lt;/h4&gt;&lt;p&gt;New Horizons Training Center&lt;/p&gt;&lt;p&gt;160 Pine Street - Suite 530&lt;/p&gt;&lt;p&gt;San Francisco, CA 94111&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.sfnewhorizons.com/AboutUs/HowtoFindUs/SanFranciscoCA/tabid/1506/Default.aspx"&gt;&lt;img alt="new-horizons-sf.jpg" class="jive-image-thumbnail jive-image" height="613" src="https://brewspace.jiveland.com/servlet/JiveServlet/downloadImage/15368/620-613/new-horizons-sf.jpg" width="620"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;h4&gt;Directions:&lt;/h4&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&lt;span class="Normal" id="dnn_ctr2412_HtmlModule_lblContent"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;h2&gt;&lt;span style="font-size: 10pt;"&gt;Driving Directions (see map below)&lt;/span&gt;&lt;br/&gt;&lt;/h2&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;From I-80 Eastbound (San Francisco Airport and Peninsula)&lt;/strong&gt;&lt;br/&gt;1. Take EXIT 2 (4th Street)&lt;br/&gt;2. Slight LEFT at Bryant Street&lt;br/&gt;3. Turn LEFT at 2nd (Second) Street&lt;br/&gt;4. Turn RIGHT at Market Street&lt;br/&gt;5. Turn LEFT at Front Street&lt;br/&gt;6. Turn LEFT at Pine Street&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;From I-80 Westbound (across Bay Bridge)&lt;/strong&gt;&lt;br/&gt;1.&amp;#160; Take the FREMONT STREET exit.&lt;br/&gt;2. Turn LEFT at Fremont Street&lt;br/&gt;3. Continue on Front Street&lt;br/&gt;4. Turn LEFT at Pine Street.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;br/&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;BART (Bay Area Rapid Transit):&lt;/strong&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 1. 1. Take BART to the EMBARCADERO Station (298 Market St.)&lt;br/&gt;2. Walk WEST on Pine Street (towards Front Street)&lt;br/&gt;3. 160 Pine is located on your right&lt;br/&gt;4. New Horizons is located in Suite 530 (5th floor).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;For additional BART directions, see&amp;#160; &lt;a class="jive-link-external-small" href="http://www.bart.gov/"&gt;www.bart.gov&lt;/a&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MUNI (San Francisco Municipal Transportation Agency):&lt;/strong&gt;&lt;br/&gt; Note: The N, L, M, K, T, and J lines intersect this station.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; 1. Take the light rail to EMBARCADERO Station, which is a BART station.&lt;br/&gt;&amp;#160;&amp;#160;&amp;#160; 2. Follow the directions above from Embarcadero Station.&lt;/p&gt;&lt;/div&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="jive-rendered-content"&gt; &lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:4f0dcbcf-d894-45a9-a6ea-36d1723bc052] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">training</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">education</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">san_francisco</category>
      <pubDate>Wed, 25 Mar 2009 20:29:21 GMT</pubDate>
      <author>rick@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-4970</guid>
      <dc:date>2009-03-25T20:29:21Z</dc:date>
      <clearspace:dateToText>7 months, 4 weeks ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Jive SBS 3.0 Admin &amp; Developer Training Course - Portland, May 5-6 2009</title>
      <link>http://www.jivesoftware.com/jivespace/docs/DOC-4969</link>
      <description>&lt;!-- [DocumentBodyStart:bb0ee564-0153-4b3b-956f-db4760ea42bd] --&gt;&lt;div class='jive-rendered-content'&gt;&lt;div class="jive-rendered-content"&gt;&lt;h3&gt;Ramp up quickly on Jive SBS 3.0 Administration, Management, and Development&lt;/h3&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;1 Day User/Admin Training&lt;/p&gt;&lt;p&gt;1 Day Developer Training&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Agenda/Price: (order form and agenda attached below)&lt;br/&gt;&lt;/h4&gt;&lt;p&gt;$1695 for both days&lt;/p&gt;&lt;p&gt;$995 per day if only attending one day (save $295 by attending both days)&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Dates:&lt;/h4&gt;&lt;p&gt;May 5-6, 2009&lt;/p&gt;&lt;p style="padding: 0px; min- "&gt;&lt;/p&gt;&lt;h4&gt;Location:&lt;/h4&gt;&lt;p&gt;Jive Software, Inc - Training Room&lt;/p&gt;&lt;p&gt;915 SW Stark St. - Suite 400&lt;br/&gt; Portland, OR 97205&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=jive+software&amp;amp;sll=37.0625,-95.677068&amp;amp;sspn=45.014453,81.210938&amp;amp;ie=UTF8&amp;amp;ll=45.522668,-122.679927&amp;amp;spn=0.004886,0.009913&amp;amp;t=h&amp;amp;z=17&amp;amp;iwloc=A"&gt;&lt;img alt="http://www.jivesoftware.com/files/images/about/map.jpg" border="0" class="jive-image" src="http://www.jivesoftware.com/files/images/about/map.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:bb0ee564-0153-4b3b-956f-db4760ea42bd] --&gt;</description>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">portland</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">training</category>
      <category domain="http://www.jivesoftware.com/jivespace/tags?containerType=?14&amp;container=2068">education</category>
      <pubDate>Wed, 25 Mar 2009 20:23:49 GMT</pubDate>
      <author>rick@jivesoftware.com</author>
      <guid>http://www.jivesoftware.com/jivespace/docs/DOC-4969</guid>
      <dc:date>2009-03-25T20:23:49Z</dc:date>
      <clearspace:dateToText>8 months, 1 day ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

