<?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="java-api-common">Java Common API</apidef>
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->
    <changes>
        <change id="ModuleGroupInfo">
            <api name="java-api-common"/>
            <summary>Added factory method and interface to determine relationships between SourceGroups and modules</summary>
            <version major="1" minor="103"/>
            <date day="7" month="3" year="2017"/>
            <author login="sdedic"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    <code>MultiModuleGroupQuery</code> query interface allows to find out which module owns
                    a particular <code>SourceGroup</code>. Project implementors can create an instance
                    using new query method on <code>QuerySupport</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
            <class package="org.netbeans.modules.java.api.common.queries" name="MultiModuleGroupQuery"/>
        </change>
        <change id="modules.constants">
            <api name="java-api-common"/>
            <summary>Added module-related properties to <code>ProjectProperties</code></summary>
            <version major="1" minor="101"/>
            <date day="24" month="2" year="2017"/>
            <author login="sdedic"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>BUILD_TEST_MODULES_DIR</code> to denote build location for tests in modular projects
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectProperties"/>
        </change>
        <change id="ModuleInfoAccessibilityQuery">
            <api name="java-api-common"/>
            <summary>Added a factory method into <code>QuerySupport</code>to create a module-info based <code>AccessibilityQueryImplementation2</code> instance</summary>
            <version major="1" minor="85"/>
            <date day="19" month="5" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added a factory method into <code>QuerySupport</code>to create a module-info based <code>AccessibilityQueryImplementation2</code> instance.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
        </change>
        <change id="UnitTestsCompilerOptionsQuery">
            <api name="java-api-common"/>
            <summary>Added a factory method into <code>QuerySupport</code>to create unit tests <code>CompilerOptionsQueryImplementation</code> provider</summary>
            <version major="1" minor="82"/>
            <date day="24" month="3" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added a factory method into <code>QuerySupport</code>to create an implementation of the
                    <code>CompilerOptionsQueryImplementation</code> providing explicit compiler options for
                    tests compilation based on the source level and module-infos in source and test roots.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
        </change>
        <change id="CompilerOptionsQueryImpl">
            <api name="java-api-common"/>
            <summary>Added a factory method into <code>QuerySupport</code>to create<code>CompilerOptionsQueryImplementation</code> provider</summary>
            <version major="1" minor="81"/>
            <date day="16" month="3" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added a factory method into <code>QuerySupport</code>to create an Ant property based implementation of
                    the <code>CompilerOptionsQueryImplementation</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
        </change>
        <change id="ProjectProperties-modulepath">
            <api name="java-api-common"/>
            <summary>Added modulepath properties into the <code>ProjectProperties</code></summary>
            <version major="1" minor="80"/>
            <date day="15" month="3" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added constants holding the modulepath property names into the<code>ProjectProperties</code>.
                    The following constants were added <code>JAVAC_MODULEPATH</code>, <code>JAVAC_TEST_MODULEPATH</code>,
                    <code>RUN_MODULEPATH</code>,<code>RUN_TEST_MODULEPATH</code>,
                    <code>DEBUG_MODULEPATH</code>,<code>DEBUG_TEST_MODULEPATH</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectProperties"/>
        </change>
        <change id="platform-chooser-per-project-platform">
            <api name="java-api-common"/>
            <summary>Platform combobox handles per project platforms</summary>
            <version major="1" minor="80"/>
            <date day="18" month="8" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Platform combobox created by <code>PlatformUiSupport</code> handles
                    per project <code>JavaPlatform</code>s.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformUiSupport"/>
        </change>
        <change id="bootcp-per-project-platform">
            <api name="java-api-common"/>
            <summary>Boot ClassPath uses JavaPlatform defined in project</summary>
            <version major="1" minor="79"/>
            <date day="17" month="8" year="2016"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Boot ClassPath created by <code>ClassPathProviderImpl</code> uses a <code>JavaPlatform</code>
                    defined in project.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupportFactory"/>
        </change>
        <change id="java-vm-options-customizer">
            <api name="java-api-common"/>
            <summary>Added a utility method to open a java VM options customizer - <code>ProjectUISupport.showVMOptionCustomizer</code></summary>
            <version major="1" minor="72"/>
            <date day="28" month="4" year="2015"/>
            <author login="tstupka"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Moved the java VM options customizer from <code>java.j2seproject</code> to <code>java.api.common</code> and 
                    added a utility method to open a java VM options customizer - <code>ProjectUISupport.showVMOptionCustomizer</code> 
                    so that it is possible to use the customizer from j2se projects as well as from maven java projects.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="ProjectUISupport"/>
            <issue number="251934"/>
        </change>
        <change id="SourceLevelQuery-platformType">
            <api name="java-api-common"/>
            <summary>Added a <code>SourceLevelQueryImplementation2</code> factory for non J2SE platform</summary>
            <version major="1" minor="72"/>
            <date day="16" month="4" year="2014"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added a <code>SourceLevelQueryImplementation2</code> factory for non J2SE platform.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
        </change>
        <change id="LibrariesNode-bootcp">
            <api name="java-api-common"/>
            <summary>Possibility to override project's bootstrap libraries</summary>
            <version major="1" minor="68"/>
            <date day="13" month="11" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added possibility to override project's bootstrap libraries.
                    In case when project's bootstrap libraries differ from <code>JavaPlatform</code>'s bootstrap libraries
                    the <code>LibrariesNode.Builder.setBootPath</code> method can be used to override the shown platform's libraries.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="LibrariesNode"/>
        </change>
        <change id="ClassPathProviderImpl-bootcp-props">
            <api name="java-api-common"/>
            <summary>Possibility to create project's boot classpath based on project properties</summary>
            <version major="1" minor="67"/>
            <date day="4" month="11" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added possibility to create project's boot classpath based on project properties
                   rather than project's platform bootstrap libraries.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
        </change>
        <change id="BaseActionProvider-mainClass">
            <api name="java-api-common"/>
            <summary>Possibility to override main class check and main class selection</summary>
            <version major="1" minor="66"/>
            <date day="4" month="11" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added possibility to override main class check and main class selection.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="BaseActionProvider"/>
        </change>
        <change id="ProjectOperations">
            <api name="java-api-common"/>
            <summary>Added <code>ProjectOperations</code> support for project operations in Ant based project.</summary>
            <version major="1" minor="65"/>
            <date day="29" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added <code>ProjectOperations</code> support for project operations in Ant based project..
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectOperations"/>
        </change>
        <change id="ProjectConfigurations">
            <api name="java-api-common"/>
            <summary>Added <code>ProjectConfigurations</code> support for <code>ProjectConfiguration</code>s in Ant base project.</summary>
            <version major="1" minor="64"/>
            <date day="23" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                   Added <code>ProjectConfigurations</code> support for <code>ProjectConfiguration</code>s in Ant base project.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectConfigurations"/>
        </change>
        <change id="LibrariesNode.Builder">
            <api name="java-api-common"/>
            <summary>Added <code>LibrariesNode.Builder</code> to create configured <code>LibrariesNode</code>.</summary>
            <version major="1" minor="63"/>
            <date day="22" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>LibrariesNode.Builder</code> to create configured <code>LibrariesNode</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="LibrariesNode"/>
        </change>
        <change id="LogicalViewProviders">
            <api name="java-api-common"/>
            <summary>Added <code>LogicalViewProviders</code> support to create default implementation of the <code>LogicalViewProvider2</code>.</summary>
            <version major="1" minor="62"/>
            <date day="17" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>LogicalViewProviders</code> support to create default implementation of the <code>LogicalViewProvider2</code>
                    for Ant Based Project.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="LogicalViewProviders"/>
        </change>
        <change id="ProjectHooks">
            <api name="java-api-common"/>
            <summary>Added <code>ProjectHooks</code> factory to create default implementation of the <code>ProjectOpenedHook</code> and the <code>ProjectXmlSavedHook}</code>.</summary>
            <version major="1" minor="61"/>
            <date day="15" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>ProjectHooks</code> factory to create default implementation of the <code>ProjectOpenedHook</code> and <code>ProjectXmlSavedHook</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectHooks"/>
        </change>
        <change id="ProjectProperties">
            <api name="java-api-common"/>
            <summary>Extended <code>ProjectProperties</code> by additional common project properties</summary>
            <version major="1" minor="60"/>
            <date day="9" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Extended <code>ProjectProperties</code> by additional common project properties used by shared queries and
                    project generators.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectProperties"/>
        </change>
        <change id="BootClassPathImplementation-platform-type">
            <api name="java-api-common"/>
            <summary>Extended <code>BootClassPathImplementation</code> and <code>ClassPathProviderImpl</code> to support non j2se platforms</summary>
            <version major="1" minor="59"/>
            <date day="9" month="10" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Extended <code>BootClassPathImplementation</code> and <code>ClassPathProviderImpl</code> to support non j2se platforms.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupportFactory"/>
            <class package="org.netbeans.modules.java.api.common.util" name="CommonProjectUtils"/>
        </change>
        <change id="BaseActionProvider.Callback3">
            <api name="java-api-common"/>
            <summary>Added <code>BaseActionProvider.Callback3</code> with a method providing additional build properties.</summary>
            <version major="1" minor="58"/>
            <date day="24" month="9" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>BaseActionProvider.Callback3</code> interface with a method providing additional build properties.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="BaseActionProvider"/>
        </change>
        <change id="PlatformUiSupport.getProfile">
            <api name="java-api-common"/>
            <summary>Added getter for profile from profile model.</summary>
            <version major="1" minor="57"/>
            <date day="18" month="9" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added utility method<code>PlatformUiSupport.getProfile</code>
                    returning a <code>Profile</code> for a key obtained from profile model.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformUiSupport"/>
        </change>
        <change id="CustomizerProvider3">
            <api name="java-api-common"/>
            <summary>Enable programmatical closing of project customizer dialog.</summary>
            <version major="1" minor="52"/>
            <date day="13" month="5" year="2013"/>
            <author login="psomol"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Addded interface <code>CustomizerProvider3</code> extending <code>CustomizerProvider2</code>
                    that enables to close project's customizer if it is currently open using
                    method <code>cancelCustomizer()</code>.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformUiSupport"/>
            <issue number="229161"/>
        </change>
        <change id="platform-filter">
            <api name="java-api-common"/>
            <summary>Added PlatformFilter interface.</summary>
            <version major="1" minor="49"/>
            <date day="30" month="4" year="2013"/>
            <author login="psomol"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added interface <code>PlatformFilter</code> to enable filtering out
                    Java Platforms from UI lists. The primary usecase is to enable
                    projects that are extensions of SE project to hook into project
                    UI provided by SE project. More specifically, FX projects need
                    to hide non-FX platforms in Project Properties panels belonging to SE.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformFilter"/>
            <issue number="212238"/>
        </change>
        <change id="api-package-modification">
            <api name="java-api-common"/>
            <summary>New API <code>PackageModificationImplementation</code></summary>
            <version major="1" minor="49"/>
            <date day="10" month="4" year="2013"/>
            <author login="mkozeny"/>
            <compatibility semantic="compatible" source="compatible" binary="compatible"/>
            <description>
                <p>
                    Added new API <code>PackageModificationImplementation</code> which serves as backend for action to set given package as public or private.
                    Only applies on packages/folders that are handled by <code>AccessibilityQuery</code> (a non null result is returned from the query) that are in projects
                    providing this interface's implementation in project lookup.
                </p>
            </description>
            <issue number="228409"/>
        </change>
        <change id="jre-profiles">
            <api name="java-api-common"/>
            <summary>Added UI support for JRE profiles.</summary>
            <version major="1" minor="45"/>
            <date day="4" month="3" year="2013"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Addded factory methods to <code>PlatformUiSupport</code> to create
                    a model and renderer for JDK 8 profiles.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformUiSupport"/>
            <issue number="226713"/>
        </change>
        <change id="CommonProjectUtils.createJavaLibraryImplementation">
            <api name="java-api-common"/>
            <summary>Added a helper method creating <code>LibraryImplementation3</code> for ant and maven projects.</summary>
            <version major="1" minor="40"/>
            <date day="5" month="9" year="2012"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added a helper method creating default implementation of the <code>LibraryImplementation3</code>
                    interface for both Ant and Maven projects.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.util" name="CommonProjectUtils"/>
            <issue number="217340"/>
        </change>
        <change id="ClassPathModifierSupport-handleAntArtifacts">
            <api name="java-api-common"/>
            <summary>Added <code>ClassPathModifierSupport.handleAntArtifacts</code> correctly updating the build-impl.xml</summary>
            <version major="1" minor="38"/>
            <date day="31" month="5" year="2012"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>ClassPathModifierSupport.handleAntArtifacts</code> which removes the unused artifact reference and
                    correctly regenerates the build-impl.xml not to build the removed project.
                    Added <code>ClassPathModifierSupport.handleRoots</code> which removes the unused file reference.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathModifierSupport"/>
            <issue number="213175"/>
        </change>
        <change id="PlatformUiSupport-preferred-platform">
            <api name="java-api-common"/>
            <summary>Added <code>PlatformUiSupport.storePlatform</code> with <code>updatePreferredPlatform</code> parameter</summary>
            <version major="1" minor="37"/>
            <date day="20" month="5" year="2012"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added <code>PlatformUiSupport.storePlatform</code> with <code>updatePreferredPlatform</code> parameter allowing
                    the API clients to specify if the <code>PreferredProjectPlatform</code> should be updated.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.ui" name="PlatformUiSupport"/>
            <issue number="208528"/>
        </change>
        <change id="ant-hooks">
            <api name="java-api-common"/>
            <summary>Added methods to track ant invocation</summary>
            <version major="1" minor="29"/>
            <date day="25" month="4" year="2011"/>
            <author login="phejl"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added methods to track ant invocation from subclasses.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="BaseActionProvider"/>
            <issue number="197838"/>
        </change>
        <change id="source-level-query-2">
            <api name="java-api-common"/>
            <summary>Added a factory method to create SourceLevelQueryImplementation2</summary>
            <version major="1" minor="22"/>
            <date day="8" month="7" year="2010"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Added a factory method to create default ant project based SourceLevelQueryImplementation2.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
            <issue number="185031"/>
        </change>
        <change id="sources-support">
            <api name="java-api-common"/>
            <summary>Support for mutable Sources</summary>
            <version major="1" minor="21"/>
            <date day="3" month="6" year="2010"/>
            <author login="tzezula"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Adding a factory method for creating a mutable Sources implemenation which allows adding (removing)
                    of roots.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common" name="Roots"/>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
            <issue number="148320"/>
        </change>
        <change id="action-provider">
            <api name="java-api-common"/>
            <summary>BaseActionProvider introduced</summary>
            <version major="1" minor="20"/>
            <date day="1" month="6" year="2010"/>
            <author login="dkonecny"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    J2SE implementations of ActionProvider was turned into friend API
                    so that EE project types can reuse most of Java specific code
                    without duplicating it.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.project" name="BaseActionProvider"/>
            <issue number="171153"/>
        </change>
        <change id="ap-query">
            <api name="java-api-common"/>
            <summary>Support for AnnotationProcessingQuery</summary>
            <version major="1" minor="14"/>
            <date day="26" month="1" year="2010"/>
            <author login="jlahoda"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Adding support for AnnotationProcessingQuery, and related API changes.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectProperties"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="EditMediator"/>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
            <issue number="179749"/>
        </change>

        <change id="endorsed-classpath">
            <api name="java-api-common"/>
            <summary>Add support for endorsed libraries</summary>
            <version major="1" minor="11"/>
            <date day="7" month="10" year="2009"/>
            <author login="dkonecny"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Add ability to create bootclasspath with given endorsed libraries.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupportFactory"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupport"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
            <issue number="172952"/>
        </change>
        <change id="java-code-refactoring">
            <api name="java-api-common"/>
            <summary>Refactor reusable code from J2SE project type and make it available
            for other project types (eg. J2EE/Web).</summary>
            <version major="1" minor="5"/>
            <date day="28" month="10" year="2008"/>
            <author login="dkonecny"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Make code implementing J2SE support in project type reusable.
                    Originally around NetBeans 4.0 most of this code was copy and pasted
                    from java.j2seproject to several other project types and kept in synch
                    ever since. This change eliminates duplicity of the code and refactors
                    as much of J2SE support specific code to java.api.common module as possible.
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathExtender"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathModifier"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathModifierSupport"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathProviderImpl"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupportFactory"/>
            <class package="org.netbeans.modules.java.api.common.classpath" name="ClassPathSupport"/>
            <class package="org.netbeans.modules.java.api.common.project" name="ProjectProperties"/>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="ClassPathUiSupport"/>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="JavaSourceNodeFactory"/>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="LibrariesNode"/>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="LogicalViewProvider2"/>
            <class package="org.netbeans.modules.java.api.common.project.ui" name="ProjectUISupport"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="AntArtifactItem"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="ClassPathListCellRenderer"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="CustomizerProvider2"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="EditMediator"/>
            <class package="org.netbeans.modules.java.api.common.project.ui.customizer" name="SourceRootsUi"/>
            <issue number="150357"/>
        </change>
        <change id="ProjectInfoImpl">
            <api name="java-api-common"/>
            <summary>Reusable implementation of ProjectInformation</summary>
            <version major="1" minor="18"/>
            <date day="18" month="5" year="2010"/>
            <author login="mvfranz"/>
            <compatibility addition="yes"/>
            <description>
                <p>
                    Created a reusable implementation of ProjectInformation that can be
                    used within the Java language projects.  Provide two factory methods
                    for creation in QuerySupport, one that uses AntProjectHelper and one
                    that uses UpdateHelper. 
                </p>
            </description>
            <class package="org.netbeans.modules.java.api.common.queries" name="QuerySupport"/>
            <issue number="110886"/>
        </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 j2eeserver/apichanges.xml

-->
    <head>
      <title>Change History for the Java Common 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 Java Common API.</p>

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

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

    </body>
  </htmlcontents>

</apichanges>
