<?xml version="1.0" encoding="UTF-8"?>
<!--

  Copyright (c) 2009 The JOMC Project
  Copyright (c) 2005 Christian Schulte <schulte2005@users.sourceforge.net>
  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions
  are met:

    * Redistributions of source code must retain the above copyright
      notice, this list of conditions and the following disclaimer.

    * Redistributions in binary form must reproduce the above copyright
      notice, this list of conditions and the following disclaimer in
      the documentation and/or other materials provided with the
      distribution.

  THIS SOFTWARE IS PROVIDED BY THE JOMC PROJECT AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE JOMC PROJECT OR
  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
  ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

  $Id: changes.xml 1753 2010-04-07 03:50:58Z schulte2005 $

-->
<document xmlns="http://maven.apache.org/changes/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/changes/1.0.0 http://maven.apache.org/xsd/changes-1.0.0.xsd">
  <properties>
    <title>Changelog</title>
    <author email="schulte2005@users.sourceforge.net">Christian Schulte</author>
  </properties>
  <body>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-1" date="2009-09-19"/>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-2" date="2009-09-25">
      <action dev="schulte2005" type="add"><![CDATA[
      Added support for inheriting from multiple implementations to the model and made model validation more strict.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added goal <code>validate-runtime-modules</code> to <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>MissingResourceException</code> thrown by class <code>org.jomc.model.DefaultModelManager</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected an <code>InstantiationException</code> thrown by method <code>getJavaValue</code> of class <code>org.jomc.model.Property</code>
      for <code>null</code> values.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      <code>http://jomc.org/model</code> schema updates<ul>
      <li>Added <code>deprecated</code> attribute to <code>ModelObject</code> complex type.</li>
      <li>Added <code>final</code> and <code>override</code> attributes to
      <ul>
        <li><code>SpecificationReference</code></li>
        <li><code>Implementation</code></li>
        <li><code>Property</code></li>
        <li><code>PropertyReference</code></li>
        <li><code>Message</code></li>
        <li><code>MessageReference</code></li>
      </ul>
      complex types.</li>
      <li>Added <code>abstract</code> attribute to <code>Implementation</code> complex type.</li>
      <li>Removed <code>parent</code> attribute from <code>Implemenation</code> complex type and added <code>implementations</code> element.</li>
      <li>Added <code>reference</code> element to <code>Implementations</code> complex type.</li>
      <li>Added <code>version</code> attribute to <code>ImplementationReference</code> complex type.</li>
      </ul>]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      <code>http://jomc.org/model</code> schema updates<ul>
      <li>Corrected <code>text-key</code> selector of <code>texts</code> element.</li>
      <li>Corrected <code>documentation-key</code> selector of <code>documentation</code> element.</li>
      <li>Corrected <code>template-key</code> selector of <code>template</code> element.</li>
      <li>Corrected <code>module-key</code> selector of <code>modules</code> element.</li>
      <li>Corrected <code>specification-key</code> selector of <code>modules</code> element.</li>
      <li>Corrected <code>implementation-key</code> selector of <code>modules</code> element.</li>
      <li>Corrected <code>specification-uniqueness</code> selector of <code>specifications</code> element.</li>
      <li>Corrected <code>specification-reference-uniqueness</code> selector of <code>specifications</code> element.</li>
      <li>Corrected <code>implementation-uniqueness</code> selector of <code>implementations</code> element.</li>
      <li>Corrected <code>implementation-uniqueness</code> selector of <code>implementations</code> element.</li>
      <li>Corrected <code>dependency-uniqueness</code> selector of <code>dependencies</code> element.</li>
      <li>Corrected <code>property-name-uniqueness</code> selector of <code>properties</code> element.</li>
      <li>Corrected <code>property-reference-uniqueness</code> selector of <code>properties</code> element.</li>
      <li>Corrected <code>message-name-uniqueness</code> selector of <code>messages</code> element.</li>
      <li>Corrected <code>message-reference-uniqueness</code> selector of <code>messages</code> element.</li>
      <li>Corrected <code>argument-name-uniqueness</code> selector of <code>arguments</code> element.</li>
      <li>Corrected <code>argument-index-uniqueness</code> selector of <code>arguments</code> element.</li>
      <li>Corrected <code>instance-uniqueness</code> selector of <code>instances</code> element.</li>
      <li>Corrected <code>argument-index-uniqueness</code> selector of <code>instances</code> element.</li>
      </ul>]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-3" date="2009-10-01">
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.tools.JavaClasses</code> to correct a <code>NullPointerException</code> thrown for
      missing classpath resources.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated tools to support classes without package.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Improved error handling of class <code>org.jomc.util.SectionEditor</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Renamed mojo parameters <code>javaSourceProcessingDisabled</code> and <code>javaClassProcessingDisabled</code> to
      <code>javaSourceProcessingEnabled</code> and <code>javaClassProcessingEnabled</code>. Renamed corresponding
      expressions <code>jomc.javaSources.disabled</code> and <code>jomc.javaClasses.disabled</code> to
      <code>jomc.javaSources.enabled</code> and <code>jomc.javaClasses.enabled</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-4" date="2009-10-04">
      <action dev="schulte2005" type="fix">Build updates.</action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-5" date="2009-10-06">
      <action dev="schulte2005" type="update"><![CDATA[
      Updated class <code>org.jomc.tools.JomcTool</code> to support overriding templates. Instead of having to copy all
      templates from the default profile, only templates differing from the default profile need to be added to new
      profiles.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.tools.JavaSources</code> to close any writers after merging templates.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>NullPointerException</code> thrown by method <code>getDependency(Object, String)</code> of class
      <code>org.jomc.ri.DefaultObjectManager</code> when trying to get a dependency of an instance without any
      dependencies.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>NullPointerException</code> thrown by method <code>getProperty(Object, String)</code> of class
      <code>org.jomc.ri.DefaultObjectManager</code> when trying to get a property of an instance without any properties.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>NullPointerException</code> thrown by method <code>getMessage(Object, String, Locale, Object)</code>
      of class <code>org.jomc.ri.DefaultObjectManager</code> when trying to get a message of an instance without any
      messages.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>NullPointerException</code> thrown by method <code>getLocator(URI)</code> of class
      <code>org.jomc.ri.DefaultObjectManager</code> when trying to get a locator using an URI with an undefined scheme.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.tools.JomcTool</code> to avoid generating implementation source files leading to
      <code>repeated interface</code> compile errors.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-6" date="2009-10-08">
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated CLI classes to correctly support the platform encoding when producing output.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-7" date="2009-10-12">
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected an <code>EmptyStackException</code> thrown by method <code>editLine</code> of class
      <code>org.jomc.util.SectionEditor</code> when encountering a section end marker without a matching section start
      marker.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.model.DefaultModelManager</code> to correctly maintain the state of an object
      created using a static factory method.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated command line tool to display illegal XML elements when using the <code>--debug</code> option.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added <code>org.jomc.spi.Invoker</code> interface to the <code>jomc-spi</code> artifact to allow customization of
      object invocations. Added corresponding default implementation classes <code>org.jomc.ri.DefaultInvocation</code>
      and <code>org.jomc.ri.DefaultInvoker</code> to <code>jomc-ri</code> artifact and updated class
      <code>org.jomc.ri.DefaultObjectManager</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added parameter <code>modelObjectStylesheet</code> to goals <code>main-java-classes</code> and
      <code>test-java-classes</code> of the <code>maven-jomc-plugin</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-8" date="2009-11-18">
      <action dev="schulte2005" type="add"><![CDATA[
      Added interface <code>org.jomc.spi.Invocation</code> to the <code>jomc-spi</code> artifact and updated interface
      <code>org.jomc.spi.Invoker</code> and classes <code>org.jomc.ri.DefaultInvoker</code>,
      <code>org.jomc.ri.DefaultInvocation</code> and <code>org.jomc.ri.DefaultObjectManager</code> to no longer force
      the use of the <code>jomc-ri</code> artifact at compile time for customizing invocation handling.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated various classes to support programmatic configuration of defaults in addition to system properties.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>NullPointerException</code> thrown by the <code>resolveEntity</code> method of the
      <code>EntityResolver</code> returned by method <code>getEntityResolver</code> of class
      <code>org.jomc.model.DefaultModelManager</code> when given a <code>null</code> public id.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated the <code>LSResourceResolver</code> returned by method <code>getResourceResolver</code> of class
      <code>org.jomc.model.DefaultModelManager</code> to correctly support resolving resources of type
      <code>http://www.w3.org/2001/XMLSchema</code> and to log a warning when used to resolve resources of unsupported
      type.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected a <code>MissingResourceException</code> thrown by the <code>getSchemaResources</code> method of class
      <code>org.jomc.model.DefaultModelManager</code> when the log level of the instance is lower or equal to
      <code>Level.FINE</code> and schema resources are found in <code>MANIFEST.MF</code> files.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected the 'documents' and 'classpath' options of the command line interface to use the platform path separator
      instead of a hardcoded ':' character for separating values.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected the <code>validateClasses</code> methods of class <code>org.jomc.tools.JavaClasses</code> taking a class
      loader to correctly build resource names from class names.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added interface <code>org.jomc.model.ModelObjectValidator</code> and moved validation methods from interface
      <code>org.jomc.model.ModelManager</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated to support static factory methods in abstract classes.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added parameters <code>moduleIncludes</code> and <code>moduleExcludes</code> to class
      <code>org.jomc.mojo.JomcResourceTransformer</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added options <code>module-includes</code> and <code>module-excludes</code> to the <code>merge-modules</code>
      command of the command line interface.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-9" date="2009-11-20">
      <action dev="schulte2005" type="update"><![CDATA[
      <code>http://jomc.org/model</code> schema updates<ul>
      <li>Updated <code>class</code> attribute of <code>Specification</code> complex type from <code>required</code> to
      <code>optional</code>.</li>
      </ul>]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.ri.DefaultObjectManager</code> to correctly close open streams/readers.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-10" date="2009-11-27">
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected the help output of the command line interface to include options 'debug', 'verbose' and
      'fail-on-warnings'.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.ri.DefaultObjectManager</code> to report errors when initialization fails due to an
      illegal model.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.ri.DefaultInvoker</code> to correctly call the <code>postInvoke</code> method when an
      exception is thrown by the <code>preInvoke</code> method.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.model.Modules</code> to not build instances from implementations not declaring a
      class.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated classes <code>org.jomc.ri.DefaultObjectManager</code> and <code>org.jomc.ri.DefaultInvocation</code>
      adding the modules and the class loader corresponding to an invocation to the invocation context.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-11" date="2009-12-07">
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected the <code>getInstance</code> methods of class <code>org.jomc.model.Modules</code> to support collecting
      <code>xs:any</code> objects not bound with a JAXB context.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added validation of dependency property override constraints to class
      <code>org.jomc.model.DefaultModelObjectValidator</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.tools.JomcTool</code> to stop the <code>getJavaTypeName(org.jomc.model.Property, boolean)</code>
      method from ignoring the given type of a property when property <code>any</code> holds a non-<code>null</code>
      value.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Removed all <code>appinfo</code> elements with XML namespace <code>http://java.sun.com/xml/ns/jaxb</code> from
      the <code>jomc-1.0.xsd</code> and <code>jomc-bootstrap-1.0.xsd</code> schemas.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated the <code>minOccurs</code> facet of the <code>template</code> element reference of the
      <code>Message</code> complex type of the <code>http://jomc.org/model</code> namespace from <code>0</code>
      to <code>1</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Renamed the <code>implementationName</code> attribute of the <code>Instance</code> complex type of the
      <code>http://jomc.org/model</code> namespace to <code>name</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-12" date="2009-12-11">
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected the <code>createObject</code> method of class <code>org.jomc.model.Modules</code> to stop throwing
      a <code>NullPointerException</code> when a factory method returns <code>null</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-13" date="2010-01-10">
      <action dev="schulte2005" type="update"><![CDATA[
      Updated methods<ul>
      <li><code>public String getJavaPackageName( final Specification specification )</code></li>
      <li><code>public String getJavaTypeName( final Specification specification, final boolean qualified )</code></li>
      <li><code>public String getJavaClasspathLocation( final Specification specification )</code></li>
      <li><code>public String getJavaPackageName( final SpecificationReference reference )</code></li>
      <li><code>public String getJavaTypeName( final SpecificationReference reference, final boolean qualified )</code></li>
      <li><code>public String getJavaPackageName( final Implementation implementation )</code></li>
      <li><code>public String getJavaTypeName( final Implementation implementation, final boolean qualified )</code></li>
      <li><code>public String getJavaClasspathLocation( final Implementation implementation )</code></li>
      <li><code>public String getJavaTypeName( final Dependency dependency )</code></li>
      <li><code>public boolean isJavaDefaultPackage( final Specification specification )</code></li>
      <li><code>public boolean isJavaDefaultPackage( final Implementation implementation )</code></li>
      </ul> of class <code>org.jomc.tools.JomcTool</code> to return <code>null</code> rather than throwing a
      <code>NullPointerException</code> when passed a model object with a <code>null</code> class value.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[
      Added attribute <code>classDeclaration</code> to <code>Specification</code> and <code>Implementation</code>
      complex types of the <code>http://jomc.org/model</code> namespace.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Split <code>org.jomc.model.ModelManager</code> into <code>org.jomc.model.ModelContext</code>,
      <code>org.jomc.model.ModelProvider</code>, <code>org.jomc.model.ModelProcessor</code> and
      <code>org.jomc.model.ModelValidator</code> to add support for extending the model by using the standard
      <code>META-INF/services</code> extension mechanism.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated class <code>org.jomc.mojo.JomcResourceTransformer</code> to support version 1.3 of the
      <code>maven-shade-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated class <code>org.jomc.model.DefaultModelValidator</code> to use constant report detail identifiers
      for any caught <code>org.jomc.util.ParseException</code> and <code>org.jomc.util.TokenMgrError</code> exceptions
      instead of simple class names.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Removed the <code>setElement</code> method of class <code>org.jomc.model.ModelValidationReport.Detail</code>
      and added a corresponding parameter to the constructor making report details immutable.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added validation of message templates to class <code>org.jomc.model.DefaultModelValidator</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added validation of simple type property values or object type values to class
      <code>org.jomc.model.DefaultModelValidator</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added validation of property types to class <code>org.jomc.model.DefaultModelValidator</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected method
      <code>public List&lt;String&gt; getJavaInterfaceNames( final Implementation implementation, final boolean qualified )</code>
      of class <code>org.jomc.tools.JomcTool</code> to ignore specifications with a <code>null</code> class value.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected <pre>Can't find bundle for base name org/jomc/mojo/ValidateMainJavaClassesMojo</pre> and
      <pre>Can't find bundle for base name org/jomc/mojo/ValidateTestJavaClassesMojo</pre> build errors when using
      <code>-Djomc.javaClasses.enabled=false</code> command line argument.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-14" date="2010-01-16">
      <action dev="schulte2005" type="update"><![CDATA[
      Updated method <code>getJavaValue</code> of class <code>org.jomc.model.Property</code> to support retrieving
      values from value classes and based validation methods of class <code>org.jomc.model.ModelContext</code>
      on SAX instead of JAXB.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-14/jomc-model/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated method <code>getMessage</code> of interface <code>org.jomc.ObjectManager</code> and the corresponding
      <code>implementation-messages.vm</code> template to use a var-args parameter for the format arguments.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-14/jomc-api/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated class <code>org.jomc.model.DefaultModelValidator</code> to validate the Java value of properties.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected method <code>createSchema</code> of class <code>org.jomc.model.DefaultModelContext</code> to throw
      a <code>org.jomc.model.ModelException</code> when no schemas are found.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Corrected method <code>getJavaValue</code> of class <code>org.jomc.model.Property</code> to throw a
      <code>org.jomc.model.ModelException</code> when missing a value for Java primitive types.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added missing validation of specification properties to class <code>org.jomc.model.DefaultModelValidator</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-15" date="2010-01-19">
      <action dev="schulte2005" type="add"><![CDATA[
      Added <code>jaxp-api-1.4.2.jar</code> and <code>jaxp-ri-1.4.2.jar</code> to the CLI distribution and updated
      the README file.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated methods<ul>
      <li><code>setCharacterStream</code></li>
      <li><code>setByteStream</code></li>
      <li><code>setStringData</code></li>
      <li><code>setSystemId</code></li>
      <li><code>setPublicId</code></li>
      <li><code>setBaseURI</code></li>
      <li><code>setEncoding</code></li>
      <li><code>setCertifiedText</code></li>
      </ul> of the <code>LSInput</code> implementation returned by method <code>resolveResource</code> of the
      <code>LSResourceResolver</code> implementation returned by method <code>createResourceResolver</code> of class
      <code>org.jomc.model.DefaultModelContext</code> to log a warning instead of throwing an
      <code>UnsupportedOperationException</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[
      Updated the default location searched for transformers from <code>META-INF/jomc.xslt</code> to
      <code>META-INF/jomc.xsl</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Updated method <code>createSchema</code> of class <code>org.jomc.model.DefaultModelContext</code> to make use of
      the context's <code>LSResourceResolver</code> when creating a schema instance. In previous versions, schema
      resources were resolved remotely when imported or included in another schema.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[
      Added a <code>ClassLoader</code> argument to method <code>getJavaValue</code> of class
      <code>org.jomc.model.Property</code>.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-15/jomc-model/clirr-report.html">CLIRR report</a>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-16" date="2010-01-19">
      <action dev="schulte2005" type="add"><![CDATA[Added goal <code>validate-test-modules</code> to the
      <code>maven-jomc-plugin</code> and renamed the <code>validate-runtime-modules</code> goal to
      <code>validate-main-modules</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Renamed parameters <code>jomc.javaSources.enabled</code> and
      <code>jomc.javaClasses.enabled</code> of the <code>maven-jomc-plugin</code> to <code>jomc.sourceProcessing</code>
      and <code>jomc.classProcessing</code>. Added parameters <code>jomc.modelProcessing</code>,
      <code>jomcModuleName</code>, <code>jomcTestModuleName</code>, <code>serviceLocation</code>,
      <code>schemaLocation</code>, <code>transformerLocation</code>, <code>classesDirectory</code> and
      <code>testClassesDirectory</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Updated the default location searched for schema resources of
      class <code>org.jomc.model.bootstrap.DefaultSchemaProvider</code> from <code>META-INF/jomc-bootstrap.xml</code> to
      <code>META-INF/jomc-schemas.xml</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added <code>Services</code> and <code>Service</code> complex
      type declarations to the <code>jomc-bootstrap-1.0.xsd</code> schema.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added interface <code>org.jomc.model.bootstrap.ServiceProvider</code>
      and corresponding default implementation class <code>org.jomc.model.bootstrap.DefaultServiceProvider</code>
      supporting service definitions read from <code>META-INF/jomc-services.xml</code> XML resources rather than
      <code>META-INF/services/*</code> resources to support ordering of services.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-16/jomc-model/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Updated class <code>org.jomc.mojo.JomcResourceTransformer</code>
      to support <code>META-INF/jomc-services.xml</code> resources.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added options <code>schema-location</code>,
      <code>service-location</code> and <code>transformer-location</code> to the command line application.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated the <code>maven-jomc-plugin</code> to correct a
      <code>NullPointerException</code> thrown when logging caught exceptions with a <code>null</code> message and
      to stop logging caught exceptions multiple times.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated the <code>maven-jomc-plugin</code> to stop cacheing
      class loader and tool instances correcting problems with forked lifecycles.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated class <code>org.jomc.model.bootstrap.BootstrapContext</code>
      to validate read bootstrap documents against the bootstrap schema.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated class <code>org.jomc.ri.DefaultObjectManager</code>
      to translate any line separators in message templates to the system's line separator based on system property
      <code>line.separator</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-17" date="2010-03-07">
      <action dev="schulte2005" type="update"><![CDATA[Renamed classes <code>org.jomc.tools.JavaBundles</code> to
      <code>org.jomc.tools.ResourceFileProcessor</code>, <code>org.jomc.tools.JavaClasses</code> to
      <code>org.jomc.tools.ClassFileProcessor</code> and <code>org.jomc.tools.JavaSources</code> to
      <code>org.jomc.tools.SourceFileProcessor</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added <code>jomc-tools-1.0.xsd</code> schema to the
      <code>jomc-tools</code> artifact and updated class <code>org.jomc.tools.SourceFileProcessor</code> to support
      configuration of source file sections.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Renamed the <code>main-java-sources</code> goal to
      <code>manage-main-sources</code>, the <code>test-java-sources</code> goal to <code>manage-test-sources</code>,
      the <code>main-java-classes</code> goal to <code>commit-main-classes</code>, the
      <code>validate-main-java-classes</code> goal to <code>validate-main-classes</code>, the
      <code>test-java-classes</code> goal to <code>commit-test-classes</code> and the
      <code>validate-test-java-classes</code> goal to <code>validate-test-classes</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added parameters <code>whitespacesPerIndent</code> and
      <code>indentationCharacter</code> to the <code>manage-main-sources</code> and <code>manage-test-sources</code>
      goals of the <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added parameter <code>resourceProcessing</code> to the
      <code>maven-jomc-plugin</code> and added goals <code>write-main-resources</code> and
      <code>write-test-resources</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Renamed the <code>generate-java-bundles</code> command to
      <code>generate-resources</code>, the <code>commit-java-classes</code> command to <code>commit-classes</code>,
      the <code>validate-java-classes</code> command to <code>validate-classes</code>, and the
      <code>manage-java-sources</code> command to <code>manage-sources</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added options <code>whitespaces-per-indent</code> and
      <code>indentation-character</code> to the command line application.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added methods for accessing elements and objects from
      <code>any</code> properties of model objects.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-17/jomc-model/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="add">Added profile 'jomc-java-bundles'.</action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-18" date="2010-03-19">
      <action dev="schulte2005" type="update"><![CDATA[Updated method <code>getVelocityEngine</code> of class
      <code>org.jomc.tools.JomcTool</code> to configure new <code>VelocityEngine</code> instances to log all messages at
      <code>Level.FINE</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Updated the <code>debug</code> option of the command line
      application to take an optional log level argument.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated method <code>getJavadocComment</code> of class
      <code>org.jomc.tools.JomcTool</code> to correctly support platform line separators.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated the command line application to filter out resources
      provided with the <code>-classpath</code> option already part of the application.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-19" date="2010-03-27">
      <action dev="schulte2005" type="add"><![CDATA[Added methods <code>getDefaultProviderLocation</code>,
      <code>setDefaultProviderLocation</code>, <code>getProviderLocation</code>, <code>setProviderLocation</code>,
      <code>getDefaultPlatformProviderLocation</code>, <code>setDefaultPlatformProviderLocation</code>,
      <code>getPlatformProviderLocation</code>, <code>setPlatformProviderLocation</code>,
      <code>getDefaultBootstrapSchemaSystemId</code>, <code>setDefaultBootstrapSchemaSystemId</code>,
      <code>getBootstrapSchemaSystemId</code> and <code>setBootstrapSchemaSystemId</code> to class
      <code>org.jomc.model.bootstrap.DefaultBootstrapContext</code>.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-19/jomc-model/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added parameters <code>providerLocation</code> and
      <code>platformProviderLocation</code> to the <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added parameters <code>serviceLocation</code>,
      <code>schemaLocation</code>, <code>providerLocation</code>, <code>platformProviderLocation</code> and
      <code>bootstrapSchemaSystemId</code> to class <code>org.jomc.mojo.JomcResourceTransformer</code> of the
      <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added options <code>provider-location</code> and
      <code>platform-provider-location</code> to the command line application.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added methods <code>getDefaultTemplateProfile</code> and
      <code>setDefaultTemplateProfile</code> to class <code>org.jomc.tools.JomcTool</code>.
      See the <a href="http://jomc.sourceforge.net/jomc/1.0-alpha-19/jomc-tools/clirr-report.html">CLIRR report</a>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added parameter <code>defaultTemplateProfile</code> to the
      <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="add"><![CDATA[Added option <code>default-template-profile</code> to the
      command line application.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Renamed the <code>profile</code> option of the command line
      application to <code>template-profile</code>.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Generified method <code>getObject(Class)</code> of interface
      <code>org.jomc.ObjectManager</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Corrected a <code>ClassCastException</code> thrown by methods
      <code>findModules</code>, <code>processModules</code> and <code>validateModel</code> of class
      <code>org.jomc.model.DefaultModelContext</code> with illegal configuration resources.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Corrected a <code>ClassCastException</code> thrown by methods
      <code>findSchemas</code> and <code>findServices</code> of class
      <code>org.jomc.model.bootstrap.BootstrapContext</code> with illegal configuration resources.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Corrected a <code>MissingResourceException</code> thrown by methods
      of class <code>org.jomc.ri.DefaultObjectManager</code> for unsupported multiplicity values.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-alpha-20" date="2010-03-28">
      <action dev="schulte2005" type="fix"><![CDATA[Updated methods <code>getSpecifications(String)</code>,
      <code>getDependencies(String)</code>, <code>getProperties(String)</code> and <code>getMessages(String)</code>
      of class <code>org.jomc.model.Modules</code> to correctly collect model objects of class declaring
      implementations based on attribute <code>classDeclaration</code>.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-beta-1" date="2010-04-03">
      <action dev="schulte2005" type="fix"><![CDATA[Added validation of the <code>implementationName</code> attribute
      of dependencies to class <code>org.jomc.tools.ClassFileProcessor</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated method <code>getJavaGetterMethodName(Message)</code>
      of class <code>org.jomc.tools.JomcTool</code> to no longer append '<code>Message</code>' to the returned name.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Updated methods <code>getJavaGetterMethodName</code> of
      class <code>org.jomc.tools.JomcTool</code> to allow names containing whitespace characters and illegal java
      identifier characters.]]>
      </action>
    </release>
    <!-- *********************************************************************************************************** -->
    <release version="1.0-beta-2" date="2010-04-08">
      <action dev="schulte2005" type="fix"><![CDATA[Corrected various inconsistencies between the command line
      application and the <code>maven-jomc-plugin</code>.]]>
      </action>
      <action dev="schulte2005" type="fix"><![CDATA[Updated method <code>createSchema</code> of class
      <code>org.jomc.model.bootstrap.DefaultBootstrapContext</code> to correct a <code>NullPointerException</code>
      thrown when sub-classing.]]>
      </action>
      <action dev="schulte2005" type="update"><![CDATA[Updated the command line application to ignore any non-existing
      classpath elements and document files by logging a corresponding warning message instead of failing with a
      <code>FileNotFoundException</code>.]]>
      </action>
    </release>
  </body>
</document>
