<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 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.
  -->
<archetype>
    <name>start</name>
    <sources-groups>
        <sources-group>
            <language>java</language>
            <templates>
                <template>App.java</template>
            </templates>
        </sources-group>
    </sources-groups>
    <test-sources-groups>
        <test-sources-group>
            <language>java</language>
            <templates>
                <template>AppTest.java</template>
            </templates>
        </test-sources-group>
    </test-sources-groups>
</archetype>
<archetype>
  <id>j2ee</id>
  <resources>
    <resource>pom.xml</resource>
    <resource>ear/pom.xml</resource>
    <resource>ejbs/src/main/resources/META-INF/ejb-jar.xml</resource>
    <resource>ejbs/pom.xml</resource>
    <resource>primary-source/pom.xml</resource>
    <resource>projects/logging/pom.xml</resource>
    <resource>projects/pom.xml</resource>
    <resource>servlets/pom.xml</resource>
    <resource>servlets/servlet/pom.xml</resource>
    <resource>servlets/servlet/src/main/webapp/index.jsp</resource>
    <resource>servlets/servlet/src/main/webapp/WEB-INF/web.xml</resource>
  </resources>
</archetype>
