<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">

    <parent>
		<groupId>org.apache.ws.savan</groupId>
		<artifactId>savan-parent</artifactId>
        <version>SNAPSHOT</version>
    </parent>
    
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.apache.ws.savan</groupId>
    <artifactId>savan</artifactId>
    <packaging>mar</packaging>
    <name>Savan - Mar</name>

    <build>
        <sourceDirectory>src/main/java</sourceDirectory>
        <testSourceDirectory>src/main/java</testSourceDirectory>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>
		
        <plugins>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <version>1.1</version>
                <executions>
                    <execution>
                        <id>create-test-resources</id>
                        <phase>process-test-resources</phase>
                        <configuration>
                            <tasks>
                                <!--copying classes from the core module-->
                                <copydir src="../core/target/classes"
                                      dest="target/classes"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>		


            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.4</source>
                    <target>1.4</target>
                </configuration>
            </plugin>
	    	
			<plugin>
        		<groupId>org.apache.axis2</groupId>
        		<artifactId>axis2-mar-maven-plugin</artifactId>
        		<version>SNAPSHOT</version>
        		<extensions>true</extensions>
		
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven</groupId>
                        <artifactId>maven-archiver</artifactId>
                        <version>2.2</version>
                    </dependency>
                </dependencies>

        		<configuration>
       	  			<includeDependencies>false</includeDependencies>
					<moduleXmlFile>module.xml</moduleXmlFile>
        		</configuration>
      	     </plugin> 
        </plugins>

    </build>
    
    <dependencies>
    	<dependency>
            <groupId>org.apache.sandesha2</groupId>
            <artifactId>sandesha2-core</artifactId>
            <version>SNAPSHOT</version>
        </dependency>
    </dependencies>

</project>
