<?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.
-->

<document>
  <properties>
    <title>Apache Commons RDF Release Notes</title>
  </properties>

  <body>
    <release version="0.5.0" date="2017-11-19" description="Minor feature and bug fix release.">
        <action type="fix" issue="COMMONSRDF-47">
            RDFSyntax should be interface, not enum
        </action>
        <action type="fix" issue="COMMONSRDF-51">
            RDF-1.1 specifies that language tags need to be compared using lower-case
        </action>
        <action type="fix" issue="COMMONSRDF-52">
            Duplicate Bundle-SymbolicName values across all components
        </action>
        <action type="fix" issue="COMMONSRDF-55">
            Stream of Jena quads use wrong IRI for default graph
        </action>
        <action type="fix" issue="COMMONSRDF-57">
            Use newer dependency Jena/RDF4J/JSONLD Java
        </action>
        <action type="fix" issue="COMMONSRDF-62">
            japicmp-maven-plugin breaking build because there is at least one incompatibility
        </action>
        <action type="fix" issue="COMMONSRDF-63">
            AbstractRDFParserTest.parseFile and parseFileContentType broken under Mac OS X
        </action>
        <action type="fix" issue="COMMONSRDF-66">
            JenaDatasetImpl.toString() throws RIOT exception
        </action>
        <action type="add" issue="COMMONSRDF-53">
            Add ServiceLoader support in OSGi
        </action>
        <action type="add" issue="COMMONSRDF-54">
            overloaded versions of RDF4J#asRDFTerm(org.eclipse.rdf4j.model.Value)
        </action>
        <action type="add" issue="COMMONSRDF-59">
            Fix javadocs warnings
        </action>
        <action type="add" issue="COMMONSRDF-64">
            Add Automatic-Module-Name to bundle manifest
        </action>
        <action type="add" issue="COMMONSRDF-65">
            Upgrade to Jena 3.4.0, RDF4J 2.2.2
        </action>
        <action type="add" issue="COMMONSRDF-70">
            Upgrade Jena version to 3.5.0
        </action>
    </release>

    <release version="0.3.0-incubating" date="2016-11-15" description="Minor feature and bug fix release.">
      <!-- TODO -->
    </release>

    <release version="0.2.0-incubating" date="2016-09-27" description="Minor feature and bug fix release.">
      <!-- TODO -->
    </release>

    <release version="0.1.0-incubating" date="2016-08-24" description="Initial Release">
      <action type="add">
        Initial Release.
      </action>
    </release>

  </body>
</document>
