<?xml version="1.0"?>
<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>io.vertx</groupId>
  <artifactId>lang-dynjs</artifactId>
  <version>1.0.0</version>
  <name>DynJS Vert.x module</name>
  <parent>
    <groupId>org.sonatype.oss</groupId>
    <artifactId>oss-parent</artifactId>
    <version>7</version>
  </parent>
  <scm>
    <connection>scm:git:git@github.com:vert-x/mod-lang-dynjs.git</connection>
    <developerConnection>scm:git:git@github.com:vert-x/mod-lang-dynjs.git</developerConnection>
    <url>git@github.com:vert-x/mod-lang-dynjs.git</url>
  </scm>
  <properties>
    <!-- vert.x module name -->
    <module.name>${project.groupId}~${project.artifactId}~${project.version}</module.name>

    <!-- encodings -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- plugin versions -->
    <maven.compiler.plugin.version>3.0</maven.compiler.plugin.version>
    <maven.failsafe.plugin.version>2.14</maven.failsafe.plugin.version>
    <maven.surefire.plugin.version>2.14</maven.surefire.plugin.version>
    <maven.resources.plugin.version>2.6</maven.resources.plugin.version>
    <maven.dependency.plugin.version>2.7</maven.dependency.plugin.version>
    <maven.assembly.plugin.version>2.4</maven.assembly.plugin.version>
    <maven.enforcer.plugin.version>1.1</maven.enforcer.plugin.version>
    <maven.clean.plugin.version>2.5</maven.clean.plugin.version>
    <maven.source.plugin.version>2.2.1</maven.source.plugin.version>

    <!-- dependency versions -->
    <version.vertx>2.1RC1</version.vertx>
    <version.vertx.testtools>2.0.3-final</version.vertx.testtools>
    <version.vertx.lang-js>1.0.0</version.vertx.lang-js>
    <version.dynjs>0.2.2</version.dynjs>
    <version.apacheds.dns>1.5.7</version.apacheds.dns>
  </properties>
  <developers>
    <developer>
      <name>Lance Ball</name>
      <email>lball@redhat.com</email>
      <organization>Project Odd</organization>
      <organizationUrl>http://projectodd.org</organizationUrl>
    </developer>
  </developers>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <repositories>
    <repository>
      <id>projectodd-upstream</id>
      <name>project:odd Upstream Builds</name>
      <url>https://repository-projectodd.forge.cloudbees.com/upstream</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>projectodd-snapshot</id>
      <name>project:odd snapshot Builds</name>
      <url>https://repository-projectodd.forge.cloudbees.com/snapshot</url>
      <layout>default</layout>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
    <repository>
      <id>maven-snapshot</id>
      <name>maven snapshot Builds</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
      <layout>default</layout>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>
  <dependencies>
    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>vertx-core</artifactId>
      <version>${version.vertx}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>vertx-platform</artifactId>
      <version>${version.vertx}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.dynjs</groupId>
      <artifactId>dynjs</artifactId>
      <version>${version.dynjs}</version>
      <scope>compile</scope>
    </dependency>
    <!-- test dependencies -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.8.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>lang-js</artifactId>
      <type>test-jar</type>
      <version>${version.vertx.lang-js}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.vertx</groupId>
      <artifactId>testtools</artifactId>
      <version>${version.vertx.testtools}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.directory.server</groupId>
      <artifactId>apacheds-protocol-dns</artifactId>
      <version>${version.apacheds.dns}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
  <profiles>
    <profile>
      <id>buildhive</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${maven.compiler.plugin.version}</version>
            <configuration>
              <source>1.7</source>
              <target>1.7</target>
              <showDeprecation>true</showDeprecation>
              <showWarnings>true</showWarnings>
              <encoding>UTF-8</encoding>
              <executable>/opt/jdk/jdk1.7.0/bin/javac</executable>
              <fork>true</fork>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven.surefire.plugin.version}</version>
            <configuration>
              <jvm>/opt/jdk/jdk1.7.0/bin/java</jvm>
              <forkMode>once</forkMode>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav-jackrabbit</artifactId>
        <version>2.4</version>
      </extension>
    </extensions>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>${maven.source.plugin.version}</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>${maven.compiler.plugin.version}</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <version>${maven.resources.plugin.version}</version>
        <configuration>
          <encoding>${project.build.sourceEncoding}</encoding>
        </configuration>
        <executions>
          <execution>
            <id>copy-resources</id>
            <phase>process-classes</phase>
            <goals>
              <goal>copy-resources</goal>
            </goals>
            <configuration>
              <overwrite>true</overwrite>
              <outputDirectory>${basedir}/target/mods/${module.name}</outputDirectory>
              <resources>
                <resource>
                  <directory>target/classes</directory>
                  <filtering>false</filtering>
                </resource>
              </resources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <version>${maven.dependency.plugin.version}</version>
        <executions>
          <execution>
            <id>copy-mod-dependencies-to-target</id>
            <phase>process-classes</phase>
            <goals>
              <goal>copy-dependencies</goal>
            </goals>
            <configuration>
              <outputDirectory>target/mods/${module.name}/lib</outputDirectory>
              <includeScope>runtime</includeScope>
            </configuration>
          </execution>
          <execution>
            <id>copy</id>
            <phase>compile</phase>
            <goals>
              <goal>unpack</goal>
            </goals>
            <configuration>
              <artifactItems>
                <artifactItem>
                  <groupId>io.vertx</groupId>
                  <artifactId>lang-js</artifactId>
                  <version>${version.vertx.lang-js}</version>
                  <type>zip</type>
                  <classifier>tests</classifier>
                  <overWrite>true</overWrite>
                  <outputDirectory>target</outputDirectory>
                </artifactItem>
                <artifactItem>
                  <groupId>io.vertx</groupId>
                  <artifactId>lang-js</artifactId>
                  <version>${version.vertx.lang-js}</version>
                  <type>jar</type>
                  <classifier>tests</classifier>
                  <overWrite>true</overWrite>
                  <outputDirectory>target/test-classes</outputDirectory>
                </artifactItem>
              </artifactItems>
              <!-- other configurations here -->
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>com.googlecode.maven-java-formatter-plugin</groupId>
        <artifactId>maven-java-formatter-plugin</artifactId>
        <version>0.3.1</version>
        <configuration>
          <configFile>${project.basedir}/support/eclipse-formatting.xml</configFile>
          <lineEnding>LF</lineEnding>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${maven.surefire.plugin.version}</version>
        <configuration>
          <disableXmlReport>true</disableXmlReport>
          <argLine>-Xss2048k</argLine>
          <verbose>true</verbose>
          <includes>
            <include>**/unit/*Test*.java</include>
          </includes>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <version>${maven.failsafe.plugin.version}</version>
        <configuration>
          <systemPropertyVariables>
            <vertx.mods>target/mods</vertx.mods>
            <vertx.test.resources>target/lang-js-${version.vertx.lang-js}/resources</vertx.test.resources>
            <vertx.langs..coffee>dynjs</vertx.langs..coffee>
            <vertx.langs..js>dynjs</vertx.langs..js>
            <vertx.test.timeout>15</vertx.test.timeout>
          </systemPropertyVariables>
          <environmentVariables>
            <cheese>Gouda</cheese>
          </environmentVariables>
          <argLine>-Xss2048k</argLine>
          <includes>
            <include>**/integration/**</include>
          </includes>
        </configuration>
        <executions>
          <execution>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <version>${maven.assembly.plugin.version}</version>
        <configuration>
          <descriptors>
            <descriptor>src/main/assembly/assembly.xml</descriptor>
          </descriptors>
          <attach>true</attach>
        </configuration>
        <executions>
          <execution>
            <id>assemble</id>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-clean-plugin</artifactId>
        <version>${maven.clean.plugin.version}</version>
        <configuration>
          <filesets>
            <fileset>
              <directory>${basedir}/js-test-output</directory>
            </fileset>
          </filesets>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven.enforcer.plugin.version}</version>
        <executions>
          <execution>
            <id>enforce-maven</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>3.0.0</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
    <pluginManagement>
    	<plugins>
    		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
    		<plugin>
    			<groupId>org.eclipse.m2e</groupId>
    			<artifactId>lifecycle-mapping</artifactId>
    			<version>1.0.0</version>
    			<configuration>
    				<lifecycleMappingMetadata>
    					<pluginExecutions>
    						<pluginExecution>
    							<pluginExecutionFilter>
    								<groupId>org.codehaus.mojo</groupId>
    								<artifactId>
    									exec-maven-plugin
    								</artifactId>
    								<versionRange>
    									[1.2.1.jbossorg-3,)
    								</versionRange>
    								<goals>
    									<goal>exec</goal>
    								</goals>
    							</pluginExecutionFilter>
    							<action>
    								<ignore />
    							</action>
    						</pluginExecution>
    					</pluginExecutions>
    				</lifecycleMappingMetadata>
    			</configuration>
    		</plugin>
    	</plugins>
    </pluginManagement>
  </build>
</project>
