This is an automated email from the ASF dual-hosted git repository.
mbien pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new 82374c2662 make maven project properties window aware of the javac
release option
new d5c444f151 Merge pull request #5744 from
mbien/project-properties-release
82374c2662 is described below
commit 82374c2662111cf77c5b0143a195c43b1ba25003
Author: Michael Bien <[email protected]>
AuthorDate: Thu Mar 30 04:42:13 2023 +0200
make maven project properties window aware of the javac release option
the properties window will now update the release option if it can be
found and will continue to use source/target otherwise.
it will also make sure that both are not used at the same time.
---
.../org/netbeans/modules/maven/api/ModelUtils.java | 17 ++++++++++-----
.../modules/maven/customizer/SourcesPanel.java | 24 ++++++++++++++++++----
2 files changed, 32 insertions(+), 9 deletions(-)
diff --git a/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
b/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
index 2f6b82485a..8cd39a6216 100644
--- a/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
+++ b/java/maven/src/org/netbeans/modules/maven/api/ModelUtils.java
@@ -305,13 +305,13 @@ public final class ModelUtils {
}
/**
- * Sets the Java source level of a project.
+ * Sets the Java source and target level of a project (will set release if
previously set).
* Use {@link
PluginPropertyUtils#getPluginProperty(org.netbeans.api.project.Project,String,String,String,String,String)}
first
* ({@link Constants#GROUP_APACHE_PLUGINS}, {@link
Constants#PLUGIN_COMPILER}, {@link Constants#SOURCE_PARAM}, {@code "compile"})
* to make sure that the current level is actually not what you want.
*
- * Please Note: THis method will not take existing configuration into
account, especially the use of property (maven.compiler.source,
maven.compiler.target)
- * instead of plugin configuration is ignored.
+ * Please Note: This method will not take existing properties into account
(maven.compiler.source, maven.compiler.target or maven.compiler.release),
+ * it is only updating the plugin configuration itself.
* @param mdl a POM model
* @param sourceLevel the desired source level
* @since 2.19
@@ -339,8 +339,15 @@ public final class ModelUtils {
conf = mdl.getFactory().createConfiguration();
plugin.setConfiguration(conf);
}
- conf.setSimpleParameter(Constants.SOURCE_PARAM, sourceLevel);
- conf.setSimpleParameter(Constants.TARGET_PARAM, sourceLevel);
+ if (conf.getSimpleParameter(Constants.RELEASE_PARAM) != null) {
+ conf.setSimpleParameter(Constants.RELEASE_PARAM, sourceLevel);
+ conf.setSimpleParameter(Constants.SOURCE_PARAM, null);
+ conf.setSimpleParameter(Constants.TARGET_PARAM, null);
+ } else {
+ conf.setSimpleParameter(Constants.SOURCE_PARAM, sourceLevel);
+ conf.setSimpleParameter(Constants.TARGET_PARAM, sourceLevel);
+ }
+
}
/**
diff --git
a/java/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java
b/java/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java
index 52b6e0965c..2b6203e9b3 100644
--- a/java/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java
+++ b/java/maven/src/org/netbeans/modules/maven/customizer/SourcesPanel.java
@@ -76,8 +76,10 @@ public class SourcesPanel extends JPanel implements
HelpCtx.Provider {
@Override
public void performOperation(POMModel model) {
String s =
PluginPropertyUtils.getPluginProperty(handle.getProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER, "source", null,
null);
- String t =
PluginPropertyUtils.getPluginProperty(handle.getProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER, "source", null,
null);
- if (s == null && t == null) {
+ String t =
PluginPropertyUtils.getPluginProperty(handle.getProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER, "target", null,
null);
+ String r =
PluginPropertyUtils.getPluginProperty(handle.getProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER, "release", null,
null);
+ if (s == null && t == null && r == null) {
+ // set in project properties
Project p = model.getProject();
if (p != null) {
Properties prop = p.getProperties();
@@ -85,11 +87,25 @@ public class SourcesPanel extends JPanel implements
HelpCtx.Provider {
prop = model.getFactory().createProperties();
p.setProperties(prop);
}
- prop.setProperty("maven.compiler.source", sourceLevel);
- prop.setProperty("maven.compiler.target", sourceLevel);
+ if (prop.getProperty("maven.compiler.release") != null) {
+ prop.setProperty("maven.compiler.release",
sourceLevel);
+ prop.setProperty("maven.compiler.source", null);
+ prop.setProperty("maven.compiler.target", null);
+ } else {
+ prop.setProperty("maven.compiler.source", sourceLevel);
+ prop.setProperty("maven.compiler.target", sourceLevel);
+ }
}
} else {
+ // set in plugin config
ModelUtils.setSourceLevel(model, sourceLevel);
+ // clear props, just in case
+ if (model.getProject() != null &&
model.getProject().getProperties() != null) {
+ Properties prop = model.getProject().getProperties();
+ prop.setProperty("maven.compiler.source", null);
+ prop.setProperty("maven.compiler.target", null);
+ prop.setProperty("maven.compiler.release", null);
+ }
}
}
};
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists