<?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.tobago</groupId>
    <artifactId>tobago-extension</artifactId>
    <version>1.5.11</version>
  </parent>
  <artifactId>tobago-taglib-extension</artifactId>
  <packaging>jar</packaging>
  <name>Tobago Taglib Extension</name>
  <description>Contains the Tobago extension tags (tx).</description>

  <build>
    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <execution>
          <id>unpack-sources</id>
          <phase>generate-sources</phase>
          <goals><goal>unpack</goal></goals>
          <configuration>
            <artifactItems>
              <artifactItem>
                <groupId>org.apache.myfaces.tobago</groupId>
                <artifactId>tobago-core</artifactId>
                <version>${project.version}</version>
                <type>jar</type>
                <classifier>sources</classifier>
                <includes>org/apache/myfaces/tobago/internal/taglib/declaration/**/*.java,org/apache/myfaces/tobago/internal/taglib/component/**/*.java</includes>
              </artifactItem>
            </artifactItems>
            <outputDirectory>${project.build.directory}/tobago-core-sources</outputDirectory>
          </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${maven.compile.source}</source>
          <target>${maven.compile.target}</target>
          <encoding>${maven.compile.encoding}</encoding>
          <showWarnings>true</showWarnings>
          <excludes>
            <exclude>org/apache/myfaces/tobago/internal/taglib/component/*</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>apt-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>tobago-tlds</id>
            <goals><goal>process</goal></goals>
            <phase>compile</phase>
            <configuration>
              <outputFiles>
                <outputFile>org/apache/myfaces/tobago/internal/taglib/extension/tobago-extension.tld</outputFile>
              </outputFiles>
              <excludes>
                <exclude>org/apache/myfaces/tobago/internal/taglib/component/*</exclude>
              </excludes>
              <additionalSourceRoots>
                <additionalSourceRoot>${project.build.directory}/tobago-core-sources</additionalSourceRoot>
              </additionalSourceRoots>
              <resourceTargetPath>META-INF</resourceTargetPath>
              <sourceOutputDirectory>${project.build.directory}/generated-tld</sourceOutputDirectory>
              <factory>org.apache.myfaces.tobago.apt.TaglibAnnotationProcessorFactory</factory>
              <nocompile>true</nocompile>
              <encoding>${maven.compile.encoding}</encoding>
              <options>
                <option>jsf-version=${jsf.target}</option>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>tobago-checkstyle</id>
            <goals><goal>process</goal></goals>
            <phase>process-classes</phase>
            <configuration>
              <outputFiles>
                <outputFile>checkstyle-tobago.xml</outputFile>
              </outputFiles>
              <resourceTargetPath>META-INF</resourceTargetPath>
              <sourceOutputDirectory>${project.build.directory}/generated-checkstyle-config</sourceOutputDirectory>
              <factory>org.apache.myfaces.tobago.apt.CheckstyleConfigAnnotationProcessorFactory</factory>
              <additionalSourceRoots>
                <additionalSourceRoot>${project.build.directory}/tobago-core-sources</additionalSourceRoot>
              </additionalSourceRoots>
              <encoding>${maven.compile.encoding}</encoding>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-tld</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <resources>
                <resource>
                  <targetPath>META-INF</targetPath>
                  <directory>${project.build.directory}/generated-tld</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
          <execution>
            <id>copy-checkstyle-config</id>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <phase>process-classes</phase>
            <configuration>
              <outputDirectory>${project.build.outputDirectory}</outputDirectory>
              <resources>
                <resource>
                  <targetPath>META-INF</targetPath>
                  <directory>${project.build.directory}/generated-checkstyle-config</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>
  </build>

  <reporting>
    <plugins>

      <plugin>
        <groupId>net.sourceforge.maven-taglib</groupId>
        <artifactId>maven-taglib-plugin</artifactId>
        <version>2.3.1</version>
        <configuration>
          <taglib.src.dir>${project.build.directory}/generated-tld</taglib.src.dir>
          <tldDocDir>${project.build.directory}/site/tlddoc</tldDocDir>
          <parseHtml>true</parseHtml>
        </configuration>
      </plugin>

    </plugins>
  </reporting>

  <dependencies>

    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-core</artifactId>
      <version>${project.version}</version>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-tool-apt</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-tool-annotation</artifactId>
      <version>${project.version}</version>
      <scope>provided</scope>
    </dependency>
  </dependencies>

  <profiles>
    <!-- Mac OS X has not a tools.jar! -->
    <profile>
      <id>tools.jar</id>
      <activation>
        <!-- needs maven 2.0.3 or higher under Mac OS X -->
        <os><family>!mac</family></os>
        <jdk>1.7</jdk>
      </activation>
      <dependencies>
        <dependency>
          <groupId>sun.jdk</groupId>
          <artifactId>tools</artifactId>
          <version>1.5.0</version>
          <scope>system</scope>
          <systemPath>${java.home}/../lib/tools.jar</systemPath>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>generate-tag-reference</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>apt-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>tobago-doc</id>
                <goals><goal>execute</goal></goals>
                <configuration>
                  <outputFiles>
                    <outputFile>org/apache/myfaces/tobago/internal/taglib/extension/tobago-extension.xml</outputFile>
                  </outputFiles>
                  <sourceOutputDirectory>${project.build.directory}/doc</sourceOutputDirectory>
                  <factory>org.apache.myfaces.tobago.apt.TobagoAnnotationProcessorFactory</factory>
                  <nocompile>true</nocompile>
                  <encoding>${maven.compile.encoding}</encoding>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>net.sourceforge.maven-taglib</groupId>
            <artifactId>maven-taglib-plugin</artifactId>
            <configuration>
              <taglib.src.dir>${project.build.directory}/generated-tld</taglib.src.dir>
              <tldDocDir>${project.build.directory}/tlddoc</tldDocDir>
            </configuration>
            <executions>
              <execution>
                <id>attach-tlddoc</id>
                <goals><goal>taglibdocjar</goal></goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>generate-assembly</id>
      <build>
        <plugins>
          <plugin>
            <groupId>net.sourceforge.maven-taglib</groupId>
            <artifactId>maven-taglib-plugin</artifactId>
            <configuration>
              <taglib.src.dir>${project.build.directory}/generated-tld</taglib.src.dir>
              <tldDocDir>${project.build.directory}/tlddoc</tldDocDir>
            </configuration>
            <executions>
              <execution>
                <id>attach-tlddoc</id>
                <goals><goal>taglibdocjar</goal></goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>attach-source</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-source</id>
                <goals><goal>jar</goal></goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>jdk14retro</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>retrotranslator-maven-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>translate-project</goal>
                </goals>
                <configuration>
                  <classifier>jdk14retro</classifier>
                  <attach>true</attach>
                  <verify>true</verify>
                  <verifyClasspath>
                     <element>${java14.home}/${java.classes.jar}</element>
                  </verifyClasspath>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <dependency>
          <groupId>net.sf.retrotranslator</groupId>
          <artifactId>retrotranslator-runtime</artifactId>
        </dependency>
      </dependencies>
    </profile>
  </profiles>
</project>
