<?xml version="1.0" encoding="UTF-8"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at

 http://www.apache.org/licenses/LICENSE-2.0

 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<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.buildtools</groupId>
        <artifactId>myfaces-plugin-parent</artifactId>
        <version>1.0.5</version>
        <relativePath>../myfaces-plugin-parent/pom.xml</relativePath>
    </parent>

    <groupId>org.apache.myfaces.buildtools</groupId>
    <artifactId>myfaces-jsdoc-plugin</artifactId>
    <version>1.0-beta-2-SNAPSHOT</version>
    <packaging>maven-plugin</packaging>
    <name>Apache MyFaces Buildtools Maven2 Javascript Documentation Plugin</name>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-jsdoc-plugin</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-jsdoc-plugin</developerConnection>
        <url>http://svn.apache.org/viewvc/myfaces/myfaces-build-tools/trunk/maven2-plugins/myfaces-jsdoc-plugin</url>
    </scm>

    <properties>
      <mavenVersion>2.0.9</mavenVersion>
      <doxiaVersion>1.0</doxiaVersion>
      <doxia-sitetoolsVersion>1.0</doxia-sitetoolsVersion>
      <!-- 
      <wagonVersion>1.0-beta-6</wagonVersion>
      <sitePluginVersion>2.2</sitePluginVersion>
      <projectInfoReportsPluginVersion>2.3.1</projectInfoReportsPluginVersion>
       -->
    </properties>
  
    <build>
        <plugins>
            <plugin>
              <artifactId>maven-compiler-plugin</artifactId>
              <version>2.0.2</version>
              <inherited>true</inherited>
              <configuration>
                <source>1.5</source>
                <target>1.5</target>
              </configuration>
            </plugin>
        </plugins>
    </build>
    <dependencies>

        <dependency>
          <groupId>org.apache.maven</groupId>
          <artifactId>maven-model</artifactId>
          <version>${mavenVersion}</version>
        </dependency>
    
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-archiver</artifactId>
            <version>2.3</version>
        </dependency>
        
        <dependency>
          <groupId>org.apache.maven.reporting</groupId>
          <artifactId>maven-reporting-api</artifactId>
          <version>3.0</version>
        </dependency>
        
        <dependency>
          <groupId>org.codehaus.plexus</groupId>
          <artifactId>plexus-utils</artifactId>
          <version>1.5.8</version>
        </dependency>
    
        <!-- Doxia -->
        <dependency>
          <groupId>org.apache.maven.doxia</groupId>
          <artifactId>doxia-sink-api</artifactId>
          <version>${doxiaVersion}</version>
        </dependency>
    
        <!-- Doxia-sitetools -->
        <dependency>
          <groupId>org.apache.maven.doxia</groupId>
          <artifactId>doxia-site-renderer</artifactId>
          <version>${doxia-sitetoolsVersion}</version>
        </dependency>
    
        <dependency>
            <groupId>rhino</groupId>
            <artifactId>js</artifactId>
            <version>1.7R1</version>
        </dependency>

        <!-- note jsdoc throws a lot of warnings
        which will be gone in 2.4 -->
        <dependency>
            <groupId>org.jsdoctoolkit</groupId>
            <artifactId>jsdoc</artifactId>
            <version>2.1.0</version>
        </dependency>

        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.4</version>
        </dependency>
        
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.4</version>
        </dependency>

        <!-- we have to add the stax api just in case
        we are on an older build system -->
        <dependency>
            <groupId>stax</groupId>
            <artifactId>stax</artifactId>
            <version>1.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>2.2.1</version>
        </dependency>
    </dependencies>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-plugin-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </reporting>

</project>