<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>com.atlassian.jira</groupId>
    <artifactId>jira-rest</artifactId>
    <version>5.2.1</version>
  </parent>
  <artifactId>jira-rest-plugin</artifactId>
  <name>Atlassian JIRA - Plugins - REST Plugin</name>
  <description>Provides a REST interface for JIRA</description>
  <packaging>jar</packaging>
  <properties>
    <atlassian.plugin.key>com.atlassian.jira.rest</atlassian.plugin.key>
    <xsl.directory>${project.build.directory}/xsl</xsl.directory>
    <restdoc.directory>${project.build.directory}/restapi</restdoc.directory>
  </properties>
  <build>
    <plugins>
      <plugin>
        <groupId>org.twdata.maven</groupId>
        <artifactId>maven-cli-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
          <executions>
            <execution>
              <id>create-bundle</id>
              <phase>package</phase>
              <goals>
                <goal>bundle</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <instructions>
              <Include-Resource>
                 {maven-resources};
                 ${project.build.outputDirectory}/resourcedoc.xml;
                 ${xsl.directory}/application-grammars.xml;
                 ${xsl.directory}/application-doc.xml;
              </Include-Resource>
              <Import-Package>javax.xml.bind*;version="2.1.0",*</Import-Package>
              <Export-Package>
                 com.atlassian.jira.rest.api.*;version="${pom.version}",
                 com.atlassian.jira.rest.v1.*;version="${pom.version}",
                 com.atlassian.jira.rest.v2.*;version="${pom.version}"
              </Export-Package>
              <DynamicImport-Package>org.springframework.*,org.aopalliance.*</DynamicImport-Package>
            </instructions>
          </configuration>
      </plugin> 
      <!-- ADDED FOR E-WADL IN REST BROWSER, generates application-doc.xml, application-grammars.xml and resourcedoc.xml. 
           See https://jdog.atlassian.com/browse/JRADEV-8942 -->
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <version>2.4.3</version>
        <executions>
          <execution>
            <id>copy-xsl-resources</id>
            <phase>validate</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <outputDirectory>${xsl.directory}</outputDirectory>
              <resources>
                <resource>
                  <directory>${basedir}/src/main/doc</directory>
                  <filtering>true</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <version>1.7</version>
        <executions>
          <execution>
            <id>schemaGen-plugin-description</id>
            <phase>process-classes</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <tasks>
                <javadoc access="public" sourcepath="${project.build.sourceDirectory}" maxmemory="1024m" failonerror="true" useexternalfile="yes">
                  <package name="com.atlassian.jira.rest.auth." />
                  <package name="com.atlassian.jira.rest.v2." />
                  <!-- Uncomment this line to enable remote debugging. <arg line="-J-Xdebug -J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005" />-->
                  <classpath>
                    <path refid="maven.compile.classpath" />
                    <pathelement location="${project.build.outputDirectory}" />
                  </classpath>
                  <doclet name="com.sun.jersey.wadl.resourcedoc.ResourceDocletJSON">
                    <path>
                      <path refid="maven.plugin.classpath" />
                      <path refid="maven.compile.classpath" />
                      <path refid="maven.runtime.classpath" />
                      <pathelement location="${project.build.outputDirectory}" />
                    </path>
                    <param name="-output" value="${project.build.outputDirectory}/resourcedoc.xml" />
                    <param name="-expand" value="attachments,fields,comments.list,watchers.list,worklogs,groups,names,schema" />
                  </doclet>
                </javadoc>
                <copy file="${project.build.outputDirectory}/resourcedoc.xml" tofile="${restdoc.directory}/resourcedoc.xml" />
              </tasks>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <!-- END E-WADL -->
    </plugins>
  </build>

  <profiles>
    <profile>
      <id>create-rest-apidocs</id>
      <activation>
        <activeByDefault>false</activeByDefault>
        <property>
          <name>jira.generateDocs</name>
        </property>
      </activation>
        <build>
          <plugins>
            <plugin>
              <groupId>com.sun.jersey.contribs</groupId>
              <artifactId>maven-wadl-plugin</artifactId>
              <version>1.8</version>
              <executions>
                <execution>
                  <id>generate</id>
                  <goals>
                    <goal>generate</goal>
                  </goals>
                  <phase>prepare-package</phase>
                </execution>
              </executions>
              <configuration>
                <wadlFile>${restdoc.directory}/jira-rest-plugin.wadl</wadlFile>
                <formatWadlFile>true</formatWadlFile>
                <baseUri>http://example.com:8080/jira/rest/</baseUri>
                <packagesResourceConfig>
                  <param>com.atlassian.jira.rest.auth</param>
                  <param>com.atlassian.jira.rest.v2</param>
                </packagesResourceConfig>
                <wadlGenerators>
                  <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorApplicationDoc</className>
                    <properties>
                      <property>
                        <name>applicationDocsFile</name>
                        <value>${xsl.directory}/application-doc.xml</value>
                      </property>
                    </properties>
                  </wadlGeneratorDescription>
                  <wadlGeneratorDescription>
                    <className>com.sun.jersey.server.wadl.generators.WadlGeneratorGrammarsSupport</className>
                    <properties>
                      <property>
                        <name>grammarsFile</name>
                        <value>${xsl.directory}/application-grammars.xml</value>
                      </property>
                    </properties>
                  </wadlGeneratorDescription>
                  <wadlGeneratorDescription>
                    <className>com.atlassian.plugins.rest.doclet.generators.resourcedoc.AtlassianWadlGeneratorResourceDocSupport</className>
                    <properties>
                      <property>
                        <name>resourceDocFile</name>
                        <value>${restdoc.directory}/resourcedoc.xml</value>
                      </property>
                    </properties>
                  </wadlGeneratorDescription>
                </wadlGenerators>
              </configuration>
            </plugin>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>exec-maven-plugin</artifactId>
              <version>1.2</version>
              <executions>
                <execution>
                  <id>exec-xsltproc</id>
                  <goals>
                    <goal>exec</goal>
                  </goals>
                  <phase>package</phase>
                  <configuration>
                    <executable>xsltproc</executable>
                    <commandlineArgs>-o ${restdoc.directory}/index.html ${xsl.directory}/wadl-documentation.xsl ${restdoc.directory}/jira-rest-plugin.wadl</commandlineArgs>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <artifactId>maven-resources-plugin</artifactId>
              <version>2.4.3</version>
              <executions>
                <execution>
                  <id>copy-js-resources</id>
                  <phase>validate</phase>
                  <goals>
                    <goal>copy-resources</goal>
                  </goals>
                  <configuration>
                    <outputDirectory>${restdoc.directory}</outputDirectory>
                    <resources>
                      <resource>
                        <directory>src/main/js</directory>
                        <filtering>true</filtering>
                      </resource>
                    </resources>
                  </configuration>
                </execution>
              </executions>
            </plugin>
            <plugin>
              <artifactId>maven-assembly-plugin</artifactId>
              <executions>
                <execution>
                  <id>create-api-zip</id>
                  <phase>package</phase>
                  <goals>
                    <goal>single</goal>
                  </goals>
                  <configuration>
                    <descriptors>
                      <descriptor>src/main/assembly/api.xml</descriptor>
                    </descriptors>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </build>
    </profile>
  </profiles>

  <dependencies>
      <dependency>
          <groupId>com.atlassian.jira</groupId>
          <artifactId>jira-core</artifactId>
          <scope>provided</scope>
      </dependency>
    <dependency>
      <groupId>com.atlassian.jira</groupId>
      <artifactId>jira-rest-api</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>com.atlassian.plugins.rest</groupId>
      <artifactId>atlassian-rest-common</artifactId>
    </dependency>
    <!-- HACK: this shoud be pulled in by com.sun.jersey:jersey-server:jar:1.8-atlassian-6, but isn't. -->
    <dependency>
      <groupId>com.sun.jersey</groupId>
      <artifactId>jersey-core</artifactId>
    </dependency>
    <dependency>
      <!-- for some obscure reason it needs to be a module dep and not just a dep of the antrun plugin (ask Min'an) -->
      <groupId>com.atlassian.plugins.rest</groupId>
      <artifactId>atlassian-rest-doclet</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.ws.rs</groupId>
      <artifactId>jsr311-api</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.xml.bind</groupId>
      <artifactId>jaxb-api</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
    </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <scope>provided</scope>
      </dependency>
    <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-tests</artifactId>
        <scope>test</scope>
    </dependency>
  </dependencies>
</project>
