blob: 72c3606d240a63307c23cca8777508dbc6161efd [file] [log] [blame]
<?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 href="../../nbbuild/javadoctools/apichanges.xsl" type="text/xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">
<!-- INFO FOR PEOPLE ADDING CHANGES:
[most of contents snipped - see openide's apichanges for how-to instructions]
<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>
-->
<apichanges>
<!-- First, a list of API names you may use: -->
<apidefs>
<apidef name="classpath">Classpath API</apidef>
<apidef name="queries">Java-related queries</apidef>
</apidefs>
<!-- ACTUAL CHANGES BEGIN HERE: -->
<changes>
<change id="ModulePathsConstants">
<api name="queries"/>
<summary>Added constants for module paths into the <code>JavaClassPathConstants</code></summary>
<version major="1" minor="64"/>
<date day="4" month="10" year="2016"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added constants for module paths into the <code>JavaClassPathConstants</code>.
</p>
</description>
<class package="org.netbeans.api.java.classpath" name="JavaClassPathConstants"/>
</change>
<change id="AccessibilityQueryImplementation2">
<api name="queries"/>
<summary>Added <code>AccessibilityQueryImplementation2</code> to allow to listen on package accessibility changes</summary>
<version major="1" minor="64"/>
<date day="4" month="10" year="2016"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added <code>AccessibilityQueryImplementation2</code> interface and <code>AccessibilityQuery.isPubliclyAccessible2</code> method
to allow to listen on package accessibility changes.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="AccessibilityQuery"/>
<class package="org.netbeans.spi.java.queries" name="AccessibilityQueryImplementation2"/>
</change>
<change id="CompilerOptionsQuery">
<api name="queries"/>
<summary>Added <code>CompilerOptionsQuery</code> for additional compiler options</summary>
<version major="1" minor="64"/>
<date day="4" month="10" year="2016"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added <code>CompilerOptionsQuery</code> for passing additional compiler options
to java infrastructure.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="CompilerOptionsQuery"/>
<class package="org.netbeans.spi.java.queries" name="CompilerOptionsQueryImplementation"/>
</change>
<change id="SourceLevelQuery-MINIMAL_SOURCE_LEVEL">
<api name="queries"/>
<summary>Added <code>MINIMAL_SOURCE_LEVEL</code> into <code>SourceLevelQuery</code></summary>
<version major="1" minor="60"/>
<date day="15" month="6" year="2015"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added the <code>MINIMAL_SOURCE_LEVEL</code> constant into the <code>SourceLevelQuery</code>
specifying the minimal supported source level.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="SourceLevelQuery"/>
</change>
<change id="SourceJavadocAttacherImplementation-Definer">
<api name="queries"/>
<summary>Added extension to the default SourceJavadocAttacherImplementation</summary>
<version major="1" minor="47"/>
<date day="22" month="7" year="2013"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added <code>SourceJavadocAttacherImplementation.Definer</code> interface
allowing extending the default SourceJavadocAttacherImplementation.
Such an extension can download or locate the sources and javadoc for
given binary.
</p>
</description>
<issue number="215971"/>
</change>
<change id="JDK8-profiles-2">
<api name="queries"/>
<summary>The <code>SourceLevelQuery</code> supports JDK 8 profiles</summary>
<version major="1" minor="47"/>
<date day="10" month="4" year="2013"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="incompatible" binary="incompatible">
Incompatible change of not released API.
</compatibility>
<description>
<p>
The JDK Profile was changed to enum type.
</p>
</description>
<issue number="228278"/>
</change>
<change id="JDK8-profiles">
<api name="queries"/>
<summary>The <code>SourceLevelQuery</code> supports JDK 8 profiles</summary>
<version major="1" minor="45"/>
<date day="5" month="3" year="2013"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
The JDK 8 provides three limited profiles (compact1, compact2, compact3) in addition
to the full JDK. Each profile specifies a specific set of Java API packages and
contains all of the APIs of the smaller profile. The new API allows a client of the
<code>SourceLevelQuery</code> to query the required profile.
</p>
</description>
<issue number="226657"/>
</change>
<change id="source-level-synonyms">
<api name="queries"/>
<summary>The <code>SourceLevelQuery</code> supports source level synonyms</summary>
<version major="1" minor="40"/>
<date day="7" month="6" year="2012"/>
<author login="tzezula"/>
<compatibility semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
The semantics of the <code>SourceLevelQuery</code>, <code>SourceLevelQueryImplementation</code>
and <code>SourceLevelQueryImplementation2</code> was extended to support source level synonyms.
The <code>SourceLevelQueryImplementation</code> and <code>SourceLevelQueryImplementation2</code>
can return source level synonyms, e.g. "5" for "1.5". These synonyms are always normalized
by the <code>SourceLevelQuery</code> before they are teturned to an API client.
</p>
</description>
<issue number="202329"/>
</change>
<change id="java-classpath-compile-only">
<api name="classpath"/>
<summary>Introducing JavaClassPathConstants.COMPILE_ONLY</summary>
<version major="1" minor="39"/>
<date day="23" month="5" year="2012"/>
<author login="tzezula"/>
<compatibility addition="yes" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added a new <code>COMPILE_ONLY</code> classpath type allowing project types to add
classpath resources which should be included in the complile classpath but should not
be inherited by runtime classpath.
</p>
</description>
<class package="org.netbeans.api.java.classpath" name="JavaClassPathConstants" />
<issue number="207717"/>
</change>
<change id="source-javadoc-attacher">
<api name="queries"/>
<summary>Added SourceJavadocAttacher to allow clients to attach source (javadoc) roots to binary root</summary>
<version major="1" minor="35"/>
<date day="11" month="8" year="2011"/>
<author login="tzezula"/>
<compatibility addition="yes" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added an API to allow clients to attach source roots and javadoc roots to binary roots.
The API delegates to SPI implementations which provide specific behavior depending on
type of binary root (platform, library, maven artifact). There is also fallback implementation
handling unknown binary roots by storing the bindings into IDE's userdir.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="SourceJavadocAttacher" />
<class package="org.netbeans.spi.java.queries" name="SourceJavadocAttacherImplementation" />
<issue number="200698"/>
</change>
<change id="source-level-changes">
<api name="queries"/>
<summary>Added notifications about source level changes into SourceLevelQuery</summary>
<version major="1" minor="30"/>
<date day="8" month="7" year="2010"/>
<author login="tzezula"/>
<compatibility addition="yes" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
The SourceLevelQuery did not allow listening on the source level changes. Such a
notifications are required by the annotation processor support and indexing.
This API change adds a SourceLevelQuery.getSourceLevel2 which returns a Result object
which allows listening like other queries.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="SourceLevelQuery" />
<class package="org.netbeans.spi.java.queries" name="SourceLevelQueryImplementation2" />
<issue number="185031"/>
</change>
<change id="ap-query-triggers">
<api name="classpath"/>
<summary>Introducing AnnotationProcessingQuery.Result.Trigger</summary>
<version major="1" minor="28"/>
<date day="15" month="4" year="2010"/>
<author login="dbalek"/>
<compatibility addition="yes" modification="no" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>Modifying AnnotationProcessingQuery.Result.annotationProcessingEnabled() to return a set of triggers on which the annotation processors should be run.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="AnnotationProcessingQuery" />
<issue number="183793"/>
</change>
<change id="ap-query-processoroptions">
<api name="classpath"/>
<summary>Introducing AnnotationProcessingQuery.Result.processorOptions</summary>
<version major="1" minor="26"/>
<date day="4" month="3" year="2010"/>
<author login="dbalek"/>
<compatibility addition="yes" modification="no" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>Adding AnnotationProcessingQuery.Result.processorOptions() to return options passed to annotation processors (-Akey=value).
</p>
</description>
<class package="org.netbeans.api.java.queries" name="AnnotationProcessingQuery" />
<issue number="181421"/>
</change>
<change id="ap-query">
<api name="classpath"/>
<summary>Introducing AnnotationProcessingQuery</summary>
<version major="1" minor="25"/>
<date day="27" month="1" year="2010"/>
<author login="jlahoda"/>
<compatibility addition="yes" modification="no" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>Adding AnnotationProcessingQuery return annotation processing options for a given file/folder.
</p>
</description>
<class package="org.netbeans.api.java.queries" name="AnnotationProcessingQuery" />
<class package="org.netbeans.spi.java.queries" name="AnnotationProcessingQueryImplementation" />
<issue number="179749"/>
</change>
<change id="java-classpath-processorpath">
<api name="classpath"/>
<summary>Introducing JavaClassPathConstants.PROCESSOR_PATH</summary>
<version major="1" minor="22"/>
<date day="18" month="10" year="2009"/>
<author login="jlahoda"/>
<compatibility addition="yes" modification="no" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Class org.netbeans.api.java.classpath.JavaClassPathConstants is created to hold java specific classpath constants.
org.netbeans.api.java.classpath.JavaClassPathConstants.PROCESSOR_PATH constant is created as a key
for Java processor path.
</p>
</description>
<class package="org.netbeans.api.java.classpath" name="JavaClassPathConstants" />
<issue number="174202"/>
</change>
<change id="classpath-api-module">
<api name="classpath"/>
<summary>Splitting the java API to independent ClassPath API and the rest of the java API</summary>
<version major="1" minor="18"/>
<date day="5" month="6" year="2008"/>
<author login="tzezula"/>
<compatibility addition="no" modification="no" semantic="compatible" source="incompatible" binary="compatible"/>
<description>
<p>
The copy of the ClassPath API was used by generic scripting framework, which cannot depend on the java cluster.
To remove this copy of the ClassPath API the java API needs to be splitted into the ClassPath API (IDE cluster)
and the rest of the java API (java cluster).
</p>
</description>
<issue number="136169"/>
</change>
<change id="ClassPath.string">
<api name="classpath"/>
<summary>Interconversions with string-format classpaths</summary>
<version major="1" minor="15"/>
<date day="17" month="3" year="2008"/>
<author login="jglick"/>
<compatibility addition="yes"/>
<description>
<p>
<code>ClassPath.toString(PathConversionMode)</code> and
<code>ClassPathSupport.createClassPath(String)</code>
can be used to easily convert between traditional string classpaths
and NetBeans' internal representation.
</p>
</description>
<!-- <class package="org.netbeans.api.java.classpath" name="ClassPath"/>
<class package="org.netbeans.spi.java.classpath.support" name="ClassPathSupport"/> -->
<issue number="59311"/>
</change>
<change id="queries-spi-support">
<api name="queries"/>
<summary>Support for delegating SourceForBinaryQueryImplementation2</summary>
<version major="1" minor="16"/>
<date day="13" month="3" year="2008"/>
<author login="tzezula"/>
<compatibility addition="yes" modification="no" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
Added support base class for SourceForBinaryQueryImplementation2 which delegates to other SourceForBinaryQueryImplementations.
</p>
</description>
<!-- <class package="org.netbeans.spi.java.queries.support" name="SourceForBinaryQueryImpl2Base"/> -->
<issue number="129884"/>
</change>
<change id="source-for-binary-query2">
<api name="queries"/>
<summary>Support for passing hint to the java infrastructure whether it should prefer source or binary</summary>
<version major="1" minor="15"/>
<date day="10" month="3" year="2008"/>
<author login="tzezula"/>
<compatibility addition="yes" modification="yes" semantic="compatible" source="compatible" binary="compatible"/>
<description>
<p>
It is possible for the SouceForBinaryQuery provider to specify whether the java module should prefer
sources or binaries. In general sources should be preferred for projects where user can make modification.
The binaries should be preferred for libraries and platforms where sources may not be complete or correct.
</p>
</description>
<!-- <class package="org.netbeans.api.java.queries" name="SourceForBinaryQuery"/>
<class package="org.netbeans.spi.java.queries" name="SourceForBinaryQueryImplementation2"/> -->
<issue number="128695"/>
</change>
<change id="includes-excludes.classpath">
<api name="classpath"/>
<summary>Support for specifying classpath inclusion</summary>
<version major="1" minor="13"/>
<date day="1" month="3" year="2007"/>
<author login="jglick"/>
<compatibility addition="yes" modification="yes" semantic="incompatible" source="compatible" binary="compatible">
<p>
It is possible for clients of existing <code>ClassPath</code> methods to have made
assumptions about their behavior that are no longer true.
</p>
</compatibility>
<description>
<p>
Classpath implementations can now specify which files and folders/packages to include
or exclude. (This could be used for binary classpaths such as <code>COMPILE</code> but
currently only excludes on <code>SOURCE</code> paths are honored by Java language features.)
</p>
</description>
<!-- <class package="org.netbeans.api.java.classpath" name="ClassPath"/>
<class package="org.netbeans.spi.java.classpath" name="FilteringPathResourceImplementation"/> -->
<issue number="49026"/>
</change>
<change id="BinaryForSourceQuery">
<api name="queries"/>
<summary>BinaryForSourceQuery returns folder(s) containing binaries for source rooot</summary>
<version major="1" minor="12"/>
<date day="8" month="2" year="2007"/>
<author login="tzezula"/>
<compatibility addition="yes"/>
<description>
<p>
The new API BinaryForSourceQuery was added to allow clients to find out the output (class files)
corresponding to source root. The query uses instances of a SPI interface BinaryForSourceQueryImplementation
registered in the system lookup to find out the binaries. When no binary is found it uses the default algorithm
(SFBQ.findSources(ClassPath.EXECUTE) == sourceRoot)
</p>
</description>
<!-- <class package="org.netbeans.api.java.queries" name="BinaryForSourceQuery"/>
<class package="org.netbeans.spi.java.queries" name="BinaryForSourceQueryImplementation"/> -->
</change>
<change id="UnitTestForSourceQuery.multiple">
<api name="queries"/>
<summary>UnitTestForSourceQuery supports multiple source and test roots</summary>
<version major="1" minor="7"/>
<date day="8" month="11" year="2004"/>
<author login="tzezula"/>
<compatibility addition="yes" deprecation="yes">
Compatibility with the old API and SPI is provided.
Both versions of SPI interfaces are used by the API; a project type may still implement the
deprecated <code>UnitTestForSourceQueryImplementation</code> rather than
<code>MultipleRootsUnitTestForSourceQueryImplementation</code>.
</compatibility>
<description>
<p>
Added two static methods, <code>findSources(FileObject)</code> and <code>findUnitTests(FileObject)</code>,
into <code>UnitTestForSourceQuery</code>. Added a new SPI interface
<code>MultipleRootsUnitTestForSourceQueryImplementation</code> which allows to a project type to return
more than one source/test root.
The change was required to allow support of multiple source and test roots.
</p>
</description>
<!-- <class package="org.netbeans.api.java.queries" name="UnitTestForSourceQuery"/>
<class package="org.netbeans.spi.java.queries" name="UnitTestForSourceQueryImplementation"/>
<class package="org.netbeans.spi.java.queries" name="MultipleRootsUnitTestForSourceQueryImplementation"/> -->
</change>
<change>
<api name="queries"/>
<summary>Added SourceLevelQuery</summary>
<version major="1" minor="5"/>
<date day="27" month="4" year="2004"/>
<author login="dkonecny"/>
<compatibility/>
<description>
<p>
Added query answering the source level of a Java file.
</p>
</description>
<!-- <class package="org.netbeans.api.java.queries" name="SourceLevelQuery"/>
<class package="org.netbeans.spi.java.queries" name="SourceLevelQueryImplementation"/> -->
</change>
<change id="ClassPath.buildsys">
<api name="classpath"/>
<summary><code>ClassPath</code> API changed to be pluggable and better support build system</summary>
<version major="1" minor="4"/>
<date day="16" month="3" year="2004"/>
<author login="jglick"/>
<compatibility binary="compatible" source="compatible" semantic="incompatible" deprecation="yes" addition="yes" modification="yes">
<p>
Code which just called <code>ClassPath.getClassPath</code>
and so on as API clients should still be safe, <em>but</em>
passing null as a reference file no longer works.
</p>
</compatibility>
<description>
<p>
<code>ClassPath</code> is now final, not abstract. (Not
incompatible, since the constructor was never public.) Same
for <code>ClassPath.Entry</code>.
</p>
<p>
<code>getClassPath</code> now looks for
<code>ClassPathProvider</code>s rather than delegating to the
filesystems mounted in <code>Repository</code>.
</p>
<p>
The classpath type <code>DEBUG</code> was deprecated.
<code>SOURCE</code> and <code>BOOT</code> were added.
</p>
<p>
<code>ClassPath.Entry.getURL()</code> was added.
</p>
<p>
There is a complete SPI for creating <code>ClassPath</code>
instances.
</p>
</description>
<!-- <class package="org.netbeans.api.java.classpath" name="ClassPath"/>
<class package="org.netbeans.spi.java.classpath" name="ClassPathProvider"/>
<class package="org.netbeans.spi.java.classpath" name="ClassPathFactory"/>
<class package="org.netbeans.spi.java.classpath" name="ClassPathImplementation"/>
<class package="org.netbeans.spi.java.classpath" name="PathResourceImplementation"/>
<class package="org.netbeans.spi.java.classpath.support" name="ClassPathSupport"/>
<class package="org.netbeans.spi.java.classpath.support" name="CompositePathResourceBase"/>
<class package="org.netbeans.spi.java.classpath.support" name="PathResourceBase"/> -->
</change>
<change id="GlobalPathRegistry">
<api name="classpath"/>
<summary>Added <code>GlobalPathRegistry</code></summary>
<version major="1" minor="4"/>
<date day="16" month="3" year="2004"/>
<author login="jglick"/>
<compatibility>
<p>
Note that <code>GlobalPathRegistry</code> serves some of the
same functions as <code>Repository.default</code> used to,
but client code should be reviewed carefully for usage.
</p>
</compatibility>
<description>
Added a new class <code>GlobalPathRegistry</code> to represent
classpaths of current interest, typically from open projects.
</description>
<!-- <class package="org.netbeans.api.java.classpath" name="GlobalPathRegistry"/> -->
</change>
<change id="new-queries">
<api name="queries"/>
<summary>Added several queries</summary>
<version major="1" minor="4"/>
<date day="16" month="3" year="2004"/>
<author login="jglick"/>
<compatibility/>
<description>
<p>
Several new queries were added (API and SPI) to represent
various aspects of Java sources.
</p>
</description>
<!-- <class package="org.netbeans.api.java.queries" name="AccessibilityQuery"/>
<class package="org.netbeans.api.java.queries" name="JavadocForBinaryQuery"/>
<class package="org.netbeans.api.java.queries" name="SourceForBinaryQuery"/>
<class package="org.netbeans.api.java.queries" name="UnitTestForSourceQuery"/>
<class package="org.netbeans.spi.java.queries" name="AccessibilityQueryImplementation"/>
<class package="org.netbeans.spi.java.queries" name="JavadocForBinaryQueryImplementation"/>
<class package="org.netbeans.spi.java.queries" name="SourceForBinaryQueryImplementation"/>
<class package="org.netbeans.spi.java.queries" name="UnitTestForSourceQueryImplementation"/> -->
</change>
<change>
<api name="classpath"/>
<summary>ClassPath.getClassLoader method added</summary>
<version major="1" minor="2" subminor="1"/>
<date day="21" month="2" year="2003"/>
<author login="sdedic"/>
<compatibility semantic="compatible"/>
<description>
ClassPath.getClassLoader() method allows to get classloader capable of loading
classes from the ClassPath.
</description>
</change>
<change>
<api name="classpath"/>
<summary>ClassPath.getClassPath is permitted to return null value</summary>
<version major="1" minor="2"/>
<date day="9" month="12" year="2002"/>
<author login="sdedic"/>
<compatibility semantic="incompatible"/>
<description>
ClassPath.getClassPath() documentation omitted the fact, that the method may
return <code>null</code>. Although the implementation functioned that way
from the beginning, it is considered an incompatible change (tightening of
the contract).
</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 xml/api/doc/changes/apichanges.xml
-->
<head>
<title>Java Support API changes by date</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 Support APIs. Please ask on the
<code>dev@java.netbeans.org</code> or <code>nbdev@netbeans.org</code>
mailing list if you have any questions about the details of a
change, or are wondering how to convert existing code to be compatible.</p>
<hr/><standard-changelists module-code-name="org.netbeans.api.java/1"/>
<hr/><p>@FOOTER@</p>
</body>
</htmlcontents>
</apichanges>