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 ca0d834131 don't block in NBM wizard + skip snapshots + more.
new eb50d2bc2b Merge pull request #5753 from mbien/unblock-wizard
ca0d834131 is described below
commit ca0d8341312ed615de737585ee8aab61e33c828d
Author: Michael Bien <[email protected]>
AuthorDate: Fri Mar 31 14:30:16 2023 +0200
don't block in NBM wizard + skip snapshots + more.
the new NBM project wizard could potentially block after finish is
pressed, waiting for the indexer to provide complete results for
the archetype version query.
This is unnecessary since archetypes rarely change and the default
is usually the correct version even if the index isn't ready yet,
so we are ok with partial results.
Further, it didn't filter out snapshot releases, which could be
potentially in the local repository too.
It could even downgrade the archetype version by accident under some
circumstances when indexing got previously canceled.
+ fixed some deprecations and NPEs in maven hints
+ bumped archetype and plugin version defaults to latest
---
.../maven/apisupport/MavenNbModuleImpl.java | 2 +-
.../modules/maven/apisupport/NBMNativeMWI.java | 12 +++---
.../maven/apisupport/NbmWizardIterator.java | 50 ++++++++--------------
.../modules/maven/apisupport/NBMNativeMWITest.java | 10 ++---
.../hints/pom/CompilerPluginVersionError.java | 2 +-
.../maven/hints/pom/UseReleaseOptionHint.java | 2 +-
6 files changed, 32 insertions(+), 46 deletions(-)
diff --git
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/MavenNbModuleImpl.java
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/MavenNbModuleImpl.java
index e1a08b5917..00aec5031f 100644
---
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/MavenNbModuleImpl.java
+++
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/MavenNbModuleImpl.java
@@ -103,7 +103,7 @@ public class MavenNbModuleImpl implements NbModuleProvider {
public static final String GROUPID_MOJO = "org.codehaus.mojo";
public static final String GROUPID_APACHE =
"org.apache.netbeans.utilities";
public static final String NBM_PLUGIN = "nbm-maven-plugin";
- static final String LATEST_NBM_PLUGIN_VERSION = "4.7";
+ static final String LATEST_NBM_PLUGIN_VERSION = "4.8";
public static final String NETBEANSAPI_GROUPID = "org.netbeans.api";
diff --git
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NBMNativeMWI.java
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NBMNativeMWI.java
index b1f38ce9ae..b736d1e66f 100644
---
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NBMNativeMWI.java
+++
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NBMNativeMWI.java
@@ -28,13 +28,13 @@ import java.util.Collections;
import java.util.List;
import java.util.Properties;
import javax.xml.namespace.QName;
-import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.versioning.ComparableVersion;
import org.apache.maven.model.Dependency;
import org.apache.maven.model.PluginManagement;
import org.apache.maven.project.MavenProject;
import org.codehaus.plexus.util.IOUtil;
import org.codehaus.plexus.util.xml.Xpp3Dom;
+import org.eclipse.aether.repository.RemoteRepository;
import org.netbeans.modules.apisupport.project.api.EditableManifest;
import org.netbeans.modules.maven.api.Constants;
import org.netbeans.modules.maven.api.archetype.ProjectInfo;
@@ -164,17 +164,17 @@ final class NBMNativeMWI {
boolean isSnapshot =
NbmWizardIterator.SNAPSHOT_VERSION.equals(netbeansDependencyVersion);
String snapshotRepoUrl =
"https://repository.apache.org/content/repositories/snapshots/";
if (parent != null) {
- List<ArtifactRepository> repos =
parent.getRemoteArtifactRepositories();
+ List<RemoteRepository> repos =
parent.getRemoteProjectRepositories();
if (repos != null) {
OUTER :
- for (ArtifactRepository repo : repos) {
+ for (RemoteRepository repo : repos) {
if (snapshotRepoUrl.equals(repo.getUrl()) ||
(snapshotRepoUrl + "/").equals(repo.getUrl()))
{
addRepository = false;
break;
}
if (repo.getMirroredRepositories() != null) {
- for (ArtifactRepository mirr :
repo.getMirroredRepositories()) {
+ for (RemoteRepository mirr :
repo.getMirroredRepositories()) {
if (snapshotRepoUrl.equals(mirr.getUrl())
|| (snapshotRepoUrl + "/").equals(mirr.getUrl()))
{
addRepository = false;
@@ -290,7 +290,7 @@ final class NBMNativeMWI {
managedPVersion = null;
String source = null;
String target = null;
- pVersion = "3.8.1";
+ pVersion = "3.11.0";
if (parent != null) {
//TODO do we want to support the case when the plugin is
defined in parent pom with inherited=true?
PluginManagement pm = parent.getPluginManagement();
@@ -333,7 +333,7 @@ final class NBMNativeMWI {
addPlugin = true;
managedPVersion = null;
String useManifest = null;
- pVersion = "3.1.2";
+ pVersion = "3.3.0";
if (parent != null) {
//TODO do we want to support the case when the plugin is
defined in parent pom with inherited=true?
PluginManagement pm = parent.getPluginManagement();
diff --git
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java
index b635c0a6d2..2c1f1723bc 100644
---
a/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java
+++
b/apisupport/maven.apisupport/src/org/netbeans/modules/maven/apisupport/NbmWizardIterator.java
@@ -30,6 +30,7 @@ import java.util.NoSuchElementException;
import java.util.Set;
import javax.swing.JComponent;
import javax.swing.event.ChangeListener;
+import org.apache.maven.artifact.versioning.ComparableVersion;
import org.apache.maven.project.MavenProject;
import org.netbeans.api.project.Project;
import org.netbeans.api.project.ProjectManager;
@@ -66,12 +67,12 @@ public class NbmWizardIterator implements
WizardDescriptor.BackgroundInstantiati
static {
NB_MODULE_ARCH = new Archetype();
NB_MODULE_ARCH.setGroupId("org.apache.netbeans.archetypes"); //NOI18N
- NB_MODULE_ARCH.setVersion("1.17"); //NOI18N
+ NB_MODULE_ARCH.setVersion("1.18"); //NOI18N
NB_MODULE_ARCH.setArtifactId("nbm-archetype"); //NOI18N
NB_APP_ARCH = new Archetype();
NB_APP_ARCH.setGroupId("org.apache.netbeans.archetypes"); //NOI18N
- NB_APP_ARCH.setVersion("1.22"); //NOI18N
+ NB_APP_ARCH.setVersion("1.23"); //NOI18N
NB_APP_ARCH.setArtifactId("netbeans-platform-app-archetype"); //NOI18N
}
@@ -118,17 +119,20 @@ public class NbmWizardIterator implements
WizardDescriptor.BackgroundInstantiati
};
}
- private static void getLatestArchetypeVersion(Archetype archetype) {
+ // non blocking
+ private static void updateToLatestKnownArchetypeVersion(Archetype
archetype) {
RepositoryQueries.Result<NBVersionInfo> versionsResult =
RepositoryQueries.getVersionsResult(archetype.getGroupId(),
archetype.getArtifactId(), null);
- if (versionsResult.isPartial()) {
- versionsResult.waitForSkipped();
- }
-
// Versions are sorted in descending order
List<NBVersionInfo> results = versionsResult.getResults();
- if (!results.isEmpty()) {
- archetype.setVersion(results.get(0).getVersion());
+ for (NBVersionInfo result : results) {
+ String betterVersion = result.getVersion();
+ if (!betterVersion.contains("SNAPSHOT")) { // skip snapshots
+ if (new ComparableVersion(betterVersion).compareTo(new
ComparableVersion(archetype.getVersion())) > 0) {
+ archetype.setVersion(betterVersion);
+ }
+ return;
+ }
}
}
@@ -145,11 +149,11 @@ public class NbmWizardIterator implements
WizardDescriptor.BackgroundInstantiati
Map<String,String> additional =
Collections.singletonMap("netbeansVersion", version); // NOI18N
if (archetype == NB_MODULE_ARCH) {
- getLatestArchetypeVersion(NB_MODULE_ARCH);
+ updateToLatestKnownArchetypeVersion(NB_MODULE_ARCH);
NBMNativeMWI.instantiate(vi, projFile, version,
Boolean.TRUE.equals(wiz.getProperty(OSGIDEPENDENCIES)), null);
} else {
- getLatestArchetypeVersion(NB_APP_ARCH);
+ updateToLatestKnownArchetypeVersion(NB_APP_ARCH);
ArchetypeWizards.createFromArchetype(projFile, vi, archetype,
additional, true);
List<ModelOperation<POMModel>> opers = new ArrayList<>();
if (Boolean.TRUE.equals(wiz.getProperty(OSGIDEPENDENCIES))) {
@@ -199,25 +203,12 @@ public class NbmWizardIterator implements
WizardDescriptor.BackgroundInstantiati
NBMNativeMWI.instantiate(nbm, nbm_folder, version,
Boolean.TRUE.equals(wiz.getProperty(OSGIDEPENDENCIES)), mp);
if (archetype == NB_APP_ARCH) {
File appDir = new File(projFile, "application");
//NOI18N
- addModuleToApplication(appDir, new
ProjectInfo("${project.groupId}", nbm.artifactId, "${project.version}",
nbm.packageName), null); // NOI18N
+ addModuleToApplication(appDir, new
ProjectInfo("${project.groupId}", nbm.artifactId, "${project.version}",
nbm.packageName)); // NOI18N
}
}
}
- //TODO what is this supposed to do?
- Set<FileObject> projects = ArchetypeWizards.openProjects(projFile,
new File(projFile, "application"));
- for (FileObject project : projects) {
- Project prj = ProjectManager.getDefault().findProject(project);
- if (prj == null) {
- continue;
- }
- NbMavenProject mprj =
prj.getLookup().lookup(NbMavenProject.class);
- if (mprj == null) {
- continue;
- }
- }
-
- return projects;
+ return ArchetypeWizards.openProjects(projFile, new File(projFile,
"application"));
}
@Override
@@ -320,17 +311,12 @@ public class NbmWizardIterator implements
WizardDescriptor.BackgroundInstantiati
Repository repo = model.getFactory().createRepository();
repo.setId(APACHE_SNAPSHOT_REPO_ID); // NOI18N
repo.setName("Apache Development Snapshot Repository"); // NOI18N
- /* Is the following necessary?
- RepositoryPolicy policy =
model.getFactory().createSnapshotRepositoryPolicy();
- policy.setEnabled(true);
- repo.setSnapshots(policy);
- */
repo.setUrl("https://repository.apache.org/content/repositories/snapshots/");
// NOI18N
model.getProject().addRepository(repo);
};
}
- private static void addModuleToApplication(File file, ProjectInfo nbm,
Object object) {
+ private static void addModuleToApplication(File file, ProjectInfo nbm) {
FileObject appPrjFO =
FileUtil.toFileObject(FileUtil.normalizeFile(file));
if (appPrjFO == null) {
return;
diff --git
a/apisupport/maven.apisupport/test/unit/src/org/netbeans/modules/maven/apisupport/NBMNativeMWITest.java
b/apisupport/maven.apisupport/test/unit/src/org/netbeans/modules/maven/apisupport/NBMNativeMWITest.java
index 316348d2a9..5467f55459 100644
---
a/apisupport/maven.apisupport/test/unit/src/org/netbeans/modules/maven/apisupport/NBMNativeMWITest.java
+++
b/apisupport/maven.apisupport/test/unit/src/org/netbeans/modules/maven/apisupport/NBMNativeMWITest.java
@@ -61,7 +61,7 @@ public class NBMNativeMWITest extends NbTestCase {
assertEquals("nbm-maven-plugin",
model.getBuild().getPlugins().get(0).getArtifactId());
assertEquals(MavenNbModuleImpl.getLatestNbmPluginVersion(),
model.getBuild().getPlugins().get(0).getVersion());
assertEquals("maven-compiler-plugin",
model.getBuild().getPlugins().get(1).getArtifactId());
- assertEquals("3.8.1",
model.getBuild().getPlugins().get(1).getVersion());
+ assertEquals("3.11.0",
model.getBuild().getPlugins().get(1).getVersion());
assertEquals(0, model.getRepositories().size());
}
@@ -79,7 +79,7 @@ public class NBMNativeMWITest extends NbTestCase {
assertEquals("nbm-maven-plugin",
model.getBuild().getPlugins().get(0).getArtifactId());
assertEquals(MavenNbModuleImpl.getLatestNbmPluginVersion(),
model.getBuild().getPlugins().get(0).getVersion());
assertEquals("maven-compiler-plugin",
model.getBuild().getPlugins().get(1).getArtifactId());
- assertEquals("3.8.1",
model.getBuild().getPlugins().get(1).getVersion());
+ assertEquals("3.11.0",
model.getBuild().getPlugins().get(1).getVersion());
assertEquals(1, model.getRepositories().size());
}
@@ -106,7 +106,7 @@ public class NBMNativeMWITest extends NbTestCase {
assertEquals("nbm-maven-plugin",
model.getBuild().getPlugins().get(0).getArtifactId());
assertEquals(MavenNbModuleImpl.getLatestNbmPluginVersion(),
model.getBuild().getPlugins().get(0).getVersion());
assertEquals("maven-compiler-plugin",
model.getBuild().getPlugins().get(1).getArtifactId());
- assertEquals("3.8.1",
model.getBuild().getPlugins().get(1).getVersion());
+ assertEquals("3.11.0",
model.getBuild().getPlugins().get(1).getVersion());
assertEquals(0, model.getRepositories().size());
}
@@ -132,7 +132,7 @@ public class NBMNativeMWITest extends NbTestCase {
assertEquals("nbm-maven-plugin",
model.getBuild().getPlugins().get(0).getArtifactId());
assertEquals(MavenNbModuleImpl.getLatestNbmPluginVersion(),
model.getBuild().getPlugins().get(0).getVersion());
assertEquals("maven-compiler-plugin",
model.getBuild().getPlugins().get(1).getArtifactId());
- assertEquals("3.8.1",
model.getBuild().getPlugins().get(1).getVersion());
+ assertEquals("3.11.0",
model.getBuild().getPlugins().get(1).getVersion());
assertEquals(1, model.getRepositories().size());
}
@@ -187,7 +187,7 @@ public class NBMNativeMWITest extends NbTestCase {
assertEquals("nbm-maven-plugin",
modeloutput.getBuild().getPlugins().get(0).getArtifactId());
assertEquals(MavenNbModuleImpl.getLatestNbmPluginVersion(),
modeloutput.getBuild().getPlugins().get(0).getVersion());
assertEquals("maven-compiler-plugin",
modeloutput.getBuild().getPlugins().get(1).getArtifactId());
- assertEquals("3.8.1",
modeloutput.getBuild().getPlugins().get(1).getVersion());
+ assertEquals("3.11.0",
modeloutput.getBuild().getPlugins().get(1).getVersion());
assertEquals(0, model.getRepositories().size());
}
diff --git
a/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/CompilerPluginVersionError.java
b/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/CompilerPluginVersionError.java
index e48591e9a9..4226c1844f 100644
---
a/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/CompilerPluginVersionError.java
+++
b/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/CompilerPluginVersionError.java
@@ -85,7 +85,7 @@ public class CompilerPluginVersionError implements
POMErrorFixProvider {
// note: this is the embedded plugin version
// however, if this version here is compatible too we can exit,
since we know it is not a downgrade and maven itself is compatible
String version =
PluginPropertyUtils.getPluginVersion(nbproject.getMavenProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER);
- if (new
ComparableVersion(version).compareTo(COMPILER_PLUGIN_VERSION) >= 0) {
+ if (version != null && new
ComparableVersion(version).compareTo(COMPILER_PLUGIN_VERSION) >= 0) {
return Collections.emptyList();
}
}
diff --git
a/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/UseReleaseOptionHint.java
b/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/UseReleaseOptionHint.java
index 41464f8919..5835cd4ad6 100644
---
a/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/UseReleaseOptionHint.java
+++
b/java/maven.hints/src/org/netbeans/modules/maven/hints/pom/UseReleaseOptionHint.java
@@ -86,7 +86,7 @@ public class UseReleaseOptionHint implements
POMErrorFixProvider {
if (nbproject != null) {
// note: this is the embedded plugin version, only useful for
downgrade checks
String pluginVersion =
PluginPropertyUtils.getPluginVersion(nbproject.getMavenProject(),
Constants.GROUP_APACHE_PLUGINS, Constants.PLUGIN_COMPILER);
- if (new
ComparableVersion(pluginVersion).compareTo(COMPILER_PLUGIN_VERSION) <= 0) {
+ if (pluginVersion != null && new
ComparableVersion(pluginVersion).compareTo(COMPILER_PLUGIN_VERSION) <= 0) {
return Collections.emptyList();
}
}
---------------------------------------------------------------------
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