<?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
        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>
    <parent>
        <groupId>org.apache.synapse</groupId>
        <artifactId>synapse</artifactId>
        <version>1.1.1</version>
    </parent>

    <groupId>org.apache.synapse</groupId>
    <artifactId>synapse-war</artifactId>

    <name>Apache Synapse - Web Application</name>
    <description>Apache Synapse - Web Application</description>
    <packaging>war</packaging>
    <build>
        <finalName>synapse</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>2.0-alpha-1</version>
                <executions>
                    <execution>
                        <id>copy</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>copy</goal>
                        </goals>
                        <configuration>
                            <artifactItems>
                                <artifactItem>
                                    <groupId>org.apache.axis2</groupId>
                                    <artifactId>addressing</artifactId>
                                    <version>${addressing.version}</version>
                                    <type>mar</type>
                                    <outputDirectory>target/temp/lib</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.sandesha2</groupId>
                                    <artifactId>sandesha2</artifactId>
                                    <version>${sandesha2.version}</version>
                                    <type>mar</type>
                                    <outputDirectory>target/temp/lib</outputDirectory>
                                </artifactItem>
                                <artifactItem>
                                    <groupId>org.apache.rampart</groupId>
                                    <artifactId>rampart</artifactId>
                                    <version>${rampart.version}</version>
                                    <type>mar</type>
                                    <outputDirectory>target/temp/lib</outputDirectory>
                                </artifactItem>
                            </artifactItems>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <warName>synapse</warName>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                    <outputDirectory>target</outputDirectory>
                    <webResources>
                        <resource>
                            <directory>repository</directory>
                            <targetPath>WEB-INF/repository</targetPath>
                            <excludes>
                                <exclude>conf/web.xml</exclude>
                                <exclude>conf/axis2.xml</exclude>
                                <exclude>conf/synapse.xml</exclude>
                            </excludes>
                        </resource>
                        <!--<resource>-->
                            <!--<directory>repository/conf/sample/resources/misc/client-->
                            <!--</directory>-->
                            <!--<targetPath>samples/axis2Client/client_repo/conf</targetPath>-->
                            <!--<includes>-->
                                <!--<include>axis2.xml</include>-->
                            <!--</includes>-->
                        <!--</resource>-->
                        <!--<resource>-->
                            <!--<directory>repository/conf/sample/resources/misc/server-->
                            <!--</directory>-->
                            <!--<targetPath>samples/axis2Server/repository/conf</targetPath>-->
                            <!--<includes>-->
                                <!--<include>axis2.xml</include>-->
                            <!--</includes>-->
                        <!--</resource>-->
                        <resource>
                            <directory>modules/core/src/main/resources</directory>
                            <targetPath>WEB-INF/classes</targetPath>
                            <includes>
                                <include>log4j.properties</include>
                                <include>synapse.properties</include>
                                <include>identity.jks</include>
                                <include>trust.jks</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>modules/core/target</directory>
                            <targetPath>WEB-INF/repository/modules</targetPath>
                            <includes>
                                <include>synapse-${synapse.version}.mar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>modules/war/target/temp/lib</directory>
                            <targetPath>WEB-INF/repository/modules</targetPath>
                            <includes>
                                <include>addressing-${addressing.version}.mar</include>
                                <include>rampart-${rampart.version}.mar</include>
                                <include>sandesha2-${sandesha2.version}.mar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>src/main/release/docs</directory>
                            <targetPath>docs</targetPath>
                            <includes>
                                <include>release_notes.txt</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>src/site/resources</directory>
                            <targetPath>docs</targetPath>
                            <includes>
                                <include>Synapse_Configuration_Language.html</include>
                                <include>Synapse_Samples.html</include>
                                <include>Synapse_Samples_Setup.html</include>
                                <include>Synapse_QuickStart.html</include>
                                <include>Synapse_Extending.html</include>
                            </includes>
                        </resource>
                        <!--<resource>-->
                            <!--<directory>modules/samples/services</directory>-->
                            <!--<targetPath>samples/axis2Server/src</targetPath>-->
                        <!--</resource>-->
                        <!--<resource>-->
                            <!--<directory>modules/samples/src/main/java</directory>-->
                            <!--<targetPath>samples/axis2Client/src</targetPath>-->
                            <!--<excludes>-->
                                <!--<exclude>**/target</exclude>-->
                                <!--<exclude>**/target/**/*</exclude>-->
                            <!--</excludes>-->
                        <!--</resource>-->
                        <!--<resource>-->
                            <!--<directory>modules/samples/src/main/scripts</directory>-->
                            <!--<targetPath>samples/axis2Client</targetPath>-->
                            <!--<excludes>-->
                                <!--<exclude>custom.sh</exclude>-->
                                <!--<exclude>custom.bat</exclude>-->
                                <!--<exclude>axis2server.sh</exclude>-->
                                <!--<exclude>axis2server.bat</exclude>-->
                            <!--</excludes>-->
                        <!--</resource>-->
                        <!--<resource>-->
                            <!--<directory>modules/samples/src/main/scripts</directory>-->
                            <!--<targetPath>samples/axis2Server</targetPath>-->
                            <!--<includes>-->
                                <!--<include>axis2server.sh</include>-->
                            <!--</includes>-->
                        <!--</resource>-->
                        <!--<resource>-->
                            <!--<directory>modules/samples/src/main/scripts</directory>-->
                            <!--<targetPath>samples/axis2Server</targetPath>-->
                            <!--<includes>-->
                                <!--<include>axis2server.bat</include>-->
                            <!--</includes>-->
                        <!--</resource>-->
                        <resource>
                            <directory>modules/core/target</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                            <includes>
                                <include>synapse-core-${synapse.version}.jar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>modules/samples/target</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                            <includes>
                                <include>synapse-samples-${synapse.version}.jar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>modules/extensions/target</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                            <includes>
                                <include>synapse-extensions-${synapse.version}.jar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>modules/transports/target</directory>
                            <targetPath>WEB-INF/lib</targetPath>
                            <includes>
                                <include>synapse-transports-${synapse.version}.jar</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>repository/conf</directory>
                            <targetPath>WEB-INF/conf</targetPath>
                            <includes>
                                <include>axis2.xml</include>
                                <include>synapse.xml</include>
                            </includes>
                        </resource>
                        <resource>
                            <directory>repository/conf</directory>
                            <targetPath>WEB-INF</targetPath>
                            <includes>
                                <include>web.xml</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

        </plugins>
    </build>
</project>
