<?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.
  -->

<archetype-descriptor xmlns="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.0.0 http://maven.apache.org/xsd/archetype-descriptor-1.0.0.xsd"
  name="archiva-consumer-archetype" partial="false">

  <fileSets>
    <fileSet filtered="true" packaged="true">
      <directory>src/main/java</directory>
    </fileSet>
    <fileSet filtered="true" packaged="false">
      <directory>src/main/resources</directory>
    </fileSet>
    <fileSet filtered="true" packaged="true">
      <directory>src/test/java</directory>
    </fileSet>
    <fileSet filtered="true" packaged="false">
      <directory>src/test/resources</directory>
    </fileSet>
  </fileSets>
  <requiredProperties>
    <requiredProperty key="archivaVersion">
      <defaultValue>${archivaVersion}</defaultValue>
    </requiredProperty>
    <requiredProperty key="log4jVersion">
      <defaultValue>${log4j.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="slf4jVersion">
      <defaultValue>${slf4j.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="springVersion">
      <defaultValue>${spring.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="guavaVersion">
      <defaultValue>${guava.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="springockitoVersion">
      <defaultValue>${springockito.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="mockitoVersion">
      <defaultValue>${mockito.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="httpclientVersion">
      <defaultValue>${httpclient.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="httpcoreVersion">
      <defaultValue>${httpclient.core.version}</defaultValue>
    </requiredProperty>
    <requiredProperty key="asmVersion">
      <defaultValue>${asm.version}</defaultValue>
    </requiredProperty>
  </requiredProperties>
</archetype-descriptor>
