<?xml version="1.0"?>
<!--
  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.
-->
<model xmlns="http://modello.codehaus.org/MODELLO/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://modello.codehaus.org/MODELLO/1.0.0 http://modello.codehaus.org/xsd/modello-1.0.0.xsd">
    <id>bundle-list</id>
    <name>BundleList</name>
    <description>
        <![CDATA[Model of a bundle list.]]>
    </description>
    <defaults>
        <default>
            <key>package</key>
            <value>org.apache.sling.maven.projectsupport.bundlelist</value>
        </default>
    </defaults>
    <classes>
        <class rootElement="true" xml.tagName="bundles">
            <name>BundleList</name>
            <description>List of bundles.</description>
            <version>1.0.0</version>
            <superClass>org.apache.sling.maven.projectsupport.bundlelist.BaseBundleList</superClass>
            <fields>
                <field>
                    <name>startLevels</name>
                    <version>1.0.0</version>
                    <association xml.itemsStyle="flat">
                        <type>StartLevel</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
            </fields>
        </class>
        <class xml.tagName="startLevel">
        	<name>StartLevel</name>
            <version>1.0.0</version>
            <superClass>org.apache.sling.maven.projectsupport.bundlelist.BaseStartLevel</superClass>
            <fields>
            	<field xml.attribute="true" java.setter="false" java.getter="false">
            		<name>level</name>
            		<version>1.0.0</version>
            		<type>String</type>
            	</field>
                <field>
                    <name>bundles</name>
                    <version>1.0.0</version>
                    <association xml.itemsStyle="flat">
                        <type>Bundle</type>
                        <multiplicity>*</multiplicity>
                    </association>
                </field>
            </fields>
        </class>
        <class xml.tagName="bundle">
            <name>Bundle</name>
            <description>A bundle.</description>
            <superClass>org.apache.sling.maven.projectsupport.bundlelist.BaseBundle</superClass>
            <fields>
                <field>
                    <name>groupId</name>
                    <version>1.0.0</version>
                    <type>String</type>
                    <required>true</required>
                </field>
                <field>
                    <name>artifactId</name>
                    <version>1.0.0</version>
                    <type>String</type>
                    <required>true</required>
                </field>
                <field>
                    <name>version</name>
                    <version>1.0.0</version>
                    <type>String</type>
                    <required>true</required>
                </field>
                <field>
                    <name>type</name>
                    <version>1.0.0</version>
                    <type>String</type>
                    <defaultValue>jar</defaultValue>
                </field>
                <field>
                    <name>classifier</name>
                    <version>1.0.0</version>
                    <type>String</type>
                </field>
                <field>
                    <name>startLevel</name>
                    <version>1.0.0</version>
                    <type>int</type>
                    <required>true</required>
                </field>
                <field>
                    <name>runModes</name>
                    <version>1.0.0</version>
                    <type>String</type>
                </field>
            </fields>
        </class>
    </classes>
</model>
