Use Cases
API/SPI to be used by modules wanting to enhance the Gradle project's integration in the IDE.
Exported Interfaces
This table lists all of the module exported APIs
with
defined stability classifications. It is generated
based on answers to questions about the architecture
of the module.
Read them all...
Group of java interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
GradleProjectAPI | Exported | Under Development |
The Gradle Project API provides some miscellaneous friend APIs and SPIs relating to
Gradle projects.
|
|
Group of layer interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
GradleProjectCustomizer | Exported | Under Development |
"Projects/org-netbeans-modules-gradle/Customizer" folder's content is used to construct the project's customizer.
It's content is expected to be ProjectCustomizer.CompositeCategoryProvider instances.
The lookup passed to the panels contains an instance of Project .
|
GradleLogicalViewProvider | Exported | Under Development |
"Projects/org-netbeans-modules-gradle/Nodes" folder's content is used to construct the project's child nodes.
It's content is expected to be NodeFactory instances.
|
GradleLookup | Exported | Under Development |
"Projects/org-netbeans-modules-gradle/Lookup" folder's content is used to construct the project's additional lookup.
It's content is expected to be LookupProvider instances. Gradle project provides LookupMerger s
for Sources , PrivilegedTemplates , RecommendedTemplates and other classes.
Implementations added by 3rd parties will be merged into a single instance in the project's lookup.
"Projects/org-netbeans-modules-gradle/Plugins/<plugin-name>/Lookup" folder content is also used to contribute into
the project lookup, based on the Gradle plugin ids, like "java-base".
|
GradleActions | Exported | Under Development |
"Projects/org-netbeans-modules-gradle/Actions" folder'' content is used to
add item's to the main project node popup.
It's content is expected to be Action instances.
|
|
Group of branding interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
org.netbeans.modules.gradle.api.execute.NetworkProxySettings.allowOverride | Exported | Under Development |
Brand the org.netbeans.modules.gradle.api.execute.NetworkProxySettings.allowOverride key in a
org.netbeans.modules.gradle.api.execute.Bundle file
with one of the values true or false to specify whether to offer override of proxies
when running Gradle daemon. With false , the user is only given an option to upgrade gradle's configuration files.
Since
|
org.netbeans.modules.gradle.spi.DEFAULT_REUSE_OUTPUT | Exported | Under Development |
Brand the DEFAULT_REUSE_OUTPUT key in a
org.netbeans.modules.gradle.spi.Bundle file
with one of the values true or false
to specify the default behavior of reusing output by your application.
Use never value, if the reuse shall never be done,
regardless of the settings value.
|
org.netbeans.modules.gradle.api.execute.TrustProjectOption | Exported | Under Development |
Brand the org.netbeans.modules.gradle.api.execute.TrustProjectOption.* keys in org.netbeans.modules.gradle.api.execution
to enable/disable/reorder options in 'trust project' confirmation dialog.
For more details, see RunUtils.isProjectTrusted.
|
|
Group of systemproperty interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
netbeans.debug.gradle.info.action | Exported | Under Development |
Starting NetBeans with netbeans.debug.gradle.info.action=true
would make the Gradle project information loading into a debugabble JVM
where the debugging port is 5006 . A new debugger session
can be attached to that port, make the netbeans-gradle-tooling
project debuggable in action.
|
|
Group of property interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
runJvmArgs | Exported | Friend |
NetBeans Tooling plugin recognizes runJvmArgs project property, and injects
specified JVM arguments into JavaExec executing the user code. Use -PrunJvmArgs=... .
If passing more arguments, the whole -P must be properly quoted. Arguments that contain spaces must
also use quoting or escapes.
|
runWorkingDir | Exported | Friend |
NetBeans Tooling plugin recognizes runWorkingDir project property, and injects
specified working directory into JavaExec executing the user code. Use -PrunWorkingDir=... .
If the working directory contain spaces, it must also use quoting or escapes.
|
runEnvironment | Exported | Friend |
NetBeans Tooling plugin recognizes runEnvironment project property, and injects
specified environmental variables into JavaExec executing the user code. Use -PrunEnvironment=... .
The value consists of expressions of VAR_NAME=VAR_VALUE , or !VAR_NAME .
The VAR_NAME=VAR_VALUE sets environment variable VAR_NAME to value VAR_VALUE
and !VAR_NAME removes variable VAR_NAME from the set of environment variables.
If passing more arguments, the whole -P must be properly quoted. Variables whose values contain spaces must
also use quoting or escapes.
|
|
Group of java.io.File interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
nb-actions.xml | Exported | Under Development |
NetBeans Gradle support recognizes special file(s) that can be placed
next to a build.gradle . These files contain description of
bindings between NetBeans UI actions (compile, run, debug, etc.) and
the actual Gradle goals to execute.
<!DOCTYPE actions SYSTEM "action-mapping.dtd">
<actions>
<action name="clean">
<args>clean</args>
</action>
<action name="download.javadoc">
<!--
We do not really execute any tasks here, rather just reload the project
allowing it to go online and fetch some dependencies. So in this case
the action is forcing a project reload with some argiments.
-->
<reload rule="ALWAYS_ONLINE">
<args>-PdownloadJavadoc=${requestedComponent}</args>
</reload>
</action>
<action name="download.sources">
<reload rule="ALWAYS_ONLINE">
<args>-PdownloadSources=${requestedComponent}</args>
</reload>
</action>
<action name="download.sourcesanddoc">
<reload rule="ALWAYS_ONLINE">
<args>-PdownloadSources=${requestedComponent} -PdownloadJavadoc=${requestedComponent}</args>
</reload>
</action>
<!--
The following section is used and preferred when the 'virtual plugin' named
'root' is present in the project plugin list marking that project is a root
project.
-->
<apply-for plugins="root">
<action name="clean">
<args>clean</args>
</action>
<action name="build">
<args>assemble</args>
</action>
<action name="rebuild">
<args>clean assemble</args>
</action>
</apply-for>
<!--
The following section is used and preferred when the plugin named
'java' is present in the project plugin list.
-->
<apply-for plugins="java">
<action name="test.single">
<args>--rerun-tasks test --tests ${selectedMethod}</args>
</action>
<action name="run.single.method">
<args>--rerun-tasks test --tests ${selectedMethod}</args>
</action>
<action name="debug.single.method">
<args>--rerun-tasks test --debug-jvm --tests ${selectedMethod}</args>
</action>
<action name="debug.test.single">
<args>--rerun-tasks test --debug-jvm --tests ${selectedMethod}</args>
</action>
<action name="javadoc">
<args>javadoc</args>
</action>
<!--
The debug.fix action is not repeatable. So it cannot be repeated
in the Output Tab UI.
-->
<action name="debug.fix" repeatable="false">
<args>--offline --no-rebuild ${affectedBuildTasks}</args>
<reload rule="NEVER"/>
</action>
</apply-for>
<!--
Custom actions are present under the "Run Gradle' popup on the project
node. They shall be named with a prefix 'custom-' and an project unique
number. They can have a displayName which is used to present the action
in the UI.
-->
<action name="custom-1" displayName="Publish Plugin">
<!-- Using 'input:' token provider will request user input
when invoking the action. I this case it request a value displayed
as 'Version', and fills up the default as '0.4.x'. The default
value part is optional.
-->
<args>-Pversion=${input:Version,0.4.x}
clean
publishPlugins</args>
</actions>
|
nb-actions-config.xml | Exported | Under Development |
An extension of nb-actions.config is a per-Configuration action mapping.
It can be placed in nb-actions-configurationID.xml with the same format and will apply only
if that specific Project Configuration is in effect.
|
|
Group of lookup interfaces
Interface Name | In/Out | Stability | Specified in What Document? |
waitFinished | Exported | Private |
When calling
ActionProvider.invokeAction(name, lookup)
an instance of AfterBuildActionHook
can be placed into lookup . It is then notified when the
execution of the action is finished. Useful when writing tests.
|
project-actions | Exported | Private |
The GradleActionProviders can be also activated for individual Plugins;
register them for project type org-netbeans-modules-gradle/Plugins/<plugin-id> .
|
|
Implementation Details
Where are the sources for the module?
The sources for the module are in the
Apache Git repositories
or in the GitHub repositories.
What do other modules need to do to declare a dependency on this one, in addition to or instead of a plain module dependency?
XXX no answer for deploy-dependencies
Read more about the implementation in the answers to
architecture questions.