<?xml version="1.0" encoding="UTF-8"?>
<!--
  (c) Copyright 2013 l33t labs LLC and others.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Distribution License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/org/documents/edl-v10.php

  Contributors:
     Tony McCrary - initial implementation
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>
    <groupId>org.eclipse.ui</groupId>
    <artifactId>org.eclipse.ui.images.renderer</artifactId>
    <version>1.0.100-SNAPSHOT</version>
    <name>Eclipse Platform SVG Renderer Plugin</name>

    <packaging>maven-plugin</packaging>

    <dependencies>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>3.0</version>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-project</artifactId>
            <version>3.0-alpha-2</version>
        </dependency>
        <dependency>
            <groupId>org.twdata.maven</groupId>
            <artifactId>mojo-executor</artifactId>
            <version>2.0</version>
        </dependency>
        <!-- 
            Image Filtering Library
            License: Apache License, Version 2.0
            http://www.jhlabs.com/ip/filters/
        -->
        <dependency>
              <groupId>com.jhlabs</groupId>
              <artifactId>filters</artifactId>
              <version>2.0.235-1</version>
          </dependency>
        <!-- 
            Advanced Image Scaling Library
            License: New BSD License
            https://code.google.com/p/java-image-scaling/
        -->
          <dependency>
              <groupId>com.mortennobel</groupId>
              <artifactId>java-image-scaling</artifactId>
              <version>0.8.5</version>
          </dependency>
          <!--  
              Batik SVG Rendering Library
              License: Apache License, Version 2.0
              http://xmlgraphics.apache.org/batik/
          -->
          <dependency>
              <groupId>org.apache.xmlgraphics</groupId>
              <artifactId>batik-rasterizer</artifactId>
              <version>1.7</version>
          </dependency>
          <dependency>
              <groupId>org.apache.xmlgraphics</groupId>
              <artifactId>batik-codec</artifactId>
              <version>1.7</version>
          </dependency>
    </dependencies>

    <build>
        <plugins>
          <!-- 
              Setup Java 1.5 output
          -->
          <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>
            </configuration>
          </plugin>
          <plugin>
              <artifactId>maven-plugin-plugin</artifactId>
              <version>2.3</version>
              <configuration>
                   <goalPrefix>eclipse-images-renderer</goalPrefix>
              </configuration>
           </plugin>
        </plugins>
        <pluginManagement>
        	<plugins>
        		<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
        		<plugin>
        			<groupId>org.eclipse.m2e</groupId>
        			<artifactId>lifecycle-mapping</artifactId>
        			<version>1.0.0</version>
        			<configuration>
        				<lifecycleMappingMetadata>
        					<pluginExecutions>
        						<pluginExecution>
        							<pluginExecutionFilter>
        								<groupId>
        									org.apache.maven.plugins
        								</groupId>
        								<artifactId>
        									maven-plugin-plugin
        								</artifactId>
        								<versionRange>
        									[2.3,)
        								</versionRange>
        								<goals>
        									<goal>descriptor</goal>
        								</goals>
        							</pluginExecutionFilter>
        							<action>
        								<ignore></ignore>
        							</action>
        						</pluginExecution>
        					</pluginExecutions>
        				</lifecycleMappingMetadata>
        			</configuration>
        		</plugin>
        	</plugins>
        </pluginManagement>
    </build>

</project>
