<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>
    <groupId>org.yaml</groupId>
    <artifactId>snakeyaml</artifactId>
    <version>1.14-SNAPSHOT</version>
    <packaging>bundle</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>
    <name>SnakeYAML</name>
    <description>YAML 1.1 parser and emitter for Java</description>
    <inceptionYear>2008</inceptionYear>
    <url>http://www.snakeyaml.org</url>
    <issueManagement>
        <system>Google Code</system>
        <url>http://code.google.com/p/snakeyaml/issues/list</url>
    </issueManagement>
    <!--ciManagement>
        <system>jenkins</system>
        <url>https://snakeyaml.ci.cloudbees.com/job/SnakeYAML/</url>
    </ciManagement-->
    <mailingLists>
        <mailingList>
            <name>SnakeYAML developers and users List</name>
            <post>snakeyaml-core@googlegroups.com</post>
        </mailingList>
    </mailingLists>
    <scm>
        <connection>scm:hg:http://snakeyaml.googlecode.com/hg</connection>
        <developerConnection>scm:hg:https://snakeyaml.googlecode.com/hg</developerConnection>
        <url>http://code.google.com/p/snakeyaml/source/browse/</url>
    </scm>
    <licenses>
        <license>
            <name>Apache License Version 2.0</name>
            <url>LICENSE.txt</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>py4fun</id>
            <name>Andrey Somov</name>
            <email>py4fun@gmail.com</email>
        </developer>
        <developer>
            <id>maslovalex</id>
            <name>Alexander Maslov</name>
            <email>alexander.maslov@gmail.com</email>
        </developer>
        <developer>
            <id>Jordan</id>
            <name>Jordan Angold</name>
            <email>jordanangold@gmail.com</email>
        </developer>
    </developers>
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring</artifactId>
            <version>2.5.6</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.velocity</groupId>
            <artifactId>velocity</artifactId>
            <version>1.6.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>1.6</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <distributionManagement>
        <repository>
            <id>sonatype-nexus-staging</id>
            <name>Nexus Release Repository</name>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
        <snapshotRepository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
            <uniqueVersion>false</uniqueVersion>
        </snapshotRepository>
    </distributionManagement>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <argLine>-Xmx512m</argLine>
                    <includes>
                        <include>**/*Test.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/StressTest.java</exclude>
                        <exclude>**/ParallelTest.java</exclude>
                    </excludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <buildOutputDirectory>bin</buildOutputDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <check>
                        <totalBranchRate>80</totalBranchRate>
                        <totalLineRate>95</totalLineRate>
                    </check>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                    <instrumentation>
                        <excludes>
                            <exclude>org/yaml/snakeyaml/external/**</exclude>
                        </excludes>
                    </instrumentation>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>clean</goal>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changes-plugin</artifactId>
                <version>2.5</version>
                <executions>
                    <execution>
                        <id>validate-changes</id>
                        <phase>pre-site</phase>
                        <goals>
                            <goal>changes-validate</goal>
                        </goals>
                        <configuration>
                            <failOnError>true</failOnError>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.1.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
                <configuration>
                    <links>
                        <link>http://java.sun.com/javase/6/docs/api/</link>
                    </links>
                </configuration>
                <executions>
                    <execution>
                        <id>attach-javadocs</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>com.mycila.maven-license-plugin</groupId>
                <artifactId>maven-license-plugin</artifactId>
                <version>1.9.0</version>
                <configuration>
                    <header>src/etc/header.txt</header>
                    <quiet>false</quiet>
                    <failIfMissing>true</failIfMissing>
                    <aggregate>false</aggregate>
                    <includes>
                        <include>src/**/*.java</include>
                    </includes>
                    <excludes>
                        <exclude>src/main/java/org/yaml/snakeyaml/external/**</exclude>
                    </excludes>
                    <useDefaultExcludes>true</useDefaultExcludes>
                    <useDefaultMapping>true</useDefaultMapping>
                    <strictCheck>true</strictCheck>
                    <encoding>UTF-8</encoding>
                </configuration>
                <executions>
                    <execution>
                        <phase>site</phase>
                        <goals>
                            <goal>format</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.3.4</version>
                <extensions>true</extensions>
                <configuration>
                    <instructions>
                        <_nouses>true</_nouses>
                        <Export-Package>
                            !org.yaml.snakeyaml.external*,
                            org.yaml.snakeyaml.*;version=${project.version}
                        </Export-Package>
                        <Bundle-RequiredExecutionEnvironment>J2SE-1.5</Bundle-RequiredExecutionEnvironment>
                    </instructions>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-changes-plugin</artifactId>
                <version>2.3</version>
                <configuration>
                    <issueLinkTemplate>http://code.google.com/p/snakeyaml/issues/detail?id=%ISSUE%</issueLinkTemplate>
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>changes-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <showSuccess>true</showSuccess>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.5.1</version>
                <configuration>
                    <formats>
                        <format>html</format>
                        <format>xml</format>
                    </formats>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jxr-plugin</artifactId>
                <version>2.2</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>2.8</version>
                <reportSets>
                    <reportSet>
                        <id>html</id>
                        <configuration>
                            <doctitle>API for ${project.name} ${project.version}</doctitle>
                            <windowtitle>API for ${project.name} ${project.version}</windowtitle>
                            <testDoctitle>Test API for ${project.name} ${project.version}</testDoctitle>
                            <testWindowtitle>Test API for ${project.name} ${project.version}</testWindowtitle>
                        </configuration>
                        <reports>
                            <report>javadoc</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
    <profiles>
        <profile>
	  <id>jdk8</id>
	  <activation>
  	      <jdk>1.8</jdk>
	  </activation>
	  <build>
	    <plugins>
	      <plugin>
		  <groupId>org.apache.maven.plugins</groupId>
		  <artifactId>maven-javadoc-plugin</artifactId>
		  <configuration>
                      <additionalparam>-Xdoclint:none</additionalparam>
		  </configuration>
	      </plugin>
	    </plugins>
	  </build>
        </profile>
        <profile>
            <id>release</id>
            <activation>
                <property>
                    <name>performRelease</name>
                    <value>true</value>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.1</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>fast</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <includes>
                                <include>**/*Test.java</include>
                            </includes>
                            <excludes>
                                <exclude>**/stress/**</exclude>
                                <exclude>org/yaml/snakeyaml/recursive/generics/HumanGenericsTest.java</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>findbugs</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <version>2.4.0</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <version>2.6</version>
                    </plugin>
                </plugins>
            </build>
            <reporting>
                <plugins>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>findbugs-maven-plugin</artifactId>
                        <version>2.4.0</version>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <version>2.6</version>
                        <configuration>
                            <linkXref>true</linkXref>
                            <sourceEncoding>utf-8</sourceEncoding>
                            <minimumTokens>100</minimumTokens>
                            <targetJdk>1.5</targetJdk>
                            <excludes>
                                <exclude>**/external/*.java</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </reporting>
        </profile>
        <profile>
            <id>maven-3</id>
            <activation>
                <file>
                    <!-- This employs that the basedir expression is only
                        recognized by Maven 3.x (see MNG-2363) -->
                    <exists>${basedir}</exists>
                </file>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-site-plugin</artifactId>
                            <version>3.0</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <plugin>
                        <artifactId>maven-site-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-descriptor</id>
                                <goals>
                                    <goal>attach-descriptor</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
	<profile>
	  <id>android</id>
	  <properties>
	    <android.src>${project.build.directory}/android/src/</android.src>
	    <android.classes>${project.build.directory}/android/classes/</android.classes>
	    <android.test.classes>${project.build.directory}/android/test-classes/</android.test.classes>
	  </properties>
	  <build>
	    <plugins>
	      <plugin>
		<artifactId>maven-resources-plugin</artifactId>
		<version>2.5</version>
		<executions>
		  <execution>
		    <id>copy-src-for-android</id>
		    <phase>generate-sources</phase>
		    <goals>
		      <goal>copy-resources</goal>
		    </goals>
		    <configuration>
		      <outputDirectory>${android.src}</outputDirectory>
		      <resources>
			<resource>
			  <directory>${basedir}/src/main/java</directory>
			  <filtering>false</filtering>
			  <excludes>
			    <exclude>org/yaml/snakeyaml/introspector/MethodProperty.java</exclude>
			  </excludes>
			</resource>
		      </resources>
		    </configuration>
		  </execution>
		  <execution>
		    <id>copy-test-resources-for-android</id>
		    <phase>process-test-resources</phase>
		    <goals>
		      <goal>copy-resources</goal>
		    </goals>
		    <configuration>
		      <outputDirectory>${android.test.classes}</outputDirectory>
		      <resources>
			<resource>
			  <directory>${basedir}/src/test/resources</directory>
			</resource>
		      </resources>
		    </configuration>
		  </execution>
		</executions>
	      </plugin>

	      <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-patch-plugin</artifactId>
		<version>1.1.1</version>
		<configuration>
		  <patchDirectory>${basedir}/src/patches/android/</patchDirectory>
		  <targetDirectory>${android.src}</targetDirectory>
		  <skipApplication>false</skipApplication>
		  <strip>4</strip>
		</configuration>
		<executions>
		  <execution>
		    <id>android-patches</id>
		    <phase>process-sources</phase>
		    <goals>
		      <goal>apply</goal>
		    </goals>
		    <configuration>
		      <patchTrackingFile>${project.build.directory}/android/patches-applied.txt</patchTrackingFile>
		      <naturalOrderProcessing>true</naturalOrderProcessing>
		    </configuration>
		  </execution>
		</executions>
	      </plugin>
	      <plugin>
		<groupId>org.apache.maven.plugins</groupId>
		<artifactId>maven-antrun-plugin</artifactId>
		<version>1.7</version>
		<executions>
		  <execution>
		    <id>build-for-android</id>
		    <phase>compile</phase>
		    <goals>
		      <goal>run</goal>
		    </goals>
		    <configuration>
		      <target>
			<mkdir dir="${android.classes}" />
			<mkdir dir="${android.test.classes}" />

			<!-- compile patched sources -->
			<javac srcdir="${android.src}" destdir="${android.classes}" classpath="${android.classes}" encoding="${project.build.sourceEncoding}" target="1.5" source="1.5" debug="true" includeantruntime="false" />

			<!-- compile test classes. Exclude some - not for BeanAccess.FIELD -->
			<javac srcdir="${basedir}/src/test/java:${basedir}/src/test/resources" destdir="${android.test.classes}" classpath="${android.classes}:${android.test.classes}:${junit:junit:jar}:${org.springframework:spring:jar}:${org.apache.velocity:velocity:jar}:${joda-time:joda-time:jar}" encoding="${project.build.sourceEncoding}" target="1.5" source="1.5" debug="true" includeantruntime="false">
			  <exclude name="org/yaml/snakeyaml/introspector/MethodPropertyTest.java" />
			  <exclude name="org/yaml/snakeyaml/representer/FilterPropertyToDumpTest.java" />
			  <exclude name="org/yaml/snakeyaml/issues/issue60/CustomOrderTest.java" />
			  <exclude name="org/yaml/snakeyaml/issues/issue29/FlexibleScalarStylesInJavaBeanTest.java" />

			</javac>
		      </target>

		    </configuration>
		  </execution>
		</executions>
	      </plugin>
	      <plugin>
		<artifactId>maven-surefire-plugin</artifactId>
		<executions>
		  <execution>
		    <id>test-android</id>
		    <phase>test</phase>
		    <goals>
		      <goal>test</goal>
		    </goals>
		    <configuration>
		      <classesDirectory>${android.classes}</classesDirectory>
		      <reportsDirectory>${project.build.directory}/android/surefire-reports</reportsDirectory>
		      <testClassesDirectory>${android.test.classes}</testClassesDirectory>
		      <!--
		      We ignore test failures for android build at the moment.
		      Most of the FAILs are because of testing with "property" not "field" access.
		      But we still fail whole build if there are test errors.
		      -->
		      <testFailureIgnore>true</testFailureIgnore>
		    </configuration>
		  </execution>
		</executions>
	      </plugin>
	      <plugin>
		<artifactId>maven-jar-plugin</artifactId>
		<executions>
		  <execution>
		    <id>package-android-jar</id>
		    <phase>package</phase>
		    <goals>
		      <goal>jar</goal>
		    </goals>
		    <configuration>
		      <classesDirectory>${android.classes}</classesDirectory>
		      <classifier>android</classifier>
		    </configuration>
		  </execution>
		</executions>
	      </plugin>
	    </plugins>
	  </build>
	</profile>
    </profiles>
</project>
