<?xml version="1.0" encoding="UTF-8"?>
<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">

	<!--
		UMS consists of two major parts: UMS itself and the third party software needed to
		run it. While UMS itself is 100% pure Java, some of the third party software is
		not. This means building a platform specific distribution boils down to first
		building the pms.jar and then assembling all application resources.

		Note that Maven 3 does not automatically install all dependencies, unlike Maven 2.
		To install all dependencies to your local repository, run the following commands:

		mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external
		mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external

		To build UMS, do:

			mvn clean package

		After building, the "target" directory will contain the binary.
		To generate a full source code report, do:

			mvn site

		After generating, the "target/site" directory will contain the reports.
	-->

	<modelVersion>4.0.0</modelVersion>
	<groupId>net.pms</groupId>
	<artifactId>ums</artifactId>
	<name>Universal Media Server</name>
	<packaging>jar</packaging>
	<version>2.4.2</version>
	<url>http://www.universalmediaserver.com/</url>
	<inceptionYear>2012</inceptionYear>

	<!-- this is not required, but is recommended for plugin version checks -->
	<prerequisites>
		<maven>2.2.1</maven>
	</prerequisites>

	<organization>
		<name>Universal Media Server</name>
		<url>http://www.universalmediaserver.com/</url>
	</organization>
	<licenses>
		<license>
			<name>GNU General Public License version 2</name>
			<url>http://www.gnu.org/licenses/gpl-2.0.txt</url>
			<distribution>manual</distribution>
		</license>
	</licenses>
	<description>
		Universal Media Server is a cross-platform DLNA-compliant UPnP Media Server.
		Originally written to support the PlayStation 3, Universal Media Server has been
		expanded to support a range of other media renderers, including smartphones,
		televisions, music players and more.
	</description>
	<scm>
		<connection>scm:git:git://github.com/UniversalMediaServer/UniversalMediaServer.git</connection>
		<developerConnection>scm:git:git@github.com:UniversalMediaServer/UniversalMediaServer.git</developerConnection>
		<tag>master</tag>
		<url>https://github.com/UniversalMediaServer/UniversalMediaServer</url>
	</scm>
	<issueManagement>
		<system>Google Code</system>
		<url>http://code.google.com/p/universal-media-server/issues/list</url>
	</issueManagement>
	<properties>
		<!-- NSIS needs a version without "-SNAPSHOT" or "-b1" -->
		<project.version.short>2.4.2</project.version.short>

		<!--
			JNA 3.4.0 solves issue #1152, but causes a bug in Windows.
			The version is therefore overruled in the Windows profile.
			This property should be removed when Windows can use the
			same version.
		-->
		<jna-version>3.4.0</jna-version>

		<cuelib-version>1.2.1-2008-06-13</cuelib-version>
		<jgoodies-common-version>1.2.1</jgoodies-common-version>
		<jgoodies-forms-version>1.4.2</jgoodies-forms-version>
		<jgoodies-looks-version>2.4.2</jgoodies-looks-version>
		<junrar-version>0.7</junrar-version>
		<mediautil-version>1.0</mediautil-version>
		<xmlwise-version>1.2</xmlwise-version>
		<!--
			the xmlwise jar's filename uses underscores for the version rather than dots e.g. xmlwise-1_2.jar.
			dynamic properties are a DRYer/saner solution, but I couldn't get properties-maven-plugin
			to work with Maven 2.2.1...
		-->
		<xmlwise-filename-version>1_2</xmlwise-filename-version>
		<slf4j-version>1.7.1</slf4j-version>

		<!-- Skip 4.65-1.05-RC because it doesn't work, author is working on fixing it -->
		<sevenzip-version>4.65-1.04-RC</sevenzip-version>

		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.external-resources>${project.basedir}/src/main/external-resources</project.external-resources>
		<project.binaries>${project.basedir}/target/bin</project.binaries>

		<!-- Snapshots should get their binaries from the trunk, releases from a tag -->
		<project.binaries-base>http://universal-media-server-binaries.googlecode.com/svn/trunk</project.binaries-base>
		<!-- <project.binaries-base>http://ps3mediaserver.googlecode.com/svn/tags/1.40.0</project.binaries-base> -->

		<maven.nsis.project.template>${project.basedir}/src/main/external-resources/nsis/project.jelly</maven.nsis.project.template>
		<maven-javadoc-plugin-version>2.9</maven-javadoc-plugin-version>
		<git-commit-id-plugin-version>2.1.0</git-commit-id-plugin-version>
	</properties>
	<pluginRepositories>
		<pluginRepository>
			<id>ossrh</id>
			<name>Sonatype OSS Repository</name>
			<url>http://oss.sonatype.org/content/groups/public</url>
			<layout>default</layout>
		</pluginRepository>
	</pluginRepositories>
	<repositories>
		<!-- Java.net -->
		<repository>
			<id>java.net</id>
			<name>Java.net Repository</name>
			<url>http://download.java.net/maven/2/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<!-- netty -->
		<repository>
			<id>jboss</id>
			<url>http://repository.jboss.org/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<!-- GSON -->
		<repository>
			<id>google-gson</id>
			<name>google-gson</name>
			<url>https://google-gson.googlecode.com/svn/mavenrepo/</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<!-- JBoss.org repository -->
		<repository>
			<id>jboss.releases</id>
			<name>JBoss releases</name>
			<url>https://repository.jboss.org/nexus/content/repositories/releases/</url>
			<releases>
				<enabled>true</enabled>
			</releases>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>

		<!-- JUnRar by Edmund Wagner -->
		<repository>
			<id>JUnRar mirror repository</id>
			<name>JUnRar mirror repository</name>
			<url>https://junrar-repository.googlecode.com/svn/deploy/</url>
		</repository>

		<!-- for jai-imageio-core-standalone, which is used by Thumbnailator -->
		<repository>
			<releases />
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
			<id>mygrid-repository</id>
			<name>myGrid Repository</name>
			<url>http://www.mygrid.org.uk/maven/repository</url>
		</repository>
	</repositories>
	<dependencies>
		<!-- TODO this can be removed when MEncoder is removed -->
		<dependency>
			<groupId>org.beanshell</groupId>
			<artifactId>bsh-core</artifactId>
			<version>2.0b4</version>
		</dependency>
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
			<version>1.7</version>
		</dependency>
		<dependency>
			<groupId>commons-collections</groupId>
			<artifactId>commons-collections</artifactId>
			<version>3.2.1</version>
		</dependency>
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
			<version>1.9</version>
			<exclusions>
				<!--  no need for commons-logging, as jcl-over-slf4j provides the impl -->
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-httpclient</groupId>
			<artifactId>commons-httpclient</artifactId>
			<version>3.1</version>
			<exclusions>
				<!--  no need for commons-logging, as jcl-over-slf4j provides the impl -->
				<exclusion>
					<artifactId>commons-logging</artifactId>
					<groupId>commons-logging</groupId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.6</version>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<version>1.3.170</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>1.0.7</version>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
			<version>1.0.7</version>
		</dependency>
		<dependency>
			<groupId>org.apache.sanselan</groupId>
			<artifactId>sanselan</artifactId>
			<version>0.97-incubator</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j-version}</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${slf4j-version}</version>
		</dependency>
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.2.2</version>
		</dependency>

		<!-- originally, hamcrest-all 1.2RC2 for the artifact change, see: https://code.google.com/p/hamcrest/issues/detail?id=12#c54 
			FIXME: verify if needed -->
		<dependency>
			<groupId>org.hamcrest</groupId>
			<artifactId>hamcrest-integration</artifactId>
			<version>1.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.jboss.netty</groupId>
			<artifactId>netty</artifactId>
			<version>3.2.7.Final</version>
		</dependency>

		<!-- maven replacement for nsisant-1.2.jar -->
		<dependency>
			<groupId>maven</groupId>
			<artifactId>maven-nsis-plugin</artifactId>
			<version>2.1</version>
		</dependency>
		<dependency>
			<groupId>net.java.dev.rome</groupId>
			<artifactId>rome</artifactId>
			<version>1.0.0</version>
		</dependency>
		<dependency>
			<groupId>net.coobird</groupId>
			<artifactId>thumbnailator</artifactId>
			<version>0.4.2</version>
		</dependency>

		<!--
			this is not used on its own, but rather provides
			ImageReader subclasses that make support for additional
			formats (e.g. TIFF) available to the ImageIO API, and thus
			to Thumbnailator (our built-in image thumbnailer).

			XXX be careful upgrading this. this version is redistributable;
			other versions may not be:

			https://code.google.com/p/thumbnailator/issues/detail?id=32
			https://github.com/stain/jai-imageio-core
			http://stackoverflow.com/questions/1209583/using-java-advanced-imaging-with-maven
		-->
		<dependency>
			<groupId>net.java.dev.jai-imageio</groupId>
			<artifactId>jai-imageio-core-standalone</artifactId>
			<version>1.2-pre-dr-b04-2011-07-04</version>
		</dependency>

		<dependency>
			<groupId>org</groupId>
			<artifactId>jaudiotagger</artifactId>
			<version>2.0.3</version>
		</dependency>
		<dependency>
			<groupId>net.java.dev.jna</groupId>
			<artifactId>jna</artifactId>
			<version>${jna-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
		<dependency>
			<groupId>com.jgoodies</groupId>
			<artifactId>common</artifactId>
			<version>${jgoodies-common-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
		<dependency>
			<groupId>com.jgoodies</groupId>
			<artifactId>forms</artifactId>
			<version>${jgoodies-forms-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: http://www.jgoodies.com/downloads/libraries.html -->
		<dependency>
			<groupId>com.jgoodies</groupId>
			<artifactId>looks</artifactId>
			<version>${jgoodies-looks-version}</version>
		</dependency>

		<dependency>
			<groupId>com.github.junrar</groupId>
			<artifactId>junrar</artifactId>
			<version>${junrar-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: https://code.google.com/p/cuelib/ -->
		<dependency>
			<groupId>jwbroek.cuelib</groupId>
			<artifactId>cuelib</artifactId>
			<version>${cuelib-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: http://sourceforge.net/projects/mediachest/ -->
		<dependency>
			<groupId>mediautil</groupId>
			<artifactId>mediautil</artifactId>
			<version>${mediautil-version}</version>
		</dependency>

		<!-- XXX: not Mavenized: https://code.google.com/p/xmlwise/ -->
		<dependency>
			<groupId>com.googlecode</groupId>
			<artifactId>xmlwise</artifactId>
			<version>${xmlwise-version}</version>
		</dependency>
		<dependency>
			<groupId>com.googlecode.juniversalchardet</groupId>
			<artifactId>juniversalchardet</artifactId>
			<version>1.0.3</version>
		</dependency>
		<dependency>
			<groupId>sevenzip</groupId>
			<artifactId>jbinding</artifactId>
			<version>${sevenzip-version}</version>
		</dependency>
		<dependency>
			<groupId>sevenzip-allplatforms</groupId>
			<artifactId>jbinding-allplatforms</artifactId>
			<version>${sevenzip-version}</version>
		</dependency>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.10</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.easytesting</groupId>
			<artifactId>fest-assert</artifactId>
			<version>1.4</version>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<build>
		<defaultGoal>assembly:assembly</defaultGoal>
		<resources>

			<!--
				This needs to be defined explicitly if a <resources>...</resources> 
				section is used
			-->
			<resource>
				<directory>src/main/resources</directory>
				<!--
					By default Maven packages resources in the top-level of the jar. 
					For compatibility with trunk PMS, we preserve that destination. If this is 
					ever changed to the Maven default, a handful of files will need to be changed 
					to reference "/resource.name" rather than "/resources/resource.name"
				-->
				<targetPath>resources</targetPath>
				<excludes>
					<exclude>project.properties</exclude>
				</excludes>

				<!-- Avoid inadvertently filtering binaries -->
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<targetPath>resources</targetPath>
				<includes>
					<include>project.properties</include>
				</includes>

				<!-- Filter to replace Maven properties -->
				<filtering>true</filtering>
			</resource>

			<!-- Copy and filter the NSIS header file to replace Maven properties -->
			<resource>
				<directory>src/main/external-resources/nsis</directory>
				<includes>
					<include>extra.nsh</include>
				</includes>
				<filtering>true</filtering>
				<targetPath>..</targetPath>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>src/test/resources</directory>
				<includes>
					<include>project.properties</include>
				</includes>
				<targetPath>resources</targetPath>

				<!-- Enable the use of Maven properties -->
				<filtering>true</filtering>
			</testResource>
			<!--*.srt files to test charset detection-->
			<testResource>
				<directory>src/test/resources/net/pms/util</directory>
				<includes>
					<include>*.srt</include>
				</includes>
				<targetPath>net/pms/util</targetPath>
			</testResource>
		</testResources>
		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<configuration>

						<!--
							1) Force language because JUnit tests depend on English language strings

							2) Use our JNA dependency rather than the system's - fixes
							the following error on Linux (Ubuntu 12.04 with system
							jna-3.2.7.jar via libjna-java):

							There is an incompatible JNA native library installed on this system.
						-->
						<argLine>-Duser.language=en -Djna.nosys=true</argLine> <!-- only one argLine element is processed -->
					</configuration>
					<version>2.12.3</version>
				</plugin>

				<!--
					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.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-antrun-plugin
										</artifactId>
										<versionRange>
											[1.7,)
										</versionRange>
										<goals>
											<goal>run</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											pl.project13.maven
										</groupId>
										<artifactId>
											git-commit-id-plugin
										</artifactId>
										<versionRange>
											[${git-commit-id-plugin-version},)
										</versionRange>
										<goals>
											<goal>revision</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											com.savage7.maven.plugins
										</groupId>
										<artifactId>
											maven-external-dependency-plugin
										</artifactId>
										<versionRange>
											[0.5,)
										</versionRange>
										<goals>
											<goal>install-external</goal>
											<goal>resolve-external</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
		<plugins>
			<!--
				Plugin to add git commit information properties.
				These are used in the project.properties files.
				See: https://github.com/ktoso/maven-git-commit-id-plugin
			-->
			<plugin>
				<groupId>pl.project13.maven</groupId>
				<artifactId>git-commit-id-plugin</artifactId>
				<version>${git-commit-id-plugin-version}</version>
				<executions>
					<execution>
						<phase>initialize</phase>
						<goals>
							<goal>revision</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<dateFormat>yyyy-MM-dd</dateFormat>
					<verbose>false</verbose>
					<generateGitPropertiesFile>false</generateGitPropertiesFile>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>2.5.1</version>
				<configuration>
					<source>1.7</source>
					<target>1.7</target>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.9</version>
				<configuration>
					<additionalProjectnatures>
						<projectnature>org.springframework.ide.eclipse.core.springnature</projectnature>
					</additionalProjectnatures>
					<additionalBuildcommands>
						<buildcommand>org.springframework.ide.eclipse.core.springbuilder</buildcommand>
					</additionalBuildcommands>
					<downloadSources>true</downloadSources>
					<downloadJavadocs>true</downloadJavadocs>
					<wtpversion>1.5</wtpversion>
				</configuration>
			</plugin>

			<plugin>
				<artifactId>maven-idea-plugin</artifactId>
				<version>2.2</version>
				<configuration>
					<downloadSources>true</downloadSources>
					<downloadJavadocs>true</downloadJavadocs>
					<dependenciesAsLibraries>true</dependenciesAsLibraries>
					<useFullNames>false</useFullNames>
				</configuration>
			</plugin>

			<!--
				This plugin will take care of installing the external dependencies that do not
				exist in a public Maven repository. That is why we store some jar files in the
				"src/main/external-resources/lib" directory and have this plugin take care of
				the installation at build time.
				
				Note: The plugin does not work automatically in Maven 3. To install the required
				dependencies execute the following commands:
				
				mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external
				mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external
				
				Checksums can be calculated with "openssl sha1 [filename]".
				
				See: http://code.google.com/p/maven-external-dependency-plugin/issues/detail?id=8#c4
			-->
			<plugin>
				<groupId>com.savage7.maven.plugins</groupId>
				<artifactId>maven-external-dependency-plugin</artifactId>
				<version>0.5</version>
				<inherited>false</inherited>
				<configuration>
					<stagingDirectory>${project.build.directory}/dependencies/</stagingDirectory>
					<createChecksum>true</createChecksum>
					<skipChecksumVerification>false</skipChecksumVerification>
					<force>false</force>
					<artifactItems>
						<artifactItem>
							<groupId>com.jgoodies</groupId>
							<artifactId>common</artifactId>
							<version>${jgoodies-common-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<force>false</force>
							<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
							<checksum>5a4cf9866a7339e64e52f46101b5b13fe50b9c80</checksum>
							<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
							<extractFileChecksum>f3955d59f2263fb889b02febec74377647a2eaba</extractFileChecksum>
						</artifactItem>
						<artifactItem>
							<groupId>sevenzip</groupId>
							<artifactId>jbinding</artifactId>
							<version>${sevenzip-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<downloadUrl>http://www.spirton.com/uploads/7-Zip-JBinding/7-Zip-JBinding-{version}.{packaging}</downloadUrl>
						</artifactItem>
						<artifactItem>
							<groupId>sevenzip-allplatforms</groupId>
							<artifactId>jbinding-allplatforms</artifactId>
							<version>${sevenzip-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<downloadUrl>http://www.spirton.com/uploads/7-Zip-JBinding/7-Zip-JBinding-AllPlatforms-{version}.{packaging}</downloadUrl>
						</artifactItem>
						<artifactItem>
							<groupId>com.jgoodies</groupId>
							<artifactId>forms</artifactId>
							<version>${jgoodies-forms-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<force>false</force>
							<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
							<checksum>83bb8780a38cb6bc854964da298f0f657868871d</checksum>
							<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
							<extractFileChecksum>de8a67990cbeae62910cc2022f06c466476f2f2b</extractFileChecksum>
						</artifactItem>
						<artifactItem>
							<groupId>com.jgoodies</groupId>
							<artifactId>looks</artifactId>
							<version>${jgoodies-looks-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<force>false</force>
							<downloadUrl>http://www.jgoodies.com/download/libraries/{artifactId}/jgoodies-{artifactId}-{_version}.zip</downloadUrl>
							<checksum>ccba2963e63c8349f8a16a10abfd5102a94a182b</checksum>
							<extractFile>jgoodies-{artifactId}-{version}/jgoodies-{artifactId}-{version}.{packaging}</extractFile>
							<extractFileChecksum>535745c08e342f7ea78556baad44a4a52ffb7863</extractFileChecksum>
						</artifactItem>
						<artifactItem>
							<groupId>jwbroek.cuelib</groupId>
							<artifactId>cuelib</artifactId>
							<version>${cuelib-version}</version>
							<packaging>jar</packaging>
							<downloadUrl>http://cuelib.googlecode.com/files/cuelib-${cuelib-version}.jar</downloadUrl>
							<checksum>d03b6b960b3b83a2a419e8b5f07b6ba4bd18387b</checksum>
						</artifactItem>
						<artifactItem>
							<groupId>mediautil</groupId>
							<artifactId>mediautil</artifactId>
							<version>${mediautil-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<force>false</force>
							<downloadUrl>http://downloads.sourceforge.net/project/mediachest/MediaUtil/Version%201.0/mediautil-1.zip</downloadUrl>
							<checksum>aa7ae51bb24a9268a8e57c6afe478c4293f84fda</checksum>
							<extractFile>mediautil-${mediautil-version}/mediautil-${mediautil-version}.jar</extractFile>
							<extractFileChecksum>e843cd55def75dce57123c79b7f36caca4841466</extractFileChecksum>
						</artifactItem>
						<artifactItem>
							<groupId>com.googlecode</groupId>
							<artifactId>xmlwise</artifactId>
							<version>${xmlwise-version}</version>
							<packaging>jar</packaging>
							<install>true</install>
							<force>false</force>
							<downloadUrl>https://xmlwise.googlecode.com/files/xmlwise-${xmlwise-filename-version}.jar</downloadUrl>
							<checksum>82ed648273281ccd08da6f91df30573edf15185d</checksum>
						</artifactItem>
					</artifactItems>
				</configuration>
				<executions>
					<execution>
						<id>clean-external-dependencies</id>
						<phase>clean</phase>
						<goals>
							<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:clean-external -->
							<goal>clean-external</goal>
						</goals>
					</execution>
					<execution>
						<id>resolve-install-external-dependencies</id>
						<!-- Note: this phase works in Maven 2. In Maven 3, it needs to be triggered manually. See above -->
						<phase>validate</phase>
						<goals>
							<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:resolve-external -->
							<goal>resolve-external</goal>

							<!-- mvn com.savage7.maven.plugins:maven-external-dependency-plugin:install-external -->
							<goal>install-external</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
				<version>3.1</version>
				<dependencies>
					<dependency>
						<groupId>org.apache.maven.doxia</groupId>
						<artifactId>doxia-module-docbook-simple</artifactId>
						<version>1.2</version>
					</dependency>
				</dependencies>
				<configuration>
					<reportPlugins>
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-project-info-reports-plugin</artifactId>
							<version>2.4</version>
							<reports>
								<report>index</report>
								<report>dependencies</report>
								<report>dependency-convergence</report>
								<report>dependency-management</report>
								<report>plugins</report>
							</reports>
						</plugin>

						<!-- PMS tests report -->
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-surefire-report-plugin</artifactId>
							<version>2.5</version>
							<configuration>
								<showSuccess>false</showSuccess>
							</configuration>
						</plugin>

						<!-- Javadoc -->
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-javadoc-plugin</artifactId>
							<version>${maven-javadoc-plugin-version}</version>
							<configuration>
								<quiet>true</quiet>
								<tags>
									<tag>
										<name>todo</name>
										<placement>a</placement>
										<head>To Do:</head>
									</tag>
									<tag>
										<name>review</name>
										<placement>a</placement>
										<head>Review:</head>
									</tag>
								</tags>
								<detectJavaApiLink>false</detectJavaApiLink>
								<links>
									<link>http://download.oracle.com/javase/6/docs/api/</link>
								</links>

								<!--
									Doclet to generate class diagrams inside Javadoc.
									Requires the installation of Graphviz (http://www.graphviz.org/)
								-->
								<doclet>org.jboss.apiviz.APIviz</doclet>
								<docletArtifact>
									<groupId>org.jboss.apiviz</groupId>
									<artifactId>apiviz</artifactId>
									<version>1.3.1.GA</version>
								</docletArtifact>
								<useStandardDocletOptions>true</useStandardDocletOptions>
							</configuration>
						</plugin>

						<!-- Class dependency report -->
						<plugin>
							<groupId>org.codehaus.mojo</groupId>
							<artifactId>jdepend-maven-plugin</artifactId>
							<version>2.0-beta-2</version>
						</plugin>

						<!-- Findbugs report -->
						<plugin>
							<groupId>org.codehaus.mojo</groupId>
							<artifactId>findbugs-maven-plugin</artifactId>
							<version>2.3.2</version>
						</plugin>

						<!-- Checkstyle report will go out of memory because of the huge amount of issues it finds(!)
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-checkstyle-plugin</artifactId>
							<version>2.8</version>
						</plugin>
						-->

						<!-- Cobertura Test Coverage report -->
						<plugin>
							<groupId>org.codehaus.mojo</groupId>
							<artifactId>cobertura-maven-plugin</artifactId>
							<version>2.5.1</version>
						</plugin>

						<!-- PMD and CPD code analysis report -->
						<plugin>
							<groupId>org.apache.maven.plugins</groupId>
							<artifactId>maven-pmd-plugin</artifactId>
							<version>2.6</version>
							<configuration>
								<linkXref>false</linkXref>
								<sourceEncoding>utf-8</sourceEncoding>
								<minimumTokens>100</minimumTokens>
								<targetJdk>1.6</targetJdk>
							</configuration>
						</plugin>

						<!-- L10n internationalization report -->
						<plugin>
							<groupId>org.codehaus.mojo</groupId>
							<artifactId>l10n-maven-plugin</artifactId>
							<version>1.0-alpha-2</version>
							<configuration>
								<locales>
									<locale>de</locale>
									<locale>bg</locale>
									<locale>br</locale>
									<locale>ca</locale>
									<locale>cz</locale>
									<locale>da</locale>
									<locale>de</locale>
									<locale>el</locale>
									<locale>es</locale>
									<locale>fi</locale>
									<locale>fr</locale>
									<locale>is</locale>
									<locale>it</locale>
									<locale>ja</locale>
									<locale>ko</locale>
									<locale>nl</locale>
									<locale>no</locale>
									<locale>pl</locale>
									<locale>pt</locale>
									<locale>ro</locale>
									<locale>ru</locale>
									<locale>sl</locale>
									<locale>sv</locale>
									<locale>zhs</locale>
									<locale>zht</locale>				
								</locales>
							</configuration>
						</plugin>
					</reportPlugins>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>2.2</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin-version}</version>
			</plugin>
		</plugins>
	</build>
	<profiles>

		<!--
			Windows profile: takes care of building the final package for Microsoft Windows
		-->
		<profile>
			<id>windows</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<os>
					<family>windows</family>
				</os>
			</activation>

			<properties>
				<!--
					Last known JNA version known not to cause a Java crash
					when browsing folders with files in them on Windows.
				-->
				<jna-version>3.2.5</jna-version>
			</properties>			

			<pluginRepositories>
				<pluginRepository>
					<id>Codehaus Snapshots</id>
					<url>http://nexus.codehaus.org/snapshots/</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>true</enabled>
					</releases>
				</pluginRepository>
			</pluginRepositories>
			
			<build>
				<plugins>

					<!-- Plugin to assemble a jar with dependencies -->
					<plugin>
						<artifactId>maven-assembly-plugin</artifactId>
						<version>2.4</version>
						<executions>
							<execution>
								<id>make-jar-with-dependencies-win</id>
								<phase>prepare-package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
									</descriptors>
									<archive>
										<manifest>
											<mainClass>net.pms.PMS</mainClass>
											<!--
												this is required to make the ImageIo image "plugins" provided by jai-imageio-core-standalone work.
												without it, the following exception is thrown when PMS starts:

												Configuration error: java.util.ServiceConfigurationError: javax.imageio.spi.ImageInputStreamSpi:
													Provider com.sun.media.imageioimpl.stream.ChannelImageInputStreamSpi could not be instantiated:
														java.lang.IllegalArgumentException: vendorName == null!

												See: https://thierrywasyl.wordpress.com/2009/07/24/jai-how-to-solve-vendorname-null-exception/
											-->
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
										</manifest>
									</archive>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<!--
						Plugin to move the pms-x.x.x-jar-with-dependencies.jar to pms.jar
					-->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<id>process-resources-windows</id>
								<phase>process-resources</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- Make sure the download folders exist -->
										<mkdir dir="${project.binaries}" />
										<mkdir dir="${project.binaries}/win32" />
										<mkdir dir="${project.binaries}/win32/avisynth" />
										<mkdir dir="${project.binaries}/win32/codecs" />
										<mkdir dir="${project.binaries}/win32/dvrms" />
										<mkdir dir="${project.binaries}/win32/fonts" />
										<mkdir dir="${project.binaries}/win32/fonts/conf.avail" />
										<mkdir dir="${project.binaries}/win32/fonts/conf.d" />
										<mkdir dir="${project.binaries}/win32/fonts" />
										<mkdir dir="${project.binaries}/win32/interframe" />
										<mkdir dir="${project.binaries}/win32/mplayer" />
										<mkdir dir="${project.binaries}/win32/service" />

										<!-- Download all necessary Windows binaries. Keep the same structure because NSIS expects it that way. -->
										<get src="${project.binaries-base}/MediaInfo.dll" dest="${project.binaries}/MediaInfo.dll"  usetimestamp="true" />
										<get src="${project.binaries-base}/MediaInfo64.dll" dest="${project.binaries}/MediaInfo64.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/MediaInfo-License.html" dest="${project.binaries}/MediaInfo-License.html" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/Convert_License.txt" dest="${project.binaries}/win32/Convert_License.txt"  usetimestamp="true" />
										<get src="${project.binaries-base}/win32/LICENSE-dsnative.txt" dest="${project.binaries}/win32/LICENSE-dsnative.txt" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/LICENSE-mplayer.txt" dest="${project.binaries}/win32/LICENSE-mplayer.txt" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/builds.txt" dest="${project.binaries}/win32/builds.txt" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/convert.exe" dest="${project.binaries}/win32/convert.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/dcrawMS.exe" dest="${project.binaries}/win32/dcrawMS.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/ffmpeg.exe" dest="${project.binaries}/win32/ffmpeg.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/flac.exe" dest="${project.binaries}/win32/flac.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/mencoder.exe" dest="${project.binaries}/win32/mencoder.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/mplayer.exe" dest="${project.binaries}/win32/mplayer.exe"  usetimestamp="true" />
										<get src="${project.binaries-base}/win32/tsMuxeR.exe" dest="${project.binaries}/win32/tsMuxeR.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/vcomp100.dll" dest="${project.binaries}/win32/vcomp100.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/avisynth/avisynth.exe" dest="${project.binaries}/win32/avisynth/avisynth.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/drv33260.dll" dest="${project.binaries}/win32/codecs/drv33260.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/drv43260.dll" dest="${project.binaries}/win32/codecs/drv43260.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/drvc.dll" dest="${project.binaries}/win32/codecs/drvc.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/pncrt.dll" dest="${project.binaries}/win32/codecs/pncrt.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/sipr3260.dll" dest="${project.binaries}/win32/codecs/sipr3260.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/tokr3260.dll" dest="${project.binaries}/win32/codecs/tokr3260.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/wma9dmod.dll" dest="${project.binaries}/win32/codecs/wma9dmod.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/wmv9dmod.dll" dest="${project.binaries}/win32/codecs/wmv9dmod.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/codecs/wmvdmod.dll" dest="${project.binaries}/win32/codecs/wmvdmod.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/dvrms/ffmpeg_MPGMUX.exe" dest="${project.binaries}/win32/dvrms/ffmpeg_MPGMUX.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/dvrms/pthreadGC2.dll" dest="${project.binaries}/win32/dvrms/pthreadGC2.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/fonts.conf" dest="${project.binaries}/win32/fonts/fonts.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/20-unhint-small-vera.conf" dest="${project.binaries}/win32/fonts/conf.d/20-unhint-small-vera.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/30-metric-aliases.conf" dest="${project.binaries}/win32/fonts/conf.d/30-metric-aliases.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/30-urw-aliases.conf" dest="${project.binaries}/win32/fonts/conf.d/30-urw-aliases.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/40-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.d/40-nonlatin.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/45-latin.conf" dest="${project.binaries}/win32/fonts/conf.d/45-latin.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/49-sansserif.conf" dest="${project.binaries}/win32/fonts/conf.d/49-sansserif.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/50-user.conf" dest="${project.binaries}/win32/fonts/conf.d/50-user.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/51-local.conf" dest="${project.binaries}/win32/fonts/conf.d/51-local.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/60-latin.conf" dest="${project.binaries}/win32/fonts/conf.d/60-latin.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/65-fonts-persian.conf" dest="${project.binaries}/win32/fonts/conf.d/65-fonts-persian.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/65-nonlatin.conf" dest="${project.binaries}/win32/fonts/conf.d/65-nonlatin.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/69-unifont.conf" dest="${project.binaries}/win32/fonts/conf.d/69-unifont.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/80-delicious.conf" dest="${project.binaries}/win32/fonts/conf.d/80-delicious.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/90-synthetic.conf" dest="${project.binaries}/win32/fonts/conf.d/90-synthetic.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/fonts/conf.d/README" dest="${project.binaries}/win32/fonts/conf.d/README" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/interframe/InterFrame2.avsi" dest="${project.binaries}/win32/interframe/InterFrame2.avsi" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/interframe/svpflow_cpu.dll" dest="${project.binaries}/win32/interframe/svpflow_cpu.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/interframe/svpflow_gpu.dll" dest="${project.binaries}/win32/interframe/svpflow_gpu.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/interframe/svpflow1.dll" dest="${project.binaries}/win32/interframe/svpflow1.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/interframe/svpflow2.dll" dest="${project.binaries}/win32/interframe/svpflow2.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/mplayer/config" dest="${project.binaries}/win32/mplayer/config" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/mplayer/input.conf" dest="${project.binaries}/win32/mplayer/input.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/mplayer/subfont.ttf" dest="${project.binaries}/win32/mplayer/subfont.ttf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/service/wrapper-community-license-1.1.txt" dest="${project.binaries}/win32/service/wrapper-community-license-1.1.txt" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/service/wrapper.conf" dest="${project.binaries}/win32/service/wrapper.conf" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/service/wrapper.dll" dest="${project.binaries}/win32/service/wrapper.dll" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/service/wrapper.exe" dest="${project.binaries}/win32/service/wrapper.exe" usetimestamp="true" />
										<get src="${project.binaries-base}/win32/service/wrapper.jar" dest="${project.binaries}/win32/service/wrapper.jar" usetimestamp="true" />
									</target>
								</configuration>
							</execution>
							<execution>
								<id>prepare-package-windows</id>
								<phase>prepare-package</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- Copy the pms-x.x.x-jar-with-dependencies.jar to pms.jar -->
										<copy file="${project.basedir}/target/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
										      tofile="${project.basedir}/target/ums.jar" overwrite="true" />

										<!-- MediaInfo library needs to be in the standard library path to be found -->
										<copy file="${project.binaries}/MediaInfo.dll" todir="${project.basedir}" />
										<copy file="${project.binaries}/MediaInfo64.dll" todir="${project.basedir}" />
										<copy file="${project.binaries}/MediaInfo-License.html" todir="${project.basedir}" />
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<!--
						Plugin to build a Windows installer using the nullsoft scriptable install system (NSIS)
						The "generate-project" goal generates a file "target/project.nsh", which contains the
						definitions for project variables like "${PROJECT_BASEDIR}" that can be used in the
						"pms.nsi" and "setup.nsi" files. 
					-->
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>nsis-maven-plugin</artifactId>
						<version>1.0-SNAPSHOT</version>
						<executions>
							<execution>
								<id>build-pms-windows</id>
								<configuration>
									<makensisBin>${project.external-resources}/third-party/nsis/makensis.exe</makensisBin>
									<outputFile>${project.build.directory}/UMS.exe</outputFile>
									<setupScript>${project.external-resources}/nsis/pms.nsi</setupScript>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>generate-project</goal>
									<goal>compile</goal>
								</goals>
							</execution>

							<execution>
								<id>build-setup-windows</id>
								<configuration>
									<makensisBin>${project.external-resources}/third-party/nsis/makensis.exe</makensisBin>
									<outputFile>${project.build.directory}/UMS-setup.exe</outputFile>
									<setupScript>${project.external-resources}/nsis/setup.nsi</setupScript>
								</configuration>
								<phase>package</phase>
								<goals>
									<goal>generate-project</goal>
									<goal>compile</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!--
			Linux profile: takes care of building the final package for Linux
		-->
		<profile>
			<id>linux</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<os>
					<family>unix</family>
				</os>
			</activation>

			<build>
				<plugins>
					<plugin>
						<artifactId>maven-assembly-plugin</artifactId>
						<version>2.4</version>
						<executions>
							<!-- Assemble a jar with dependencies -->
							<execution>
								<id>make-jar-with-dependencies-linux</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
									</descriptors>
									<archive>
										<manifest>
											<mainClass>net.pms.PMS</mainClass>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
										</manifest>
									</archive>
								</configuration>
							</execution>

							<!-- Assemble the PMS distribution file. -->
							<execution>
								<id>build-pms-linux</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>${project.basedir}/src/main/assembly/assembly-linux.xml</descriptor>
									</descriptors>
									<archive>
										<manifest>
											<mainClass>net.pms.PMS</mainClass>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
										</manifest>
									</archive>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!--
						Use the antrun plugin to:

						Download the tsMuxeR binary to ${project.binaries}/tsMuxeR
						Copy the pms-x.x.x-jar-with-dependencies.jar to ums.jar
					-->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<id>process-resources-linux</id>
								<phase>process-resources</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- Make sure the binaries folder exists -->
										<mkdir dir="${project.binaries}" />

										<!-- Download binaries -->
										<get src="${project.binaries-base}/linux/ffmpeg" dest="${project.binaries}/ffmpeg" usetimestamp="true" />
										<get src="${project.binaries-base}/linux/mencoder" dest="${project.binaries}/mencoder" usetimestamp="true" />
										<get src="${project.binaries-base}/linux/mplayer" dest="${project.binaries}/mplayer" usetimestamp="true" />
										<get src="${project.binaries-base}/linux/tsMuxeR" dest="${project.binaries}/tsMuxeR" usetimestamp="true" />
										<get src="${project.binaries-base}/linux/tsMuxeR_licence.txt" dest="${project.binaries}/tsMuxeR_license.txt" usetimestamp="true" />
									</target>
								</configuration>
							</execution>
							<execution>
								<id>copy-jar-with-dependencies-linux</id>
								<phase>package</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<copy file="${project.basedir}/target/${project.artifactId}-${project.version}-jar-with-dependencies.jar"
											tofile="${project.basedir}/target/ums.jar" overwrite="true" />
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>			
		</profile>

		<!--
			Mac OSX profile: takes care of building the final package for Mac OSX
		-->
		<profile>
			<id>osx</id>
			<activation>
				<activeByDefault>false</activeByDefault>
				<os>
					<family>mac</family>
				</os>
			</activation>
			<build>
				<plugins>

					<!--
						Plugin to download binaries before assembly
					-->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-antrun-plugin</artifactId>
						<version>1.7</version>
						<executions>
							<execution>
								<id>process-resources-osx</id>
								<phase>test</phase>
								<goals>
									<goal>run</goal>
								</goals>

								<configuration>
									<target>
										<!-- Make sure the binaries folder exists -->
										<mkdir dir="${project.binaries}" />
										<mkdir dir="${project.binaries}/osx" />

										<!-- Download binaries -->
										<get src="${project.binaries-base}/osx/dcraw" dest="${project.binaries}/osx/dcraw" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/ffmpeg" dest="${project.binaries}/osx/ffmpeg" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/flac" dest="${project.binaries}/osx/flac" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/libmediainfo.dylib" dest="${project.binaries}/libmediainfo.dylib" usetimestamp="true" />
										<get src="${project.binaries-base}/MediaInfo-License.html" dest="${project.binaries}/MediaInfo-License.html" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/mencoder" dest="${project.binaries}/osx/mencoder" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/mplayer" dest="${project.binaries}/osx/mplayer" usetimestamp="true" />
										<get src="${project.binaries-base}/osx/tsMuxeR" dest="${project.binaries}/osx/tsMuxeR" usetimestamp="true" />

										<!-- MediaInfo library needs to be in the standard library path to be found -->
										<copy file="${project.binaries}/libmediainfo.dylib" todir="${project.basedir}" />
										<copy file="${project.binaries}/MediaInfo-License.html" todir="${project.basedir}" />

										<!-- Make all downloaded binaries executable -->
										<chmod dir="${project.binaries}/osx" perm="a+x" includes="*" />
									</target>
								</configuration>
							</execution>
							<execution>
								<id>prepare-package-osx</id>
								<phase>prepare-package</phase>
								<goals>
									<goal>run</goal>
								</goals>
								<configuration>
									<target>
										<!-- Make sure the target folder exists -->
										<mkdir dir="${project.build.directory}/${project.build.finalName}-distribution" />

										<!-- Create the shortcut to the Applications folder -->
										<exec executable="/usr/bin/osascript">
											<arg value="-e" />
											<arg value="tell application &quot;Finder&quot;" />
											<arg value="-e" />
											<arg value="set src to POSIX file &quot;/Applications&quot;" />
											<arg value="-e" />
											<arg value="set dest to POSIX file &quot;${project.build.directory}/${project.build.finalName}-distribution&quot;" />
											<arg value="-e" />
											<arg value="make new alias file to folder src at folder dest" />
											<arg value="-e" />
											<arg value="end tell" />
										</exec>
									</target>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<artifactId>maven-assembly-plugin</artifactId>
						<version>2.4</version>
						<executions>
							<!-- Assemble a jar with dependencies -->
							<execution>
								<id>make-jar-with-dependencies-osx</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>${project.basedir}/src/main/assembly/jar-with-dependencies.xml</descriptor>
									</descriptors>
									<archive>
										<manifest>
											<mainClass>net.pms.PMS</mainClass>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
										</manifest>
									</archive>
								</configuration>
							</execution>
							<!--
								Assemble the PMS files in the right place before creating
								the App Bundle and DMG disk image.
							-->
							<execution>
								<id>make-assembly-osx</id>
								<phase>package</phase>
								<goals>
									<goal>single</goal>
								</goals>
								<configuration>
									<descriptors>
										<descriptor>${project.basedir}/src/main/assembly/assembly-osx.xml</descriptor>
									</descriptors>
									<archive>
										<manifest>
											<mainClass>net.pms.PMS</mainClass>
											<addDefaultImplementationEntries>true</addDefaultImplementationEntries> <!-- see above for documentation -->
										</manifest>
									</archive>
								</configuration>
							</execution>
						</executions>
					</plugin>

					<!--
						Plugin to create the OSX Application Bundle and DMG disk image. This will
						automatically copy all dependencies to a local repository, so the
						jar-with-dependencies is not needed here.
					-->
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>osxappbundle-maven-plugin</artifactId>
						<version>1.0-alpha-2</version>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>bundle</goal>
								</goals>
								<configuration>
									<mainClass>net.pms.PMS</mainClass>
									<buildDirectory>${project.build.directory}/${project.build.finalName}-distribution</buildDirectory>
									<diskImageFile>${project.build.directory}/${project.build.finalName}.dmg</diskImageFile>
									<zipFile>${project.build.directory}/${project.build.finalName}-app.zip</zipFile>
									<javaApplicationStub>/System/Library/Frameworks/JavaVM.framework/Versions/Current/Resources/MacOS/JavaApplicationStub</javaApplicationStub>
									<bundleName>${project.name}</bundleName>
									<iconFile>${project.basedir}/src/main/resources/images/logo.icns</iconFile>
									<version>${project.version}</version>
									<jvmVersion>1.6+</jvmVersion>
									<!-- Options to the JVM, will be used as the value of VMOptions in Info.plist. -->
									<vmOptions>-Xmx768M -Xss16M -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -jar</vmOptions>
									<dictionaryFile>${project.external-resources}/osx/Info.plist-template.xml</dictionaryFile>
									<internetEnable>false</internetEnable>
									<additionalClasspath />
									<additionalResources />
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!--
			This profile allows running PMS from inside Eclipse
			(Requires a "mvn clean package" to download the binaries first)
		-->
		<profile>
			<id>run-from-eclipse</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>exec-maven-plugin</artifactId>
						<version>1.2.1</version>
						<executions>
							<execution>
								<phase>test</phase>
								<goals>
									<goal>java</goal>
								</goals>
								<configuration>
									<classpathScope>test</classpathScope>
									<mainClass>net.pms.PMS</mainClass>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile> 		
	</profiles>
</project>
