ModelloFeaturesTest

A model to test Modello features with every plugin and point to plugin specific features.

<features-demo xmlns="http://codehaus-plexus.github.io/FEATURES/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://codehaus-plexus.github.io/FEATURES/1.0.0 http://codehaus-plexus.github.io/features-1.0.0.xsd">
  <versionField/>
  <comment/>
  <description/>
  <required/>
  <identifier/>
  <identifierPart2>
    <id/>
  </identifierPart2>

  <simpleTypes>
    <primitiveBoolean/>
    <primitiveChar/>
    <primitiveByte/>
    <primitiveShort/>
    <primitiveInt/>
    <primitiveLong/>
    <primitiveFloat/>
    <primitiveDouble/>
    <objectString/>
    <objectDate/>
    <primitiveBooleanNoDefault/>
    <primitiveCharNoDefault/>
    <primitiveByteNoDefault/>
    <primitiveShortNoDefault/>
    <primitiveIntNoDefault/>
    <primitiveLongNoDefault/>
    <primitiveFloatNoDefault/>
    <primitiveDoubleNoDefault/>
    <objectStringNoDefault/>
    <objectDateNoDefault/>
    <dom/>
    <content attr=.. attr2=.. />
  </simpleTypes>
  <defaultValues>
    <primitiveBoolean/>
    <primitiveChar/>
    <primitiveByte/>
    <primitiveShort/>
    <primitiveInt/>
    <primitiveLong/>
    <primitiveFloat/>
    <primitiveDouble/>
    <objectString/>
    <objectDate/>
    <primitiveBooleanNoDefault/>
    <primitiveCharNoDefault/>
    <primitiveByteNoDefault/>
    <primitiveShortNoDefault/>
    <primitiveIntNoDefault/>
    <primitiveLongNoDefault/>
    <primitiveFloatNoDefault/>
    <primitiveDoubleNoDefault/>
    <objectStringNoDefault/>
    <objectDateNoDefault/>
    <dom/>
    <content attr=.. attr2=.. />
  </defaultValues>

  <arrays/>

  <associationFeatures>
    <listReferences>
      <listReference>
        <id/>
      </listReference>
    </listReferences>
    <setReferences>
      <setReference>
        <id/>
      </setReference>
    </setReferences>
    <listStrings/>
    <setStrings/>
    <properties>
      <key>value</key>
    </properties>
    <bidi>
      <parent>
        <listReferences>
          <listReference>
            <id/>
          </listReference>
        </listReferences>
        <setReferences>
          <setReference>
            <id/>
          </setReference>
        </setReferences>
        <listStrings/>
        <setStrings/>
        <properties>
          <key>value</key>
        </properties>
        <bidi>...recursion...<bidi>
        <listOfBidis>
          <listOfBidi>
            <parent>...recursion...<parent>
          </listOfBidi>
        </listOfBidis>
        <setOfBidis>
          <setOfBidi>
            <parent>...recursion...<parent>
          </setOfBidi>
        </setOfBidis>
      </parent>
    </bidi>
    <listOfBidis>
      <listOfBidi>
        <parent>
          <listReferences>
            <listReference>
              <id/>
            </listReference>
          </listReferences>
          <setReferences>
            <setReference>
              <id/>
            </setReference>
          </setReferences>
          <listStrings/>
          <setStrings/>
          <properties>
            <key>value</key>
          </properties>
          <bidi>
            <parent>...recursion...<parent>
          </bidi>
          <listOfBidis>
            <listOfBidi>...recursion...<listOfBidi>
          </listOfBidis>
          <setOfBidis>
            <setOfBidi>
              <parent>...recursion...<parent>
            </setOfBidi>
          </setOfBidis>
        </parent>
      </listOfBidi>
    </listOfBidis>
    <setOfBidis>
      <setOfBidi>
        <parent>
          <listReferences>
            <listReference>
              <id/>
            </listReference>
          </listReferences>
          <setReferences>
            <setReference>
              <id/>
            </setReference>
          </setReferences>
          <listStrings/>
          <setStrings/>
          <properties>
            <key>value</key>
          </properties>
          <bidi>
            <parent>...recursion...<parent>
          </bidi>
          <listOfBidis>
            <listOfBidi>
              <parent>...recursion...<parent>
            </listOfBidi>
          </listOfBidis>
          <setOfBidis>
            <setOfBidi>...recursion...<setOfBidi>
          </setOfBidis>
        </parent>
      </setOfBidi>
    </setOfBidis>
  </associationFeatures>

  <javaFeatures>
    <interfaces>
      <id/>
    </interfaces>
    <packageName>
      <reference>
        <id/>
      </reference>
    </packageName>
    <base baseAttribute=.. >
      <baseElement/>
    </base>
    <subClass subAttribute1=.. baseAttribute=.. >
      <subElement1/>
      <baseElement/>
    </subClass>
    <subClass2 subAttribute2=.. subAttribute1=.. baseAttribute=.. >
      <subElement2/>
      <subElement1/>
      <baseElement/>
    </subClass2>
    <subClass3 subAttribute3=.. subAttribute2=.. subAttribute1=.. baseAttribute=.. >
      <subElement3/>
      <subElement2/>
      <subElement1/>
      <baseElement/>
    </subClass3>
    <annotation>
      <anyField/>
    </annotation>
  </javaFeatures>

  <xmlFeatures tag-name.attribute=.. >
    <attributes primitiveBoolean=.. primitiveChar=.. primitiveByte=.. primitiveShort=.. primitiveInt=.. primitiveLong=.. primitiveFloat=.. primitiveDouble=.. objectString=.. objectDate=.. tag-name=.. />
    <attributesDefault primitiveBoolean=.. primitiveChar=.. primitiveByte=.. primitiveShort=.. primitiveInt=.. primitiveLong=.. primitiveFloat=.. primitiveDouble=.. objectString=.. objectDate=.. tag-name=.. />
    <content>
      <content.long/>
      <content.long-with-attributes attr=.. attr2=.. />
    </content>
    <fieldTrim/>
    <fieldNoTrim/>
    <dom/>
    <domNoTrim/>
    <tag-name/>
    <dateXmlFormat/>
    <dateLong/>
    <xmlItemsStyleFlat>
      <id/>
    </xmlItemsStyleFlat>
    <xmlAssociationTagNames>
      <association.tag-name>
        <id/>
      </association.tag-name>
    </xmlAssociationTagNames>
    <field.tag-names>
      <field.tag-name>
        <id/>
      </field.tag-name>
    </field.tag-names>
    <field.tag-name>
      <association.tag-name>
        <id/>
      </association.tag-name>
    </field.tag-name>
    <association.tag-name>
      <id/>
    </association.tag-name>
    <explodeProperties>
      <key/>
      <value/>
    </explodeProperties>
    <inlineProperties>
      <key>value</key>
    </inlineProperties>
    <xmlTransientFields>
      <persistentField/>
    </xmlTransientFields>
    <xmlFieldsOrder>
      <field1/>
      <field-2/>
      <field3/>
      <field4/>
      <field5/>
      <field6/>
      <field7/>
    </xmlFieldsOrder>
    <xsdFeatures attribute=.. />
  </xmlFeatures>

  <xdocFeatures>
    <field/>
    <xdocSeparatorNone/>

    <xdocSeparatorBlank/>
  </xdocFeatures>
  <node>
    <value/>
    <child>
      <value/>
      <child>...recursion...<child>
    </child>
  </node>
  <cloneable>
    <someBoolean/>
    <someChar/>
    <someByte/>
    <someShort/>
    <someInt/>
    <someLong/>
    <someFloat/>
    <someDouble/>
    <someString/>
    <someDate/>
    <someDom/>
    <someProperties>
      <key>value</key>
    </someProperties>
    <someStringList/>
    <someStringSet/>
    <deepThingy/>
    <deepThingyList>
      <deepThingyList/>
    </deepThingyList>
    <deepThingySet>
      <deepThingySet/>
    </deepThingySet>
    <shallowThingy/>
    <shallowThingyList>
      <shallowThingyList/>
    </shallowThingyList>
    <shallowThingySet>
      <shallowThingySet/>
    </shallowThingySet>
  </cloneable>

  <file>
    <file/>
  </file>
  <action dev=.. />
</features-demo>

features-demo

No description.

Element Type Description
versionField String A field described as model's versionDefinition field: its value contains the version of the model used.
comment String No description.
description String Test of a description.
required String <field><required>true</required></field>: Test of a required field.
identifier String <field><identifier>true</identifier></field>: a field taking part in instance identifier. This field is used to generate toString(), hashCode() and equals() methods.
identifierPart2 Reference Multiple fields can be participate in an identifier, either simple types or complex ones.
simpleTypes SimpleTypes No description.
defaultValues SimpleTypes No description.
arrays ArrayFeatures No description.
associationFeatures AssociationFeatures Test of association features.
javaFeatures JavaFeatures No description.
xmlFeatures XmlFeatures No description.
xdocFeatures XdocFeatures No description.
node NodeItem No description.
cloneable Thing No description.
file File No description.
action Action No description.

identifierPart2

A simple class for association demo.

Element Type Description
id String No description.

simpleTypes

<field><type>chose a type</type><field>: Test of every simple types supported.

Element Type Description
primitiveBoolean boolean boolean primitive.

Default value: true

primitiveChar char char primitive.

Default value: H

primitiveByte byte byte primitive.

Default value: 12

primitiveShort short short primitive.

Default value: 1212

primitiveInt int int primitive.

Default value: 121212

primitiveLong long long primitive.

Default value: 1234567890123

primitiveFloat float float primitive.

Default value: 12.12

primitiveDouble double double primitive.

Default value: 12.12

objectString String String class.

Default value: default value

objectDate Date Date class.

Default value: 2012-12-24T22:12:12.012

primitiveBooleanNoDefault boolean boolean primitive.

Default value: false

primitiveCharNoDefault char char primitive.

Default value:

primitiveByteNoDefault byte byte primitive.

Default value: 0

primitiveShortNoDefault short short primitive.

Default value: 0

primitiveIntNoDefault int int primitive.

Default value: 0

primitiveLongNoDefault long long primitive.

Default value: 0

primitiveFloatNoDefault float float primitive.

Default value: 0.0

primitiveDoubleNoDefault double double primitive.

Default value: 0.0

objectStringNoDefault String String class.
objectDateNoDefault Date Date class.
dom DOM DOM type.
content ContentTest Content type: in fact, an association to a class with attributes and one Content field.

content

A model class that has only XMl attributes fields and exactly one field with Content type.

Element Content: The field of the class with Content type.

Attribute Type Description
attr String An XML attribute.
attr2 int A 2nd XML attribute.

Default value: 0

defaultValues

<field><type>chose a type</type><field>: Test of every simple types supported.

Element Type Description
primitiveBoolean boolean boolean primitive.

Default value: true

primitiveChar char char primitive.

Default value: H

primitiveByte byte byte primitive.

Default value: 12

primitiveShort short short primitive.

Default value: 1212

primitiveInt int int primitive.

Default value: 121212

primitiveLong long long primitive.

Default value: 1234567890123

primitiveFloat float float primitive.

Default value: 12.12

primitiveDouble double double primitive.

Default value: 12.12

objectString String String class.

Default value: default value

objectDate Date Date class.

Default value: 2012-12-24T22:12:12.012

primitiveBooleanNoDefault boolean boolean primitive.

Default value: false

primitiveCharNoDefault char char primitive.

Default value:

primitiveByteNoDefault byte byte primitive.

Default value: 0

primitiveShortNoDefault short short primitive.

Default value: 0

primitiveIntNoDefault int int primitive.

Default value: 0

primitiveLongNoDefault long long primitive.

Default value: 0

primitiveFloatNoDefault float float primitive.

Default value: 0.0

primitiveDoubleNoDefault double double primitive.

Default value: 0.0

objectStringNoDefault String String class.
objectDateNoDefault Date Date class.
dom DOM DOM type.
content ContentTest Content type: in fact, an association to a class with attributes and one Content field.

arrays

<field><type>chose a type[]</type><field>: Test of arrays of every types supported (java plugin only).

associationFeatures

<field><type>chose a type</type><field>: Test of every simple types supported.

Element Type Description
listReferences/listReference* List<Reference> (Many) No description.
setReferences/setReference* Set<Reference> (Many) No description.
listStrings/listString* List<String> (Many) No description.
setStrings/setString* Set<String> (Many) No description.
properties/key=value* Properties (Many) No description.
bidi Bidirectional No description.
listOfBidis/listOfBidi* List<BidiInList> (Many) No description.
setOfBidis/setOfBidi* Set<BidiInSet> (Many) No description.

listReference

A simple class for association demo.

Element Type Description
id String No description.

setReference

A simple class for association demo.

Element Type Description
id String No description.

bidi

Test of a bidirectional association, ie an association that has a reference to its parent.

Element Type Description
parent AssociationFeatures No description.

parent

<field><type>chose a type</type><field>: Test of every simple types supported.

Element Type Description
listReferences/listReference* List<Reference> (Many) No description.
setReferences/setReference* Set<Reference> (Many) No description.
listStrings/listString* List<String> (Many) No description.
setStrings/setString* Set<String> (Many) No description.
properties/key=value* Properties (Many) No description.
bidi Bidirectional No description.
listOfBidis/listOfBidi* List<BidiInList> (Many) No description.
setOfBidis/setOfBidi* Set<BidiInSet> (Many) No description.

listOfBidi

No description.

Element Type Description
parent AssociationFeatures No description.

setOfBidi

No description.

Element Type Description
parent AssociationFeatures No description.

javaFeatures

Test of java generation specific parameters: see JavaMetadataPlugin class.

Element Type Description
interfaces InterfacesFeature No description.
packageName PackageNameFeature No description.
base BaseClass No description.
subClass SubClassLevel1 No description.
subClass2 SubClassLevel2 No description.
subClass3 SubClassLevel3 No description.
annotation AnnotationTest No description.

interfaces

.

Element Type Description
id String No description.

packageName

<class><packageName>...</packageName></class>: A class generated in a package different from the default one.

Element Type Description
reference Reference No description.

reference

A simple class for association demo.

Element Type Description
id String No description.

base

A base class, to be inherited.

Attribute Type Description
baseAttribute int No description.

Default value: 0

Element Type Description
baseElement int No description.

Default value: 0

subClass

<class><superClass>BaseClass</superClass></class>: A class inheriting from BaseClass.

Attribute Type Description
subAttribute1 long No description.

Default value: 0

baseAttribute int No description.

Default value: 0

Element Type Description
subElement1 long No description.

Default value: 0

baseElement int No description.

Default value: 0

subClass2

<class><superClass>SubClassLevel1</superClass></class>: A class inheriting from SubClassLevel1.

Attribute Type Description
subAttribute2 float No description.

Default value: 0.0

subAttribute1 long No description.

Default value: 0

baseAttribute int No description.

Default value: 0

Element Type Description
subElement2 float No description.

Default value: 0.0

subElement1 long No description.

Default value: 0

baseElement int No description.

Default value: 0

subClass3

<class><superClass>SubClassLevel2</superClass></class>: A class inheriting from SubClassLevel2.

Attribute Type Description
subAttribute3 double No description.

Default value: 0.0

subAttribute2 float No description.

Default value: 0.0

subAttribute1 long No description.

Default value: 0

baseAttribute int No description.

Default value: 0

Element Type Description
subElement3 double No description.

Default value: 0.0

subElement2 float No description.

Default value: 0.0

subElement1 long No description.

Default value: 0

baseElement int No description.

Default value: 0

annotation

No description.

Element Type Description
anyField String No description.

xmlFeatures

Test of XML specific parameters: see XmlMetadataPlugin class.

Attribute Type Description
tag-name.attribute String <field xml.attribute="true" xml.tagName="tag-name.attribute">
Element Type Description
attributes XmlAttributes No description.
attributesDefault XmlAttributes No description.
content XmlContent No description.
fieldTrim String <field>: a text field, by default with trimming.
fieldNoTrim String <field xml.trim="false">: a text field without trimming.
dom DOM <field><type>DOM-></type>: a DOM field, by default with trimming (each element in the DOM tree).
domNoTrim DOM <field xml.trim="false"><type>DOM-></type>: a DOM field without trimming.
tag-name String <field xml.tagName="tag-name">: a field with an XML name different from the field name.
dateXmlFormat Date <field xml.format="SimpleDateFormat specification">: a Date field with a specified format.
dateLong Date <field xml.format="long">: a Date field as a long value in XML.
xmlItemsStyleFlat* List<Reference> (Many) <field><association xml.itemsStyle="flat"/></field>: a "flat" list, ie without enclosing tag.
xmlAssociationTagNames/association.tag-name* List<Reference> (Many) <field><association xml.tagName="association.tag-name"></field>: a list with an XML name different from calculated singular of tag name.
field.tag-names/field.tag-name* List<Reference> (Many) <field xml.tagName="field.tag-names"><association></field>: a list with an XML name different from field name.
field.tag-name/association.tag-name* List<Reference> (Many) <field xml.tagName="field.tag-name"><association xml.tagName="association.tag-name"></field>: a list with an XML name different from field name and an XML name different from calculated singular of tag name.
association.tag-name* List<Reference> (Many) <field><association xml.itemsStyle="flat" xml.tagName="association.tag-name"></field>: a flat list with an XML name different from calculated singular of tag name.
explodeProperties/(key,value)* Properties (Many) <type>Properties</type><association xml.mapStyle="explode">.
inlineProperties/key=value* Properties (Many) <type>Properties</type><association xml.mapStyle="inline"> (default).
xmlTransientFields XmlTransientFields No description.
xmlFieldsOrder XmlFieldsOrder No description.
xsdFeatures XsdFeatures No description.

attributes

<field xml.attribute="true">: fields as XML attribute instead of element, for every simple type.

Attribute Type Description
primitiveBoolean boolean boolean primitive.

Default value: true

primitiveChar char char primitive.

Default value: H

primitiveByte byte byte primitive.

Default value: 12

primitiveShort short short primitive.

Default value: 1212

primitiveInt int int primitive.

Default value: 121212

primitiveLong long long primitive.

Default value: 1234567890123

primitiveFloat float float primitive.

Default value: 12.12

primitiveDouble double double primitive.

Default value: 12.12

objectString String String class.

Default value: default value

objectDate Date Date class.
tag-name String <field xml.attribute="true" xml.tagName="tag-name">.

Default value: default

attributesDefault

<field xml.attribute="true">: fields as XML attribute instead of element, for every simple type.

Attribute Type Description
primitiveBoolean boolean boolean primitive.

Default value: true

primitiveChar char char primitive.

Default value: H

primitiveByte byte byte primitive.

Default value: 12

primitiveShort short short primitive.

Default value: 1212

primitiveInt int int primitive.

Default value: 121212

primitiveLong long long primitive.

Default value: 1234567890123

primitiveFloat float float primitive.

Default value: 12.12

primitiveDouble double double primitive.

Default value: 12.12

objectString String String class.

Default value: default value

objectDate Date Date class.
tag-name String <field xml.attribute="true" xml.tagName="tag-name">.

Default value: default

content

<field xml.content="true">: fields as XML content, for every simple type.

Element Type Description
content.long XmlContentLong No description.
content.long-with-attributes XmlContentLongWithAttributes No description.

content.long

<field xml.content="true"> with long type.

Element Content: long primitive.

content.long-with-attributes

<field xml.content="true"> with long type and some attributes.

Element Content: long primitive.

Attribute Type Description
attr String An XML attribute.
attr2 int A 2nd XML attribute.

Default value: 0

xmlItemsStyleFlat

A simple class for association demo.

Element Type Description
id String No description.

association.tag-name

A simple class for association demo.

Element Type Description
id String No description.

field.tag-name

A simple class for association demo.

Element Type Description
id String No description.

xmlTransientFields

<field xml.transient="true">: fields marked as transient are ignored by parsers and writers, they hold runtime state that should not be persisted.

Element Type Description
persistentField String No description.

xmlFieldsOrder

<field xml.insertParentFieldsUpTo="xxx">: insert parent fields.

Element Type Description
field1 String No description.
field-2 String No description.
field3 String No description.
field4 String No description.
field5 String No description.
field6 String No description.
field7 String No description.

xsdFeatures

Test of XSD specific parameters: see XsdMetadataPlugin class.

Attribute Type Description
attribute String No description.

xdocFeatures

Test of XDOC specific parameters: see XdocMetadataPlugin class.

Element Type Description
field String No description.
xdocSeparatorNone String <field xdoc.separator="none">.
xdocSeparatorBlank String <field xdoc.separator="blank">.

node

No description.

Element Type Description
value String No description.
child NodeItem No description.

child

No description.

Element Type Description
value String No description.
child NodeItem No description.

cloneable

No description.

Element Type Description
someBoolean boolean No description.

Default value: false

someChar char No description.

Default value:

someByte byte No description.

Default value: 0

someShort short No description.

Default value: 0

someInt int No description.

Default value: 0

someLong long No description.

Default value: 0

someFloat float No description.

Default value: 0.0

someDouble double No description.

Default value: 0.0

someString String No description.
someDate Date No description.
someDom DOM No description.
someProperties/key=value* Properties (Many) No description.
someStringList/someStringList* List<String> (Many) No description.
someStringSet/someStringSet* Set<String> (Many) No description.
deepThingy Thingy No description.
deepThingyList/deepThingyList* List<Thingy> (Many) No description.
deepThingySet/deepThingySet* Set<Thingy> (Many) No description.
shallowThingy Thingy No description.
shallowThingyList/shallowThingyList* List<Thingy> (Many) No description.
shallowThingySet/shallowThingySet* Set<Thingy> (Many) No description.

deepThingy

No description.

Element Content: No description.

deepThingyList

No description.

Element Content: No description.

deepThingySet

No description.

Element Content: No description.

shallowThingy

No description.

Element Content: No description.

shallowThingyList

No description.

Element Content: No description.

shallowThingySet

No description.

Element Content: No description.

file

No description.

Element Type Description
file String No description.

action

A single action done on the project, during this release.

Element Content: A short description of the action taken.

Attribute Type Description
dev String

Name of developer who committed the change.

This can be either the id of the developer, as specified in the developers section of the pom.xml file, or the name of the developer. If you generate a changes report and specify the id of the developer, a link is created to that developer in the team-list.html page.