<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.12-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>
    </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>http://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
        <snapshotRepository>
            <id>sonatype-nexus-snapshots</id>
            <name>Sonatype Nexus Snapshots</name>
            <url>http://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>
                        <Export-Package>org.yaml.snakeyaml.*</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>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>
