<?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.5</version>
  </parent>
  <artifactId>tobago-sandbox</artifactId>
  <packaging>jar</packaging>
  <name>Tobago Sandbox</name>

  <build>

    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <version>1.0</version>
        <executions>
          <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>${project.build.directory}/generated-component</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <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/**/*</includes>                  
              </artifactItem>
            </artifactItems>
            <outputDirectory>${project.build.directory}/tobago-core-sources</outputDirectory>
          </configuration>
          </execution>
        </executions>
      </plugin>
     <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>apt-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>tobago-tlds</id>
            <goals><goal>process</goal></goals>
            <phase>generate-resources</phase>
            <configuration>
              <outputFiles>
                <outputFile>org/apache/myfaces/tobago/internal/taglib/sandbox/tobago-sandbox.tld</outputFile>
              </outputFiles>
              <excludes>
                <exclude>org/apache/myfaces/tobago/util/CommonsLoggingLogger.java</exclude>
                <exclude>org/apache/myfaces/tobago/application/FopConverter.java</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/component/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/extension/*</exclude>
              </excludes>
              <additionalSourceRoots>
                <additionalSourceRoot>${project.build.directory}/tobago-core-sources</additionalSourceRoot>
              </additionalSourceRoots>
              <resourceTargetPath>META-INF</resourceTargetPath>
              <outputDirectory>${project.build.directory}/generated-tld</outputDirectory>
              <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-components</id>
            <goals><goal>process</goal></goals>
            <phase>compile</phase>
            <configuration>
              <excludes>
                <exclude>org/apache/myfaces/tobago/util/CommonsLoggingLogger.java</exclude>
                <exclude>org/apache/myfaces/tobago/application/FopConverter.java</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/extension/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/component/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/sandbox/package-info.java</exclude>
                <!--<exclude>org/apache/myfaces/tobago/internal/taglib/sandbox/WizardExtensionTag.java</exclude>-->
              </excludes>
              <additionalSourceRoots>
                <additionalSourceRoot>${project.build.directory}/tobago-core-sources</additionalSourceRoot>
              </additionalSourceRoots>
              <resourceTargetPath>META-INF</resourceTargetPath>
              <outputDirectory>${project.build.directory}/generated-component</outputDirectory>
              <factory>org.apache.myfaces.tobago.apt.CreateComponentAnnotationProcessorFactory</factory>
              <fork>true</fork>
              <nocompile>true</nocompile>
              <encoding>${maven.compile.encoding}</encoding>
              <force>true</force>
              <options>
                <option>jsf-version=${jsf.target}</option>
              </options>
            </configuration>
          </execution>
          <execution>
            <id>tobago-faces-config</id>
            <goals><goal>process</goal></goals>
              <phase>process-classes</phase>
            <configuration>
              <outputFiles>
                <outputFile>${project.build.directory}/generated-faces-config/faces-config.xml</outputFile>
              </outputFiles>
              <excludes>
                <exclude>org/apache/myfaces/tobago/util/CommonsLoggingLogger.java</exclude>
                <exclude>org/apache/myfaces/tobago/application/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/component/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/extension/*</exclude>
                <exclude>org/apache/myfaces/tobago/validator/*</exclude>
                <exclude>org/apache/myfaces/tobago/convert/*</exclude>
                <exclude>org/apache/myfaces/tobago/internal/taglib/sandbox/package-info.java</exclude>
              </excludes>
              <additionalSourceRoots>
                <additionalSourceRoot>${project.build.directory}/tobago-core-sources</additionalSourceRoot>
              </additionalSourceRoots>
              <resourceTargetPath>META-INF</resourceTargetPath>
              <outputDirectory>${project.build.directory}/generated-faces-config</outputDirectory>
              <factory>org.apache.myfaces.tobago.apt.FacesConfigAnnotationProcessorFactory</factory>
              <!--<force>true</force>-->
              <fork>true</fork>
              <nocompile>true</nocompile>
              <encoding>${maven.compile.encoding}</encoding>
              <options>
                <option>sourceFacesConfig=${basedir}/src/main/faces-config/faces-config.xml</option>
                <option>targetFacesConfig=faces-config.xml</option>
                <option>jsf-version=${jsf.target}</option>
              </options>
              <!--verbose>true</verbose-->
            </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>workaround-because-otherwise-this-will-be-excluded-in-the-next-step</exclude>
            <exclude>org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/SelectManyShuttleRenderer.java</exclude>
            <!--<exclude>org/apache/myfaces/tobago/internal/taglib/sandbox/WizardExtensionTag.java</exclude>-->
          </excludes>
        </configuration>
        <executions>
          <execution>
            <id>compile</id>
            <goals><goal>compile</goal></goals>
            <configuration>
              <source>${maven.compile.source}</source>
              <target>${maven.compile.target}</target>
              <encoding>${maven.compile.encoding}</encoding>
              <showWarnings>true</showWarnings>
              <includes>
                <include>org/apache/myfaces/tobago/internal/taglib/*</include>
                <include>org/apache/myfaces/tobago/component/*</include>
                <include>org/apache/myfaces/tobago/renderkit/*</include>
                <include>org/apache/myfaces/tobago/renderkit/html/sandbox/standard/tag/SelectManyShuttleRenderer.java</include>
                <!--<include>org/apache/myfaces/tobago/internal/taglib/sandbox/WizardExtensionTag.java</include>-->
              </includes>
              <excludes>
                <exclude>test</exclude>
              </excludes>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-resources-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-faces-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-faces-config</directory>
                </resource>
              </resources>
            </configuration>
          </execution>
          <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>
        </executions>
      </plugin>
    </plugins>
  </build>

  <reporting>
    <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}/site/tlddoc</tldDocDir>
          <parseHtml>true</parseHtml>
        </configuration>
      </plugin>

    </plugins>
  </reporting>

  <dependencies>
    <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>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-theme-standard</artifactId>
      <version>${project.version}</version>
    </dependency>
    <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-core</artifactId>
      <version>${project.version}</version>
      <classifier>tests</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>jsp-api</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
    </dependency>
    <dependency>
      <groupId>javax.el</groupId>
      <artifactId>el-api</artifactId>
    </dependency>
    <dependency>
      <groupId>fop</groupId>
      <artifactId>fop</artifactId>
      <version>0.20.5</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <!-- XXX not transitive from fop -->
    <dependency>
      <groupId>avalon-framework</groupId>
      <artifactId>avalon-framework</artifactId>
      <version>20020627</version>
      <!-- XXX wrong date -->
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.tobago</groupId>
      <artifactId>tobago-facelets</artifactId>
      <version>${project.version}</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <groupId>sun.jdk</groupId>
          <artifactId>tools</artifactId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.sun.facelets</groupId>
      <artifactId>jsf-facelets</artifactId>
      <version>${facelets.version}</version>
    </dependency>
    <dependency>
      <groupId>maven-taglib</groupId>
      <artifactId>maven-taglib-plugin</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.myfaces.test</groupId>
      <artifactId>myfaces-test12</artifactId>
      <version>${myfaces-test12.version}</version>
      <scope>test</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>
      </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-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>all-modules</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>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>
