<?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 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>

  <parent>
  	<artifactId>turbine-parent</artifactId>
  	<groupId>org.apache.turbine</groupId>
  	<version>12-SNAPSHOT</version>
     <relativePath/>
  </parent>

  <groupId>org.apache.turbine</groupId>
  <artifactId>turbine-site</artifactId>
  <version>5.0</version>
  <packaging>pom</packaging>
  <name>Turbine</name>
  <description>Turbine is a servlet based framework that allows experienced Java developers
    to quickly build secure web applications. Parts of Turbine can also be used
    independently of the web portion of Turbine as well. In other words, we
    strive to make portions of Turbine easily available for use in other
    applications.</description>
  <url>https://turbine.apache.org/</url>
  <inceptionYear>2000</inceptionYear>
  <organization>
    <name>Apache Software Foundation</name>
    <url>https://turbine.apache.org/</url>
  </organization>
  <mailingLists>
    <mailingList>
      <name>Turbine User List</name>
      <subscribe>user-subscribe@turbine.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@turbine.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?user@turbine.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Turbine Developer List</name>
      <subscribe>dev-subscribe@turbine.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@turbine.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?dev@turbine.apache.org</archive>
    </mailingList>
    <mailingList>
      <name>Turbine General List</name>
      <subscribe>general-subscribe@turbine.apache.org</subscribe>
      <unsubscribe>general-unsubscribe@turbine.apache.org</unsubscribe>
      <archive>https://lists.apache.org/list.html?general@turbine.apache.org</archive>
    </mailingList>
  </mailingLists>
  <developers>
    <developer>
      <id>brekke</id>
      <name>Jeff Brekke</name>
      <email>ekkerbj@yahoo.com</email>
      <organization></organization>
    </developer>
    <developer>
      <id>fedor</id>
      <name>Fedor Karpelevitch</name>
      <email>fedor@karpelevitch.net</email>
      <organization></organization>
    </developer>
    <developer>
      <id>jmcnally</id>
      <name>John McNally</name>
      <email>jmcnally@collab.net</email>
      <organization>CollabNet, Inc.</organization>
    </developer>
    <developer>
      <id>mpoeschl</id>
      <name>Martin Poeschl</name>
      <email>mpoeschl@marmot.at</email>
      <organization>Tucana.at</organization>
    </developer>
    <developer>
      <id>dlr</id>
      <name>Daniel Rall</name>
      <email>dlr@finemaltcoding.com</email>
      <organization>CollabNet, Inc.</organization>
    </developer>
    <developer>
      <id>jon</id>
      <name>Jon Scott Stevens</name>
      <email>jon@latchkey.com</email>
      <organization>CollabNet, Inc.</organization>
    </developer>
    <developer>
      <id>quintonm</id>
      <name>Quinton McCombs</name>
      <email>quintonm@bellsouth.net</email>
      <organization>NequalsOne</organization>
    </developer>
    <developer>
      <id>jvanzyl</id>
      <name>Jason van Zyl</name>
      <email>jason@zenplex.com</email>
      <organization>Zenplex</organization>
    </developer>
    <developer>
      <id>henning</id>
      <name>Henning P. Schmiedehausen</name>
      <email>hps@intermeta.de</email>
      <organization>INTERMETA - Gesellschaft fuer Mehrwertdienste mbH</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>2</timezone>
    </developer>
    <developer>
      <id>seade</id>
      <name>Scott Eade</name>
      <email>seade@backstagetech.com.au</email>
      <organization>Backstage Technologies Pty. Ltd.</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>-10</timezone>
    </developer>
    <developer>
      <id>hoffmann</id>
      <name>Jürgen Hoffmann</name>
      <email>jh@byteaction.de</email>
      <organization>ByteAction GmbH</organization>
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>2</timezone>
    </developer>
    <developer>
      <name>Thomas Vandahl</name>
      <id>tv</id>
      <email>tv@apache.org</email>
      <organization />
      <roles>
        <role>Java Developer</role>
      </roles>
      <timezone>1</timezone>
    </developer>
  </developers>

  <scm>
    <connection>scm:git:https://gitbox.apache.org/repos/asf/turbine-site.git</connection>
    <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/turbine-site.git</developerConnection>
    <url>https://github.com/apache/${turbine.site.path}/tree/${project.scm.tag}</url>
    <tag>HEAD</tag>
  </scm>
  
   <!-- distributionManagement required for staging to work, id and url defined in parent, adapt turbine.site.path -->
   <distributionManagement>
      <site>
          <name>Turbine Wrapper Website</name>
           <id>apache.org</id>
          <url>https://github.com/apache/turbine-fulcrum-site/</url>
        </site>
   </distributionManagement>

  <build>
    <plugins>
      <plugin> <!-- Thanks to Apache Commons -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-scm-publish-plugin</artifactId>
        <configuration>
          <content>${project.reporting.outputDirectory}</content>
          <pubScmUrl>scm:git:${turbine.scmPubUrl}</pubScmUrl>
          <checkoutDirectory>${turbine.scmPubCheckoutDirectory}</checkoutDirectory>
          <tryUpdate>true</tryUpdate>
          <scmBranch>asf-site</scmBranch>
          <skipDeletedFiles>true</skipDeletedFiles>
          <ignorePathsToDelete>
            <ignorePathToDelete>dtd**</ignorePathToDelete>
            <ignorePathToDelete>fulcrum**</ignorePathToDelete>
            <ignorePathToDelete>meta**</ignorePathToDelete>
            <ignorePathToDelete>stratum**</ignorePathToDelete>
            <ignorePathToDelete>tdk**</ignorePathToDelete>
            <ignorePathToDelete>turbine**</ignorePathToDelete>
          </ignorePathsToDelete>
        </configuration>
        <executions>
          <execution>
            <id>scm-publish</id>
            <phase>site-deploy</phase><!-- deploy site with maven-scm-publish-plugin -->
            <goals>
              <goal>publish-scm</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>team</report>
              <report>mailing-lists</report>
              <report>ci-management</report>
              <report>issue-management</report>
              <report>licenses</report>
              <report>scm</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <version>${turbine.surefire.version}</version>
        <configuration>
         <skipSurefireReport>true</skipSurefireReport>
        </configuration>
      </plugin>
    </plugins>
  </reporting>
  
  <properties>
    <turbine.site.path>${project.artifactId}</turbine.site.path>
    <turbine.scmPubCheckoutDirectory>${turbine.site.cache}/site</turbine.scmPubCheckoutDirectory>
  </properties>

</project>
