<!--
  ~ 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.
  -->

<assembly>
    <id>bin</id>
    <includeBaseDirectory>true</includeBaseDirectory> 
    <baseDirectory>axis2-${version}</baseDirectory>
    <formats>
	<!--<format>tar.gz</format>  //uncomment,if tar.gz archive needed-->
        <format>zip</format>
    </formats>


    <fileSets>
        <!--********************** creating the repository ********************** -->
        <fileSet>
            <directory>target/tmp-repository</directory>
            <outputDirectory>repository</outputDirectory>
            <includes>
                <include>**/*</include>
            </includes>
        </fileSet>

        <!--********************** creating the bin ********************** -->
        <!-- Copy bin scripts -->
        <fileSet>
            <directory>../../modules/tool/script</directory>
            <outputDirectory>bin</outputDirectory>
            <includes>
                <include>*.bat</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>../../modules/tool/script</directory>
            <outputDirectory>bin</outputDirectory>
            <includes>
                <include>*.sh</include>
            </includes>
            <fileMode>755</fileMode>
        </fileSet>

        <!--********************** creating the conf ********************** -->
        <!-- copy the axis2.xml into conf directoy -->
        <fileSet>
            <directory>../../modules/kernel/conf</directory>
            <outputDirectory>conf</outputDirectory>
            <includes>
                <include>axis2.xml</include>
            </includes>
        </fileSet>

        <!--********************** creating the webappp ********************** -->
        <!-- copy the web.xml into webapp/WEB-INF directory -->

        <fileSet>
            <directory>../../modules/webapp/conf</directory>
            <outputDirectory>webapp/WEB-INF</outputDirectory>
            <includes>
                <include>web.xml</include>
            </includes>
        </fileSet>


        <!-- copy the build.xml into webapp directory -->
        <fileSet>
            <directory>../../modules/webapp/scripts</directory>
            <outputDirectory>webapp</outputDirectory>
            <includes>
                <include>build.xml</include>
            </includes>
        </fileSet>


        <!-- copy *.properties to webapp/WEB-INF/classes directory -->
        <fileSet>
            <directory>../../modules/kernel/conf</directory>
            <outputDirectory>webapp/WEB-INF/classes</outputDirectory>
            <includes>
                <include>*.properties</include>
            </includes>
        </fileSet>


        <!-- copy contents of the webapp module -->
        <fileSet>
            <directory>../../modules/webapp/src/main/webapp</directory>
            <outputDirectory>webapp</outputDirectory>
            <excludes>
                <exclude>project.xml</exclude>
                <exclude>**/*.iml</exclude>
                <exclude>**/.*</exclude>
                <exclude>**/conf/**</exclude>
                <exclude>**/scripts/**</exclude>
            </excludes>
        </fileSet>

        <fileSet>
            <directory>../../modules/webapp/src/main/webapp</directory>
            <outputDirectory>webapp</outputDirectory>
            <excludes>
                <exclude>project.xml</exclude>
                <exclude>**/*.iml</exclude>
                <exclude>**/.*</exclude>
                <exclude>**/conf/**</exclude>
                <exclude>**/scripts/**</exclude>
            </excludes>
        </fileSet>


        <fileSet>
            <directory>../../modules/java2wsdl/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-java2wsdl-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/kernel/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-kernel-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/adb/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-adb-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/codegen/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-codegen-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/adb-codegen/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-adb-codegen-${version}.jar</include>
            </includes>
        </fileSet>

        <fileSet>
            <directory>../../modules/xmlbeans/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-xmlbeans-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/jibx/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-jibx-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/json/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-json-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/tool/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-tools-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/spring/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-spring-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/soapmonitor/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>soapmonitor-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/fastinfoset/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-fastinfoset-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/jaxbri/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-jaxbri-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/jaxws/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-jaxws-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/metadata/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-metadata-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/clustering/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-clustering-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/saaj/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-saaj-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/xmlbeans/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-xmlbeans-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/tool/axis2-ant-plugin/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-ant-plugin-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/mex/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>mex-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/corba/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-corba-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/mtompolicy/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-mtompolicy-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/mtompolicy/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-mtompolicy-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../modules/transports/target</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>axis2-transports-${version}.jar</include>
            </includes>
        </fileSet>
        <fileSet>
            <directory>../../legal</directory>
            <outputDirectory>lib</outputDirectory>
            <includes>
                <include>**/*.txt</include>
            </includes>
        </fileSet>

	<!-- TODO: Need to rename this file to INSTALL.txt -->
	<fileSet>
            <directory>target/tmp-doc-distro/docs</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>installation-std-bin.txt</include>
            </includes>
	</fileSet>

	<fileSet>
            <directory>../../modules/kernel/conf</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>log4j.properties</include>
                <include>commons-logging.properties</include>
            </includes>
	</fileSet>

	<fileSet>
            <directory>target/tmp-doc-distro/docs</directory>
            <outputDirectory></outputDirectory>
            <includes>
                <include>LICENSE.txt</include>
                <include>NOTICE.txt</include>
                <include>README.txt</include>
                <include>release-notes.html</include>
            </includes>
	</fileSet>

        <!-- copy samples -->
        <fileSet>
            <directory>../../modules/samples</directory>
            <outputDirectory>samples</outputDirectory>
            <includes>
				<include>databinding/**/*</include>
				<include>faulthandling/**/*</include>
				<include>jaxws-calculator/**/*</include>
				<include>jaxws-addressbook/**/*</include>
				<include>jaxws-samples/**/*</include>
				<include>java_first_jaxws/**/*</include>
				<include>jaxws-interop/**/*</include>
				<include>jaxws-dynamic/**/*</include>
				<include>jaxws-version/**/*</include>
				<include>mtom/**/*</include>
				<include>pojo/**/*</include>
				<include>pojoguide/**/*</include>
				<include>pojoguidespring/**/*</include>
				<include>quickstart/**/*</include>
				<include>quickstartadb/**/*</include>
				<include>quickstartaxiom/**/*</include>
				<include>quickstartjibx/**/*</include>
				<include>quickstartxmlbeans/**/*</include>
				<include>servicelifecycle/**/*</include>
				<include>soapwithattachments/**/*</include>
				<include>userguide/**/*</include>
				<include>version/**/*</include>
				<include>wsdl/**/*</include>
				<include>yahoojsonsearch/**/*</include>
				<include>yahoorestsearch/**/*</include>            
            </includes>
            <excludes>
                <exclude>**/*.iml</exclude>
            </excludes>
        </fileSet>
    </fileSets>
    
      <dependencySets>
        <dependencySet>
          <outputDirectory>lib</outputDirectory>
            <excludes>
                 <exclude>mx4j:mx4j-jmx:jar</exclude>
                 <exclude>mx4j:mx4j-impl:jar</exclude>
                 <exclude>mx4j:mx4j-remote:jar</exclude>
                 <exclude>mx4j:mx4j-tools:jar</exclude>
                 <exclude>mx4j:mx4j:jar</exclude>
                 <exclude>rome:rome:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-activation_1.1_spec:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-j2ee-jacc_1.0_spec:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-j2ee-management_1.0_spec:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar</exclude>
                 <exclude>org.apache.geronimo.specs:geronimo-jsp_2.0_spec:jar</exclude>
                 <exclude>org.apache.activemq:activemq-console:jar</exclude>
                 <exclude>org.apache.activemq:activemq-core:jar</exclude>
                 <exclude>org.apache.activemq:activemq-jaas:jar</exclude>
                 <exclude>org.apache.activemq:activemq-optional:jar</exclude>
                 <exclude>org.apache.activemq:activemq-optional:jar</exclude>
                 <exclude>org.apache.activemq:activemq-web:jar</exclude>
                 <exclude>org.apache.activemq:activemq-web-demo:war</exclude>
                 <exclude>xstream:xstream:jar</exclude>
                 <exclude>xom:xom:jar</exclude>
                 <exclude>xmlpull:xmlpull:jar</exclude>
                 <exclude>xerces:xmlParserAPIs:jar</exclude>
                 <exclude>org.apache.xbean:xbean-spring:jar</exclude>
                 <exclude>org.apache.tomcat:tribes:jar</exclude>
                 <exclude>org.springframework:spring:jar</exclude>	
                 <exclude>org.springframework:spring-beans:jar</exclude>
                 <exclude>org.springframework:spring-context:jar</exclude>	
                 <exclude>org.springframework:spring-core:jar</exclude>	
                 <exclude>org.springframework:spring-web:jar</exclude>	
                 <exclude>logkit:logkit:jar</exclude>	
                 <exclude>org.apache.tomcat:juli:jar</exclude>	
                 <exclude>javax.xml.bind:jsr173_api:jar</exclude>	
                 <exclude>jrms:jrms:jar</exclude>	
                 <exclude>activemq:jmdns:jar</exclude>	
                 <exclude>org.mortbay.jetty:jetty:jar</exclude>	
                 <exclude>org.mortbay.jetty:jetty-util:jar</exclude>	
                 <exclude>jdom:jdom:jar</exclude>
                 <exclude>jakarta-regexp:jakarta-regexp:jar</exclude>
                 <exclude>com.ibm.icu:icu4j:jar</exclude>
                 <exclude>org.apache.bcel:bcel:jar</exclude>	
                 <exclude>org.apache.activemq:activeio-core:jar</exclude>
                 <exclude>org.apache.ant:ant:jar</exclude>
                 <exclude>org.apache.ant:ant-launcher:jar</exclude>
                 <exclude>aopalliance:aopalliance:jar</exclude>
                 <exclude>org.apache.activemq:apache-activemq:jar</exclude>
                 <exclude>avalon-framework:avalon-framework:jar</exclude>
                 <exclude>axis:axis:jar</exclude>
                 <exclude>bsf:bsf:jar</exclude>
                 <exclude>commons-beanutils:commons-beanutils:jar</exclude>
                 <exclude>commons-collections:commons-collections:jar</exclude>
                 <exclude>commons-pool:commons-pool:jar</exclude>
                 <exclude>dom4j:dom4j:jar</exclude>
                 <exclude>com.sun.xml.fastinfoset:FastInfoset:jar</exclude>
                 <exclude>activesoap:jaxp-api:jar</exclude>
                 <exclude>rhino:js:jar</exclude>
                 <exclude>junit:junit:jar</exclude>
                 <exclude>javax.servlet:servlet-api</exclude>
                 <exclude>org.mortbay.jetty:servlet-api-2.5:jar:6.0.1</exclude>
            </excludes>
        </dependencySet>
      </dependencySets>
</assembly>
