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

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

    <!-- First, a list of API names you may use: -->
    <apidefs>
        <apidef name="JavaProjectUI">Java Project UI SPI</apidef>
        <!-- etc. -->
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

    <changes>
        <change id="Superclass-Interfaces-FreeMarker-Variables">
            <api name="JavaProjectUI"/>
            <summary>Added the <code>superclass</code> and <code>interfaces</code> variables for FreeMarker file templates</summary>
            <version major="1" minor="1.86"/>
            <date day="8" month="10" year="2020"/>
            <author login="isarthur"/>
            <compatibility addition="yes"/>
            <description>
                Added the <code>superclass</code> and <code>interfaces</code> variables for use in FreeMarker 
                templates used by the New Java File Wizard.
            </description>
            <class name="NewJavaFileWizardIterator" package="org.netbeans.modules.java.project.ui"/>
        </change>
        <change id="BrokenReferencesSupport.createPlatformVersionProblemProvider">
            <api name="JavaProjectUI"/>
            <summary>Extended the <code>BrokenReferencesSupport.createPlatformVersionProblemProvider</code> by the mininal source level supported by the project</summary>
            <version major="1" minor="1.74"/>
            <date day="20" month="3" year="2017"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                Extended the <code>BrokenReferencesSupport.createPlatformVersionProblemProvider</code> by the mininal source level supported by the project
            </description>
            <class name="BrokenReferencesSupport" package="org.netbeans.spi.java.project.support.ui"/>
        </change>
        <change id="JavaRunner-module-path">
            <api name="JavaProjectUI"/>
            <summary>Added a constant for execute module path into <code>JavaRunner</code></summary>
            <version major="1" minor="1.71"/>
            <date day="4" month="10" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                Added a constant <code>PROP_EXECUTE_MODULEPATH</code> for execute module path into <code>JavaRunner</code>.
            </description>
            <class name="JavaRunner" package="org.netbeans.api.java.project.runner"/>
        </change>
        <change id="JavaFileWizardIteratorFactory">
            <api name="JavaProjectUI"/>
            <summary>Allows to extend the New Java File Wizard by project specific panels</summary>
            <version major="1" minor="1.71"/>
            <date day="4" month="10" year="2016"/>
            <author login="tzezula"/>
            <compatibility modification="yes" addition="yes"/>
            <description>
                Allows to extend the New Java File Wizard by project specific panels.
            </description>
            <class name="JavaFileWizardIteratorFactory" package="org.netbeans.spi.java.project.support.ui.templates"/>
        </change>
    <change id="server.is.free">
            <api name="JavaProjectUI"/>
            <summary>Desktop dependent Java Project Support UI extracted</summary>
            <version major="1" minor="62"/>
            <date day="2" month="6" year="2014"/>
            <author login="tstupka"/>
            <compatibility modification="yes" addition="yes">
                <p>
                    Runtime compatibility remains, compile time compatibility is
                    mostly preserved too. It is however recommended to upgrade
                    dependencies of client modules. Try running
                    <code>ant fix-dependencies</code> in your Ant module.
                </p>
            </compatibility>
            <description>
                <p>
                    The following packages were moved from 
                    <a href="@org-netbeans-modules-java-project@/overview-summary.html">org.netbeans.modules.java.project</a> 
                    into the
                    <a href="@org-netbeans-modules-java-project-ui@/overview-summary.html">org.netbeans.modules.java.project.ui</a> module:
                </p>
                <ul>
                    <li><a href="@org-netbeans-modules-java-project-ui@/org/netbeans/api/java/project/runner/package-summary.html">o.n.api.java.project.runner</a></li>
                    <li><a href="@org-netbeans-modules-java-project-ui@/org/netbeans/spi/java/project/runner/package-summary.html">o.n.spi.java.project.runner</a></li>
                    <li><a href="@org-netbeans-modules-java-project-ui@/org/netbeans/spi/java/project/support/ui/package-summary.html">o.n.spi.java.project.support.ui</a></li>
                    <li><a href="@org-netbeans-modules-java-project-ui@/org/netbeans/spi/java/project/support/ui/templates/package-summary.html">o.n.spi.java.project.support.ui.templates</a></li>
                </ul>
            </description>
        </change>        
    </changes>

    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!--

                            NO NO NO NO NO!

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

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE java/project/apichanges.xml

-->
    <head>
      <title>Change History for the Java Project API</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="@TOP@">Java Project API</a>.</p>

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

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

    </body>
  </htmlcontents>

</apichanges>
