<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.apache.myfaces</groupId>
    <artifactId>myfaces</artifactId>
    <version>3</version>
  </parent>
  <groupId>org.apache.myfaces.tobago</groupId>
  <artifactId>tobago</artifactId>
  <packaging>pom</packaging>
  <name>Apache Tobago</name>
  <version>1.0.15</version>
  <description>The goal of Tobago is to provide the community with a well designed set of user interface components based on JSF and run on MyFaces.</description>
  <prerequisites>
    <maven>2.0.6</maven>
  </prerequisites>
  <url>http://myfaces.apache.org/tobago</url>
  <inceptionYear>2002</inceptionYear>
  <issueManagement>
    <system>jira</system>
    <url>http://issues.apache.org/jira/secure/BrowseProject.jspa?id=12310273</url>
  </issueManagement>
  <ciManagement>
    <system>continuum</system>
    <url>http://myfaces.zones.apache.org:8080/continuum</url>
    <notifiers>
      <notifier>
        <type>mail</type>
        <configuration>
          <address>commits@myfaces.apache.org</address>
        </configuration>
      </notifier>
    </notifiers>
  </ciManagement>
  <mailingLists>
    <mailingList>
      <name>Myfaces User List (use [Tobago] prefix)</name>
      <subscribe>users-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post to users@myfaces.apache.org unless subscribed</post>
      <archive>http://mail-archives.apache.org/mod_mbox/myfaces-users</archive>
      <otherArchives>
        <otherArchive>http://www.mail-archive.com/users@myfaces.apache.org/</otherArchive>
        <otherArchive>http://www.nabble.com/MyFaces---Users-f181.html</otherArchive>
        <otherArchive>http://users.myfaces.markmail.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Developer List (use [Tobago] prefix)</name>
      <subscribe>dev-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post to dev@myfaces.apache.org unless subscribed</post>
      <archive>http://mail-archives.apache.org/mod_mbox/myfaces-dev</archive>
      <otherArchives>
        <otherArchive>http://www.mail-archive.com/dev@myfaces.apache.org/</otherArchive>
        <otherArchive>http://www.nabble.com/My-Faces---Dev-f182.html</otherArchive>
        <otherArchive>http://dev.myfaces.markmail.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Commits List</name>
      <subscribe>commits-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>commits-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>http://mail-archives.apache.org/mod_mbox/myfaces-commits</archive>
      <otherArchives>
        <otherArchive>http://commits.myfaces.markmail.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Notifications List</name>
      <subscribe>notifications-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>notifications-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>http://mail-archives.apache.org/mod_mbox/myfaces-notifications</archive>
      <otherArchives>
        <otherArchive>http://notifications.myfaces.markmail.org/</otherArchive>
      </otherArchives>
    </mailingList>
    <mailingList>
      <name>Myfaces Announcements List</name>
      <subscribe>announce-subscribe@myfaces.apache.org</subscribe>
      <unsubscribe>announce-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post</post>
      <archive>http://mail-archives.apache.org/mod_mbox/myfaces-announce</archive>
    </mailingList>
    <mailingList>
      <name>Myfaces Private (PMC) List</name>
      <subscribe>only for MyFaces PMC members</subscribe>
      <unsubscribe>private-unsubscribe@myfaces.apache.org</unsubscribe>
      <post>do not post unless you need to contact PMC on issues not meant for public</post>
    </mailingList>
  </mailingLists>

  <reporting>
    <excludeDefaults>true</excludeDefaults>
    <plugins>

      <!--<plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>simian-report-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
        <configuration>
          <minimumThreshold>2</minimumThreshold>
        </configuration>
      </plugin>
      -->
      <!--plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
      </plugin-->

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
        <configuration>
          <tags>
            <tag>TODO</tag>
            <tag>FIXME</tag>
            <tag>XXX</tag>
            <tag>@deprecated</tag>
          </tags>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>2.1</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <configuration>
          <configLocation>
            http://svn.apache.org/repos/asf/myfaces/maven/trunk/build-tools/src/main/resources/org/apache/myfaces/tobago/checkstyle.xml
          </configLocation>
          <headerLocation>
            http://svn.apache.org/repos/asf/myfaces/maven/trunk/build-tools/src/main/resources/org/apache/myfaces/tobago/checkstyle-header.txt
          </headerLocation>
          <xrefLocation>xref</xrefLocation>
          <excludes>**/package-info.java</excludes>
          <sourceEncoding>utf-8</sourceEncoding>
          <minimumTokens>100</minimumTokens>
          <targetJdk>1.5</targetJdk>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <!--aggregate>true</aggregate-->
          <linksource>true</linksource>
          <breakiterator>true</breakiterator>
          <quiet>true</quiet>
          <verbose>false</verbose>
          <source>1.5</source>
          <charset>UTF-8</charset>
          <links>
            <link>http://java.sun.com/j2se/1.5.0/docs/api</link>
            <link>http://java.sun.com/j2ee/1.4/docs/api</link>
            <link>http://java.sun.com/javaee/javaserverfaces/1.1_01/docs/api</link>
            <link>http://jakarta.apache.org/commons/collections/api-${commons-collection.version}/</link>
            <link>http://jakarta.apache.org/commons/lang/api-${common-lang.version}/</link>
            <link>http://jakarta.apache.org/commons/fileupload/apidocs</link>
            <link>http://jakarta.apache.org/commons/digester/commons-digester-${commons-digester.version}/docs/api/
            </link>
            <link>http://jakarta.apache.org/commons/io/api-${common-io.version}/</link>
            <link>http://jakarta.apache.org/commons/logging/commons-logging-${commons-logging.version}/apidocs/</link>
            <link>http://www.junit.org/junit/javadoc/</link>
            <link>http://logging.apache.org/log4j/docs/api/</link>
          </links>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <configuration>
          <aggregate>true</aggregate>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
      </plugin>

      <!--plugin>
        <inherited>false</inherited>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-changes-plugin</artifactId>
        <version>2.0-beta-2</version>
        <reportSets>
          <reportSet>
            <configuration>
              <statusIds>Open,In Progress,Reopened</statusIds>
            </configuration>
            <reports>
              <report>jira-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin-->

      <plugin>
        <inherited>false</inherited>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changelog-maven-plugin</artifactId>
        <configuration>
          <basedir>${basedir}</basedir>
        </configuration>
      </plugin>

      <!--
            <plugin>
              <inherited>false</inherited>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-doap-plugin</artifactId>
              <configuration>
                <category>web-framework</category>
                <language>Java</language>
                <shortdesc>Set of user interface components based on JSF.</shortdesc>
                <pmc>http://myfaces.apache.org</pmc>
              </configuration>
            </plugin>
      -->

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>clirr-maven-plugin</artifactId>
        <configuration>
          <minSeverity>info</minSeverity>
          <excludes>
            <exclude>org/apache/myfaces/tobago/example/**</exclude>
          </excludes>
        </configuration>
      </plugin>

      <!-- pmd has problems with annotations -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
          <rulesets>
            <ruleset>/rulesets/basic.xml</ruleset>
            <ruleset>/rulesets/unusedcode.xml</ruleset>
            <ruleset>/rulesets/imports.xml</ruleset>
            <ruleset>/rulesets/design.xml</ruleset>
            <ruleset>/rulesets/optimizations.xml</ruleset>
            <ruleset>/rulesets/favorites.xml</ruleset>
            <ruleset>/rulesets/coupling.xml</ruleset>
          </rulesets>
          <excludes>
            <exclude>**/package-info.java</exclude>
            <exclude>org/apache/myfaces/tobago/apt/annotation/*.java</exclude>
          </excludes>
          <encoding>UTF-8</encoding>
          <linkXref>true</linkXref>
          <targetJdk>1.5</targetJdk>
        </configuration>
      </plugin>

      <!-- TODO test dashboard plugin
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>dashboard-maven-plugin</artifactId>
        <version>1.0-SNAPSHOT</version>
      </plugin> -->

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>findbugs-maven-plugin</artifactId>
        <version>1.1.1</version>
        <configuration>
          <threshold>Low</threshold>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jdepend-maven-plugin</artifactId>
        <version>2.0-beta-1</version>
      </plugin>

      <!-- http://jira.codehaus.org/browse/MJNCSS-4
           JavaNCSS still has problems with annotations for local variables -->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>javancss-maven-plugin</artifactId>
        <version>2.0-beta-2</version>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>rat-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>2.0-alpha-4</version>
	      <reportSets>
	        <reportSet>
	          <reports>
              <report>analyze-report</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>

    </plugins>

  </reporting>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${common-io.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-lang</groupId>
        <artifactId>commons-lang</artifactId>
        <version>${common-lang.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>1.7.0</version>
      </dependency>
      <dependency>
        <groupId>commons-collections</groupId>
        <artifactId>commons-collections</artifactId>
        <version>${commons-collection.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-digester</groupId>
        <artifactId>commons-digester</artifactId>
        <version>${commons-digester.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.2</version>
      </dependency>
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.4</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.0</version>
        <exclusions>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>taglibs</groupId>
        <artifactId>standard</artifactId>
        <version>1.1.2</version>
      </dependency>
      <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-api</artifactId>
        <version>${myfaces.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.myfaces.core</groupId>
        <artifactId>myfaces-impl</artifactId>
        <version>${myfaces.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>${sunjsf.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>${sunjsf.version}</version>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>servlet-api</artifactId>
        <version>2.3</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>portlet-api</groupId>
        <artifactId>portlet-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>net.sf.retrotranslator</groupId>
        <artifactId>retrotranslator-runtime</artifactId>
        <optional>true</optional>
        <scope>provided</scope>
        <version>1.2.1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
    </dependency>

  </dependencies>

  <scm>

    <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago-1.0.15</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago-1.0.15</developerConnection>
    <url>http://svn.apache.org/viewvc/myfaces/tobago/tags/tobago-1.0.15</url>

  </scm>

  <organization>
    <name>Apache Software Foundation</name>
    <url>http://www.apache.org/</url>
  </organization>

  <build>
    <defaultGoal>install</defaultGoal>
    <plugins>
      <!--plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>1.0-alpha-3</version>
        <executions>
          <execution>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requirePluginVersions>
                   <message>Best Practice is to always define plugin versions!</message>
                   <banLatest>true</banLatest>
                   <banRelease>true</banRelease>
                </requirePluginVersions>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>cobertura-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>clean</id>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <configuration>
          <tagBase>https://svn.apache.org/repos/asf/myfaces/tobago/tags</tagBase>
        </configuration>
      </plugin>
    </plugins>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.1</version>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
              <manifestEntries>
                <Revision>${scm.revision}</Revision>
              </manifestEntries>
              <manifestSections>
                <manifestSection>
                  <name>${project.artifactId}</name>
                  <manifestEntries>
                    <Implementation-Vendor>${project.organization.name}</Implementation-Vendor>
                    <Implementation-Version>${project.version}</Implementation-Version>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven2-plugin</artifactId>
          <version>0.3.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>retrotranslator-maven-plugin</artifactId>
          <version>1.0-alpha-2</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>2.0.2</version>
          <configuration>
            <source>1.5</source>
            <target>1.5</target>
            <encoding>UTF-8</encoding>
            <showWarnings>true</showWarnings>
            <!-- <compilerArgument>-Xlint:all,-serial,-fallthrough</compilerArgument>-->
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-idea-plugin</artifactId>
          <configuration>
            <jdkName>1.5</jdkName>
            <linkModules>true</linkModules>
            <downloadSources>true</downloadSources>
            <jdkLevel>5.0</jdkLevel>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.0-alpha-4</version>
        </plugin>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
          <version>${jetty.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>tomcat-maven-plugin</artifactId>
          <version>1.0-alpha-1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.3</version>
          <configuration>
            <!--childDelegation>false</childDelegation>
            <forkMode>perTest</forkMode>
            <argLine>-Xdebug -Xnoagent -Djava.compiler=NONE
            -Xrunjdwp:transport=dt_socket,address=2111,server=y,suspend=y</argLine-->
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <configuration>
            <failOnError>false</failOnError>
            <minSeverity>info</minSeverity>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>

  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <modules>
    <module>tobago-tool</module>
    <module>core</module>
    <module>theme</module>
  </modules>

  <distributionManagement>
    <repository>
      <id>apache-maven</id>
      <name>Apache Maven Repository</name>
      <url>scpexe://minotaur.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url>
    </repository>
    <snapshotRepository>
      <uniqueVersion>false</uniqueVersion>
      <id>apache-maven-snapshots</id>
      <name>Apache Maven Snapshot Repository</name>
      <url>scpexe://minotaur.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
    </snapshotRepository>
    <site>
      <id>apache-site</id>
      <url>scpexe://minotaur.apache.org/www/myfaces.apache.org/tobago/</url>
    </site>
  </distributionManagement>

  <profiles>
    <profile>
      <id>all-modules</id>
      <modules>
        <module>example</module>
        <module>extension</module>
        <module>tobago-assembly</module>
        <module>sandbox</module>
      </modules>
    </profile>
    <profile>
      <id>generate-assembly</id>
      <modules>
        <module>extension</module>
        <module>example</module>
        <module>tobago-assembly</module>
        <module>sandbox</module>
      </modules>
    </profile>
    <profile>
      <id>jdk14retro</id>
    </profile>
    <!-- START SNIPPET: staging-profile -->
    <profile>
      <id>staging</id>
      <build>
        <plugins>
          <!-- We want to deploy the artifact to a staging location for perusal
           mvn -Pstaging -Ddeploy.altRepository=scpexe://minotaur.apache.org/www/people.apache.org/builds/myfaces/m2-staging-repository

           with the release plugin add following profile to your settings.xml
           <profile>
             <id>staging</id>
             <properties>
               <deploy.altRepository>apache.releases::default::scpexe://minotaur.apache.org/www/people.apache.org/builds/myfaces/tobago/m2-staging-repository</deploy.altRepository>
             </properties>
           </profile>
          -->
          <plugin>
            <inherited>true</inherited>
            <artifactId>maven-deploy-plugin</artifactId>
            <version>2.3</version>
            <configuration>
              <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
              <updateReleaseInfo>true</updateReleaseInfo>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- END SNIPPET: staging-profile -->
    <!-- START SNIPPET: release-profile -->
    <profile>
      <id>release</id>
      <!--
      NOTE: To use you need to enable this profile and pass in the passphrase:
           mvn -Prelease -Dpassphrase=thephrase

           with the release plugin add following profile to your settings.xml
           <profile>
             <id>release</id>
             <properties>
               <gpg.passphrase>thephrase</gpg.passphrase>
             </properties>
           </profile>
       -->
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <configuration>
              <passphrase>${gpg.passphrase}</passphrase>
            </configuration>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
            <version>2.0.2</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>2.2</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-scm-plugin</artifactId>
            <executions>
              <execution>
                <phase>validate</phase>
                <id>getting-scm.revision</id>
                <goals>
                  <goal>update</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <modules>
        <module>extension</module>
        <module>example</module>
        <module>sandbox</module>
      </modules>
    </profile>
    <!-- END SNIPPET: release-profile -->
    <profile>
      <id>mojodocbook</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>make-directory</id>
                <phase>package</phase>
                <configuration>
                  <tasks>
                    <mkdir dir="${project.build.directory}/site/docbook" />
                  </tasks>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
              <execution>
                <id>move-images</id>
                <phase>install</phase>
                <configuration>
                  <tasks>
                    <mkdir dir="${project.build.directory}/site/docbook/resources" />
                    <copy verbose="true" todir="${project.build.directory}/site/docbook/resources">
                      <fileset dir="${project.build.directory}/site/docbook">
                        <include name="*.png" />
                      </fileset>
                    </copy>
                  </tasks>
                </configuration>
                <goals>
                  <goal>run</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>docbook-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>docbook-mojo</id>
                <phase>package</phase>
                <goals>
                  <goal>transform</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jdocbook</id>
      <pluginRepositories>
        <pluginRepository>
          <id>jboss</id>
          <url>http://repository.jboss.com/maven2</url>
        </pluginRepository>
      </pluginRepositories>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <phase>process-resources</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <tasks>
                    <copy todir="${project.build.directory}/staging/images/resources">
                      <fileset dir="${basedir}/src/docbook/resources" />
                    </copy>
                  </tasks>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.jboss.maven.plugins</groupId>
            <artifactId>maven-jdocbook-plugin</artifactId>
            <extensions>true</extensions>
            <executions>
              <execution>
                <id>jdocbook:generate</id>
                <phase>compile</phase>
                <goals>
                  <goal>generate</goal>
                </goals>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-docbook-xslt</artifactId>
                <version>0.1</version>
              </dependency>
            </dependencies>
            <configuration>
              <sourceDirectory>${basedir}/src/docbook</sourceDirectory>
              <imagesDirectory>${basedir}/src/docbook/resources</imagesDirectory>
              <sourceDocumentName>tobago-tutorial.xml</sourceDocumentName>
              <formats>
                <format>
                  <formatName>pdf</formatName>
                  <stylesheetResource>classpath:/standard/fopdf.xsl</stylesheetResource>
                </format>
                <format>
                  <formatName>html</formatName>
                  <stylesheetResource>classpath:/standard/html.xsl</stylesheetResource>
                </format>
              </formats>
              <options><!-- missing -> NPE -->
                <xincludeSupported>false</xincludeSupported>
              </options>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>docbook-profile</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.agilejava.docbkx</groupId>
            <artifactId>docbkx-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>build-pdf-doc</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>generate-pdf</goal>
                </goals>
                <configuration>
                  <sourceDirectory>${docbook.source}</sourceDirectory>
                  <targetDirectory>${docbook.target}</targetDirectory>
                  <includes>tobago-tutorial.xml</includes>
                </configuration>
              </execution>
              <execution>
                <id>build-chunked-doc</id>
                <phase>process-resources</phase>
                <goals>
                  <goal>generate-html</goal>
                </goals>
                <configuration>
                  <sourceDirectory>${docbook.source}</sourceDirectory>
                  <targetDirectory>${docbook.target}</targetDirectory>
                  <includes>tobago-tutorial.xml</includes>
                  <chunkedOutput>true</chunkedOutput>
                  <chunkQuietly>false</chunkQuietly>
                  <postProcess>
                    <mkdir dir="${docbook.target}/resources" />
                    <copy todir="${docbook.target}/resources">
                      <fileset dir="${docbook.source}/resources">
                        <include name="*.png" />
                      </fileset>
                    </copy>
                  </postProcess>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <groupId>org.docbook</groupId>
                <artifactId>docbook-xml</artifactId>
                <version>4.4</version>
                <scope>runtime</scope>
              </dependency>
            </dependencies>
          </plugin>
        </plugins>
      </build>
      <pluginRepositories>
        <pluginRepository>
          <id>agilejava</id>
          <name>Agilejava repository (Docbook plugin)</name>
          <url>http://agilejava.com/maven</url>
        </pluginRepository>
      </pluginRepositories>
      <properties>
        <docbook.source>${project.basedir}/src/docbook</docbook.source>
        <docbook.target>${project.basedir}/target/docbook2</docbook.target>
        <docbook.version>1.67.2</docbook.version>
      </properties>
    </profile>

    <!--name of the runtime classes file-->
    <profile>
      <id>rt.jar</id>
      <activation>
        <os>
          <family>!mac</family>
        </os>
      </activation>
      <properties>
        <java.classes.jar>lib/rt.jar</java.classes.jar>
      </properties>
    </profile>
    <profile>
      <id>classes.jar</id>
      <activation>
        <os>
          <family>mac</family>
        </os>
      </activation>
      <properties>
        <java.classes.jar>../Classes/classes.jar</java.classes.jar>
      </properties>
    </profile>
  </profiles>

  <repositories>
    <repository>
      <!-- apache snapshot repository should be disabled -->
      <id>apache.snapshots</id>
      <name>Apache Snapshot Repository</name>
      <url>http://people.apache.org/repo/m2-snapshot-repository</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
        <updatePolicy>never</updatePolicy>
      </snapshots>
    </repository>
  </repositories>

  <properties>
    <myfaces.version>1.1.5</myfaces.version>
    <myfaces12.version>1.2.0</myfaces12.version>
    <sunjsf.version>1.1_02</sunjsf.version>
    <sunjsf12.version>1.2_04-p02</sunjsf12.version>
    <facelets.version>1.1.14</facelets.version>
    <jetty.version>6.1.6</jetty.version>
    <common-io.version>1.1</common-io.version>
    <common-lang.version>2.1</common-lang.version>
    <commons-logging.version>1.1</commons-logging.version>
    <commons-digester.version>1.8</commons-digester.version>
    <commons-collection.version>3.1</commons-collection.version>
  </properties>
</project>