<!--
  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 xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>systemvm</id>
  <formats>
    <format>zip</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>
  <dependencySets>
    <dependencySet>
      <outputDirectory></outputDirectory>
    </dependencySet>
  </dependencySets>
  <fileSets>
    <fileSet>
      <directory>../../../scripts/storage/secondary/</directory>
      <outputDirectory>scripts/storage/secondary</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
    </fileSet>
    <fileSet>
      <directory>../../secondary-storage/scripts/</directory>
      <outputDirectory></outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>ssvm-check.sh</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>../../../scripts/storage/secondary/</directory>
      <outputDirectory>scripts/storage/secondary</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
    </fileSet>
    <fileSet>
      <directory>scripts</directory>
      <outputDirectory></outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
    </fileSet>
    <fileSet>
      <directory>conf</directory>
      <outputDirectory>conf</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>log4j-cloud.xml</include>
	<include>consoleproxy.properties</include>
	<include>agent.properties</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>images</directory>
      <outputDirectory>images</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>*.jpg</include>
	<include>*.gif</include>
        <include>*.png</include>
        <include>*.cur</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>js</directory>
      <outputDirectory>js</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>*.js</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>ui</directory>
      <outputDirectory>ui</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>*.ftl</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>css</directory>
      <outputDirectory>css</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>*.css</include>
      </includes>
    </fileSet>
    <fileSet>
      <directory>certs</directory>
      <outputDirectory>certs</outputDirectory>
      <directoryMode>555</directoryMode>
      <fileMode>555</fileMode>
      <includes>
        <include>*.keystore</include>
        <include>*.crt</include>
        <include>*.key</include>
      </includes>
    </fileSet>
  </fileSets>
</assembly>
