blob: 86652a3b849513fc5310b1a6e0a46682e32cd5b0 [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 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="general">Gradle Project API</apidef>
<!-- etc. -->
</apidefs>
<!-- ACTUAL CHANGES BEGIN HERE: -->
<changes>
<change id="expose-project-action-mapping-provider">
<api name="general"/>
<summary>Make ProjectActionMappingProvider available for other modules.</summary>
<version major="2" minor="6"/>
<date day="15" month="10" year="2020"/>
<author login="lkishalmi"/>
<compatibility semantic="compatible"/>
<description>
<p>
Made <a href="@TOP@/org/netbeans/modules/gradle/spi/actions/ProjectActionMappingProvider.html">ProjectActionMappingProvider</a> available
for other modules, so they either can provide an alternative implementation or most probably able to take a sneak peek on
the current action configuration.
</p>
<p>
In order to make other modules interpret the action mapping in context <a href="@TOP@/org/netbeans/modules/gradle/api/execute/RunUtils.html">RunUtils</a> got a new evaluateActionArgs
utility method which can replace tokens provided in ActionMapping arguments.
</p>
<p>
Finally to support this token replacement, <a href="@TOP@/org/netbeans/modules/gradle/spi/actions/ReplacementTokenProvider.html">ReplacementTokenProvider</a>
got a new static method <code>replaceTokens</code>.
</p>
</description>
</change>
<change id="reusetabs">
<api name="general"/>
<summary>Default for reusing tabs</summary>
<version major="2" minor="5"/>
<date day="15" month="10" year="2020"/>
<author login="jtulach"/>
<compatibility semantic="compatible"/>
<description>
<p>
Introducing <a href="@TOP@architecture-summary.html#group-branding">branding APIs</a>
to configure default value for <b>reusing tabs</b> in Gradle projects.
</p>
</description>
</change>
<change id="gradle-buildsrc-project">
<api name="general"/>
<summary>GradleFiles SPI has the methods to deal with the buildSrc project.</summary>
<version major="2" minor="4"/>
<date year="2020" month="10" day="7"/>
<author login="lkishalmi"/>
<compatibility binary="compatible" source="compatible"/>
<description>
<p>
<code><a href="@TOP@/org/netbeans/modules/gradle/spi/GradleFiles.html#isBuildSrcProject()">GradleFiles.isBuildSrcProject()</a></code> was
added to detect if a project id a buildSrc project, and a new file Kind has been introduced <code>BUILD_SRC</code>.
</p>
</description>
</change>
<change id="gradle-project-connection">
<api name="general"/>
<summary>Expose Gradle ProjectConnection through Project's Lookup.</summary>
<version major="2" minor="4"/>
<date year="2020" month="8" day="21"/>
<author login="lkishalmi"/>
<compatibility binary="compatible" source="compatible"/>
<description>
<p>
Gradle's <code><a href="https://docs.gradle.org/current/javadoc/org/gradle/tooling/ProjectConnection.html">ProjectConnection</a></code>
is now available on the project lookup, making possible for modules to interact with Gradle in deeper level.
</p>
</description>
</change>
<change id="gradle-distribution-manager">
<api name="general"/>
<summary>Expose GradleDistribution manager as an API.</summary>
<version major="2" minor="4"/>
<date year="2020" month="8" day="21"/>
<author login="lkishalmi"/>
<compatibility binary="compatible" source="compatible"/>
<description>
<p>
Starting to give the project more freedom over control of
their <code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.GradleDistribution.html">GradleDistribution</a></code> in use, the previously non-API
<code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/GradleDistributionManager.html">GradleDistributionManager</a></code> got a review and got moved into
execution apis. Together with the <code>GradleDistributionProvider</code>
(API/SPI) it is possible to fetch information on the Gradle
Distribution used in the project.
</p>
<p>
<code><a href="@TOP@/org/netbeans/modules/gradle/spi/execute/GradleDistributionProvider.html">GradleDistributionProvider</a></code> has a default implementation it
is not necessary to implement it. With that new interface
the <code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/RunUtils.html#evaluateGradleDistribution-org.netbeans.api.project.Project-boolean-">RunUtils.evaluateGradleDistribution()</a></code>
got deprecated.
</p>
</description>
</change>
<change id="gradle-java-independence">
<api name="general"/>
<summary>Remove Java Platform dependency.</summary>
<version major="2" minor="3"/>
<date year="2020" month="7" day="15"/>
<author login="lkishalmi"/>
<compatibility binary="compatible" source="compatible"/>
<description>
<p>
Due to recent movement and the plan to support Gradle native
projects as well in the future the dependency on
Java Platform module has been removed.
</p>
<p>
The removal affects <code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/RunUtils.html#getActivePlatform-java.lang.String-">RunUtils.getActivePlatform</a></code>
methods. The method returns a Pair with <code>null</code> as <code>second</code> which
indicates a broken Platform. This is for keeping the binary compatibility only.
These methods shall be not used at all. There is no
replacement planned for these API functions.
</p>
<p>
Added <code><a href="@TOP@/org/netbeans/modules/gradle/spi/exectute/GradleJavaPlatformProvider.html">GradleJavaPlatformProvider</a></code>
which can be put into the project lookup, to be able to specify the JDK
to be used for Gradle build execution.
</p>
</description>
</change>
<change id="gradle-project-trust">
<api name="general"/>
<summary>Introduce Trust relationship with Gradle Projects to prevent unintentional Gradle invocation.</summary>
<version major="2" minor="2"/>
<date year="2020" month="6" day="24"/>
<author login="lkishalmi"/>
<compatibility binary="compatible" source="compatible"/>
<description>
<p>
Gradle projects are maintaining a trust attribute from now.
This trust is based on the NetBeans user directory and the
a secret placed in the Gradle Root project directory.
</p>
<p>
Trusting any project of a multi-project Gradle build means
trust all project in that multi-project project, as the
trust is placed on the root project.
</p>
<p>
This change is backported to version 2.0.1 as well.
</p>
<p>
Added <code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/RunUtils.html#isProjectTrusted-org.netbeans.api.project.Project-boolean-">RunUtils.isProjectTrusted(Project,boolean)</a></code>
where plugin can check if a project is trusted or request
one time trust with interactive mode.
</p>
<p>
There is no API/SPI to mark a project trusted/untrusted.
Projects are not trusted by default, but become trusted once
a priming build is requested or a Gradle task is invoked as
a result of an user action.
</p>
<p>
Added <code><a href="@TOP@/org/netbeans/modules/gradle/spi/GradleSettings.GradleExecutionRule.html">GradleSettings.GradleExecutionRule</a></code>
with setter ad getter in <code><a href="@TOP@/org/netbeans/modules/gradle/spi/GradleSettings.html">GradleSettings</a></code>
as a global option to how to treat automatic Gradle Execution globally.
</p>
</description>
</change>
<change id="gradle-tooling-api-split">
<api name="general"/>
<summary>Move Gradle Tooling API to a separate module.</summary>
<version major="2" minor="0"/>
<date year="2020" month="4" day="4"/>
<author login="lkishalmi"/>
<compatibility binary="incompatible" source="compatible"/>
<description>
<p>
The Gradle Tooling API has been removed from this module to
its own into: <code>org.netbeans.modules.libs.gradle</code>
</p>
<p>
Modules depending on previous versions of this module need
an additional dependency on the new library module. The
main reason behind this split is that it is easier to do
Gradle Tooling API update in the future.
</p>
<pre>
&lt;dependency&gt;
&lt;code-name-base&gt;org.netbeans.modules.libs.gradle&lt;/code-name-base&gt;
&lt;compile-dependency/&gt;
&lt;run-dependency&gt;
&lt;release-version&gt;6&lt;/release-version&gt;
&lt;specification-version&gt;6.3&lt;/specification-version&gt;
&lt;/run-dependency&gt;
&lt;/dependency&gt;
</pre>
<p>
<b>Note:</b> The specification version of the <code>org.netbeans.modules.libs.gradle</code>
module is matching the provided Gradle Tooling API version. The release version number
follows the major version.
</p>
<p>
Besides of the library removal the source code provided in
this module are backward compatible.
</p>
</description>
<issue number="NETBEANS-4118"/>
</change>
<change id="allow-cancelling-gradle-process">
<api name="general"/>
<summary>Added <code>RunUtils.cancelGradle(RunConfig)</code> to allow plugins to cancel an executed Gradle process.</summary>
<version major="1" minor="4"/>
<date year="2019" month="10" day="22"/>
<author login="lkishalmi"/>
<compatibility source="compatible"/>
<description>
<p>
Added <code><a href="@TOP@/org/netbeans/modules/gradle/api/execute/RunUtils.html#cancelGradle-org.netbeans.modules.gradle.api.execute.RunConfig-">RunUtils.cancelGradle(RunConfig)</a></code> to allow plugins to cancel an executed Gradle process.
</p>
</description>
<class package="org.netbeans.modules.gradle.api.execute" name="RunUtils"/>
<issue number="NETBEANS-3279"/>
</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 projects/projectuiapi/apichanges.xml
-->
<head>
<title>Change History for the Gradle 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="@org-netbeans-modules-gradle@/index.html">Gradle Project API</a>.</p>
<!-- The actual lists of changes, as summaries and details: -->
<hr/>
<standard-changelists module-code-name="org.netbeans.modules.gradle/0"/>
<hr/>
<p>@FOOTER@</p>
</body>
</htmlcontents>
</apichanges>