<?xml version="1.0" encoding="UTF-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<project
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
	<parent>
		<artifactId>turbine-parent</artifactId>
		<groupId>org.apache.turbine</groupId>
		<version>7</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.apache.fulcrum</groupId>
	<artifactId>fulcrum-groovy</artifactId>
	<name>Fulcrum Groovy Component</name>
	<version>1.0.1-dev</version>

	<url>http://turbine.apache.org/fulcrum/fulcrum-groovy</url>
	<scm>
		<connection>scm:svn:http://svn.apache.org/repos/asf/turbine/fulcrum/trunk/groovy/</connection>
		<developerConnection>scm:svn:https://svn.apache.org/repos/asf/turbine/fulcrum/trunk/groovy/</developerConnection>
		<url>http://svn.apache.org/viewvc/turbine/fulcrum/trunk/groovy/</url>
	</scm>

	<build>
		<sourceDirectory>${basedir}/src/java/</sourceDirectory>
		<testSourceDirectory>${basedir}/src/test/</testSourceDirectory>
		<testResources>
			<testResource>
				<directory>${basedir}/src/test</directory>
				<includes>
					<include>**/*.*</include>
				</includes>
			</testResource>
		</testResources>
		<plugins>
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<includes>
						<include>**/*Test.*</include>
					</includes>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-antrun-plugin</artifactId>
				<version>1.8</version>
				<executions>
					<execution>
						<id>delete-temp-txt</id> <!-- Deleting temporary files -->
						<phase>clean</phase>
						<configuration>
							<target>
								<ant antfile="${basedir}/scripts/delete_temp-scripts.xml"
									target="delete-temp-files">
									<property name="delete.path" value="${basedir}/temp" />
									<property name="delete.include" value="*.txt" />
								</ant>
							</target>
						</configuration>
						<goals>
							<goal>run</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
	<dependencies>
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.9</version>
		</dependency>
		<dependency>
			<groupId>org.apache.fulcrum</groupId>
			<artifactId>fulcrum-resourcemanager</artifactId>
			<version>1.0.2-SNAPSHOT</version>
		</dependency>
		<dependency>
		    <groupId>org.codehaus.groovy</groupId>
		    <artifactId>groovy-all</artifactId>
		    <version>2.5.14</version>
		    <type>pom</type>
		</dependency>

		<!-- Needed only for testing -->
		<dependency>
			<groupId>org.apache.fulcrum</groupId>
			<artifactId>fulcrum-testcontainer</artifactId>
			<version>1.0.9</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.apache.fulcrum</groupId>
			<artifactId>fulcrum-yaafi</artifactId>
			<version>1.0.8</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<properties>
		<turbine.site.path>fulcrum/fulcrum-groovy</turbine.site.path>
	</properties>


</project>
