<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (C) 2012 The Android Open Source Project

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.
-->
<archetype-descriptor name="Gerrit Plugin">
  <requiredProperties>
    <requiredProperty key="pluginName"/>

    <requiredProperty key="Implementation-Vendor">
      <defaultValue>Gerrit Code Review</defaultValue>
    </requiredProperty>
    <requiredProperty key="Gwt-Version">
      <defaultValue>2.7.0</defaultValue>
    </requiredProperty>

    <requiredProperty key="gerritApiVersion">
      <defaultValue>${defaultGerritApiVersion}</defaultValue>
    </requiredProperty>
  </requiredProperties>

  <fileSets>
    <fileSet filtered="true" packaged="true">
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.css</include>
        <include>**/*.png</include>
        <include>**/*.java</include>
        <include>**/*.gwt.xml</include>
      </includes>
    </fileSet>

    <fileSet filtered="true">
      <directory>src/main/resources/Documentation</directory>
      <includes>
        <include>**/*.md</include>
      </includes>
    </fileSet>

    <fileSet filtered="true">
      <directory></directory>
      <include>.buckconfig</include>
      <include>BUCK</include>
      <include>VERSION</include>
      <include>lib/gerrit/BUCK</include>
      <include>lib/gwt/BUCK</include>
      <excludes>
        <exclude>**/client/</exclude>
        <exclude>**/public/</exclude>
        <exclude>**/*.css</exclude>
        <exclude>**/*.png</exclude>
        <exclude>**/*.java</exclude>
        <exclude>**/*.gwt.xml</exclude>
      </excludes>
    </fileSet>

    <fileSet>
      <directory></directory>
      <includes>
        <include>.gitignore</include>
        <include>.settings/*</include>
        <include>LICENSE</include>
      </includes>
    </fileSet>
  </fileSets>
</archetype-descriptor>
