<!--
  Copyright 2005-2006 The Apache Software Foundation

  Licensed 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.
-->
<!--
To manually build this distribution:
	1. Download Tomcat 5.5.9 and unpack it into the root drive of your machine.
	2. Add pluto user in pluto role to Tomcat's conf/tomcat-users.xml
	3. Add emptySessionPath="true" to Tomcat's conf/server.xml.
	4. Run mvn clean followed by mvn install from the root dir.
	5. Run mvn pluto:install -DinstallDir=/jakarta-tomcat-5.5.9 from the root dir.
	6. Run mvn site:site to build web site from the pluto-portal dir.
	7. Run mvn assembly:assembly from the pluto-portal dir to create the archives.
-->
<assembly>
  <id>bin</id>
  <formats>
    <format>tar.gz</format>
    <format>tar.bz2</format>
    <format>zip</format>
  </formats>
  <fileSets>
    <fileSet>
      <directory>../</directory>	
	  <outputDirectory>/</outputDirectory>
      <includes>
        <include>README*</include>
        <include>LICENSE*</include>
        <include>NOTICE*</include>
      </includes>
    </fileSet>

    <fileSet>
      <directory>target/tomcat</directory>
      <outputDirectory></outputDirectory>
    </fileSet>

    <fileSet>
      <directory>../pluto-site/target/site</directory>
	  <outputDirectory>webapps/ROOT</outputDirectory>
    </fileSet>
  </fileSets>
  <dependencySets>
  </dependencySets>
</assembly>
