<?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 name="nested-inner" partial="false" >

    <requiredProperties>
        <requiredProperty key="XXX">
            <defaultValue>default-value</defaultValue>
        </requiredProperty>
        <requiredProperty key="XXX"/>
    </requiredProperties>

    <fileSets/>

    <modules>
        <module artifactId="${rootArtifactId}-n-innest" nested="true" archetypeGroupId="archetypes" archetypeArtifactId="nested-innest" archetypeVersion="1.0" />
        <module artifactId="${rootArtifactId}-n-old" nested="true" archetypeGroupId="archetypes" archetypeArtifactId="old" archetypeVersion="1.0" />
        <module artifactId="${rootArtifactId}-inner">
            <modules>
                <module artifactId="${rootArtifactId}-n2-innest" nested="true" archetypeGroupId="archetypes" archetypeArtifactId="nested-innest" archetypeVersion="1.0" />
                <module artifactId="${rootArtifactId}-innest" >
                    <modules>
                        <module artifactId="${rootArtifactId}-innest" nested="true" archetypeGroupId="archetypes" archetypeArtifactId="nested-partial" archetypeVersion="1.0" />
                    </modules>
                </module>
            </modules>
        </module>
    </modules>

</archetype-descriptor>
