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

    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.

-->
<?xml-stylesheet type="text/xml" href="../../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<apichanges>
    <apidefs>
        <apidef name="general">General</apidef>
    </apidefs>
    <changes>

        <change id="annotation-processing">
            <summary>Support for annotation processing</summary>
            <version major="1" minor="21"/>
            <date day="12" month="5" year="2010"/>
            <author login="tzezula"/>
            <compatibility binary="compatible" source="compatible" semantic="compatible"/>
            <description>
                Added complete support for annotation processing into freeform-project-java/3 schema which now supports all metadata for
                AnnotationProcessingQuery.
            </description>
            <issue number="185457"/>
        </change>
        <change id="source-16">
            <summary>Added freeform-project-java/3 schema to support annotation processors and source levels 1.6 and 1.7</summary>
            <version major="1" minor="16"/>
            <date day="24" month="3" year="2010"/>
            <author login="tzezula"/>
            <compatibility binary="compatible" source="compatible" semantic="compatible"/>
            <description>
                Added freeform-project-java/3 schema to support annotation processors and source levels 1.6 and 1.7
            </description>
            <issue number="181439"/>
        </change>
        <change id="friend-packages">
            <summary>Declare SPI packages for friends only</summary>
            <version major="1" minor="2"/>
            <date day="14" month="4" year="2005"/>
            <author login="jglick"/>
            <compatibility binary="incompatible" source="incompatible" semantic="compatible">
                Only permitted clients can now use this SPI, and they were all updated.
            </compatibility>
            <description>
                <p>
                    Use of this SPI was restricted to known client modules.
                </p>
            </description>
        </change>

    </changes>
    <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <==============

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE java/freeform/apichanges.xml

-->
    <head>
      <title>Change History for the Java Freeform SPI</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the <a href="http://projects.netbeans.org/">Java Freeform SPI</a>.</p>

<!-- The actual lists of changes, as summaries and details: -->
      <hr/>
      <standard-changelists module-code-name="org.netbeans.modules.java.freeform/1"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
