diff --git a/0001-Fix-manifests-for-guava-and-use-OSGi-fied-archetypes.patch b/0001-Fix-manifests-for-guava-and-use-OSGi-fied-archetypes.patch index 95cc8dc..4595066 100644 --- a/0001-Fix-manifests-for-guava-and-use-OSGi-fied-archetypes.patch +++ b/0001-Fix-manifests-for-guava-and-use-OSGi-fied-archetypes.patch @@ -1,4 +1,4 @@ -From bfcc8e7f185c01f85d9775047e21ae6399b269ab Mon Sep 17 00:00:00 2001 +From c9f454328addfa5984886d775d473b8ee7c223bb Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Tue, 18 Jun 2019 15:35:48 +0100 Subject: [PATCH 1/5] Fix manifests for guava and use OSGi-fied archetypes diff --git a/0002-Port-to-latest-versions-of-maven-indexer-and-lucene.patch b/0002-Port-to-latest-versions-of-maven-indexer-and-lucene.patch index 1e4f5b7..e85497c 100644 --- a/0002-Port-to-latest-versions-of-maven-indexer-and-lucene.patch +++ b/0002-Port-to-latest-versions-of-maven-indexer-and-lucene.patch @@ -1,4 +1,4 @@ -From 1ac69bca7c6007f3dd694885fa122beab0004676 Mon Sep 17 00:00:00 2001 +From 16e74caf9cdfdfacd2e4995840117d4a8d0a4f1a Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Tue, 18 Jun 2019 15:45:18 +0100 Subject: [PATCH 2/5] Port to latest versions of maven-indexer and lucene diff --git a/0003-Adapt-to-API-change-in-aether.patch b/0003-Adapt-to-API-change-in-aether.patch index 34cde67..a949b2b 100644 --- a/0003-Adapt-to-API-change-in-aether.patch +++ b/0003-Adapt-to-API-change-in-aether.patch @@ -1,4 +1,4 @@ -From d55099c4a86c682f907ff3948f5c99b98bfc5d11 Mon Sep 17 00:00:00 2001 +From 5e701f8f6c7bed4c93844d1f9567c8e6cb3afde7 Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Fri, 21 Jun 2019 11:24:15 +0100 Subject: [PATCH 3/5] Adapt to API change in aether diff --git a/0004-Remove-mandatory-attirbutes-from-OSGi-manifests-whic.patch b/0004-Remove-mandatory-attirbutes-from-OSGi-manifests-whic.patch index 5b33fb4..0d17f5c 100644 --- a/0004-Remove-mandatory-attirbutes-from-OSGi-manifests-whic.patch +++ b/0004-Remove-mandatory-attirbutes-from-OSGi-manifests-whic.patch @@ -1,4 +1,4 @@ -From dd1ffee21280be51c9db64a3bbe831685879ef84 Mon Sep 17 00:00:00 2001 +From 760bfaf57e224337eb5f40b2e5f918ca904b6b0f Mon Sep 17 00:00:00 2001 From: Mat Booth Date: Fri, 21 Jun 2019 11:27:12 +0100 Subject: [PATCH 4/5] Remove mandatory attirbutes from OSGi manifests, which diff --git a/0005-Port-to-latest-version-of-maven-archetypes.patch b/0005-Port-to-latest-version-of-maven-archetypes.patch index f128d90..3071663 100644 --- a/0005-Port-to-latest-version-of-maven-archetypes.patch +++ b/0005-Port-to-latest-version-of-maven-archetypes.patch @@ -1,19 +1,19 @@ -From eccef76a991528e8fde44e3767defd4ec4c1f5b0 Mon Sep 17 00:00:00 2001 +From 9cb89a01a938b9468c244651d675563655fc57ef Mon Sep 17 00:00:00 2001 From: Mat Booth -Date: Wed, 3 Jul 2019 15:29:05 +0100 +Date: Wed, 25 Mar 2020 11:26:45 +0000 Subject: [PATCH 5/5] Port to latest version of maven-archetypes -Change-Id: I208abd50bdbe420d5413ad12bbe5150c428c9453 --- .../org.eclipse.m2e.archetype.common/pom.xml | 9 +- - .../MavenArchetypesPreferencePage.java | 93 +--------- - .../MavenProjectWizardArchetypePage.java | 8 +- + .../MavenArchetypesPreferencePage.java | 93 +-------- + .../MavenProjectWizardArchetypePage.java | 4 +- .../m2e/core/internal/ExtensionReader.java | 27 +-- .../eclipse/m2e/core/internal/Messages.java | 2 - - .../archetype/ArchetypeCatalogFactory.java | 164 ++---------------- - .../archetype/ArchetypeCatalogsWriter.java | 49 +----- - .../internal/archetype/ArchetypeManager.java | 5 +- - 8 files changed, 34 insertions(+), 323 deletions(-) + .../archetype/ArchetypeCatalogFactory.java | 192 +++--------------- + .../archetype/ArchetypeCatalogsWriter.java | 49 +---- + .../internal/archetype/ArchetypeManager.java | 4 +- + .../index/nexus/NexusIndexManager.java | 2 +- + 9 files changed, 43 insertions(+), 339 deletions(-) diff --git a/m2e-maven-runtime/org.eclipse.m2e.archetype.common/pom.xml b/m2e-maven-runtime/org.eclipse.m2e.archetype.common/pom.xml index 9279dce..ca19922 100644 @@ -172,33 +172,24 @@ index 0c95b17..486e3c9 100644 return factory.isEditable() ? text : NLS.bind(Messages.MavenArchetypesPreferencePage_SystemLabel, text); } diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java -index 90547dd..bb833c4 100644 +index 90547dd..a3d9aa6 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenProjectWizardArchetypePage.java -@@ -82,11 +82,13 @@ import org.apache.maven.artifact.Artifact; +@@ -82,6 +82,7 @@ import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.artifact.versioning.ArtifactVersion; import org.apache.maven.artifact.versioning.DefaultArtifactVersion; -+import org.apache.maven.project.ProjectBuildingRequest; ++import org.apache.maven.project.DefaultProjectBuildingRequest; import org.eclipse.m2e.core.MavenPlugin; import org.eclipse.m2e.core.archetype.ArchetypeUtil; - import org.eclipse.m2e.core.embedder.ArtifactKey; - import org.eclipse.m2e.core.embedder.IMaven; -+import org.eclipse.m2e.core.embedder.IMavenExecutionContext; - import org.eclipse.m2e.core.internal.MavenPluginActivator; - import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory; - import org.eclipse.m2e.core.internal.archetype.ArchetypeManager; -@@ -848,7 +850,11 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp +@@ -848,7 +849,8 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp archetype.setRepository(repositoryUrl); org.apache.maven.archetype.ArchetypeManager archetyper = MavenPluginActivator.getDefault() .getArchetypeManager().getArchetyper(); - archetyper.updateLocalCatalog(archetype); + -+ IMavenExecutionContext context = maven.createExecutionContext(); -+ ProjectBuildingRequest buildingReq = context.newProjectBuildingRequest(); -+ -+ archetyper.updateLocalCatalog(buildingReq, archetype); ++ archetyper.updateLocalCatalog(new DefaultProjectBuildingRequest(), archetype); archetypesCache.clear(); @@ -264,12 +255,31 @@ index 0f486cd..069e210 100644 public static String ArchetypeCatalogsWriter_error_parse; diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java -index 8c82854..3da1f1a 100644 +index 8c82854..6772ad0 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogFactory.java -@@ -31,10 +31,13 @@ import org.eclipse.osgi.util.NLS; +@@ -13,28 +13,24 @@ + + package org.eclipse.m2e.core.internal.archetype; + +-import java.io.BufferedInputStream; +-import java.io.InputStream; +-import java.net.URL; +-import java.util.ArrayList; +-import java.util.List; +-import java.util.Properties; +- + import org.slf4j.Logger; + import org.slf4j.LoggerFactory; + + import org.eclipse.core.runtime.CoreException; + import org.eclipse.core.runtime.IStatus; ++import org.eclipse.core.runtime.NullProgressMonitor; + import org.eclipse.core.runtime.Status; + import org.eclipse.osgi.util.NLS; + import org.apache.maven.archetype.ArchetypeManager; - import org.apache.maven.archetype.catalog.Archetype; +-import org.apache.maven.archetype.catalog.Archetype; import org.apache.maven.archetype.catalog.ArchetypeCatalog; -import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Reader; import org.apache.maven.archetype.source.ArchetypeDataSource; @@ -282,21 +292,36 @@ index 8c82854..3da1f1a 100644 import org.eclipse.m2e.core.internal.IMavenConstants; import org.eclipse.m2e.core.internal.MavenPluginActivator; import org.eclipse.m2e.core.internal.Messages; -@@ -107,8 +110,12 @@ public abstract class ArchetypeCatalogFactory { +@@ -106,14 +102,20 @@ public abstract class ArchetypeCatalogFactory { + } public ArchetypeCatalog getArchetypeCatalog() throws CoreException { - try { -+ final IMaven maven = MavenPlugin.getMaven(); -+ IMavenExecutionContext context = maven.createExecutionContext(); -+ ProjectBuildingRequest buildingReq = context.newProjectBuildingRequest(); -+ - ArchetypeDataSource source = MavenPluginActivator.getDefault().getIndexManager().getArchetypeCatalog(); +- try { +- ArchetypeDataSource source = MavenPluginActivator.getDefault().getIndexManager().getArchetypeCatalog(); - return source.getArchetypeCatalog(new Properties()); -+ return source.getArchetypeCatalog(buildingReq); - } catch(ArchetypeDataSourceException ex) { - String msg = NLS.bind(Messages.ArchetypeCatalogFactory_error_missing_catalog, ex.getMessage()); - log.error(msg, ex); -@@ -143,156 +150,11 @@ public abstract class ArchetypeCatalogFactory { +- } catch(ArchetypeDataSourceException ex) { +- String msg = NLS.bind(Messages.ArchetypeCatalogFactory_error_missing_catalog, ex.getMessage()); +- log.error(msg, ex); +- throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1, msg, ex)); +- } ++ final IMaven maven = MavenPlugin.getMaven(); ++ IMavenExecutionContext ctx = maven.createExecutionContext(); ++ ArchetypeCatalog cat = ctx.execute((context, pm) -> { ++ try { ++ ArchetypeDataSource source = MavenPluginActivator.getDefault().getIndexManager().getArchetypeCatalog(); ++ ProjectBuildingRequest projectBuildingRequest = context.newProjectBuildingRequest(); ++ return source.getArchetypeCatalog(projectBuildingRequest); ++ } catch(ArchetypeDataSourceException ex) { ++ String msg = NLS.bind(Messages.ArchetypeCatalogFactory_error_missing_catalog, ex.getMessage()); ++ log.error(msg, ex); ++ throw new CoreException(new Status(IStatus.ERROR, IMavenConstants.PLUGIN_ID, -1, msg, ex)); ++ } ++ }, new NullProgressMonitor()); ++ return cat; + } + + } +@@ -143,156 +145,14 @@ public abstract class ArchetypeCatalogFactory { super(ID, Messages.ArchetypeCatalogFactory_default_local, false); } @@ -451,9 +476,12 @@ index 8c82854..3da1f1a 100644 - public String getRepositoryUrl() { - return repositoryUrl; + final IMaven maven = MavenPlugin.getMaven(); -+ IMavenExecutionContext context = maven.createExecutionContext(); -+ ProjectBuildingRequest buildingReq = context.newProjectBuildingRequest(); -+ return getArchetyper().getLocalCatalog(buildingReq); ++ IMavenExecutionContext ctx = maven.createExecutionContext(); ++ ArchetypeCatalog cat = ctx.execute((context, pm) -> { ++ ProjectBuildingRequest projectBuildingRequest = context.newProjectBuildingRequest(); ++ return getArchetyper().getLocalCatalog(projectBuildingRequest); ++ }, new NullProgressMonitor()); ++ return cat; } } @@ -543,16 +571,15 @@ index 2adb946..31ef580 100644 } } diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeManager.java -index d14614f..c98dead 100644 +index d14614f..25ce804 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeManager.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeManager.java -@@ -180,11 +180,12 @@ public class ArchetypeManager { +@@ -180,11 +180,11 @@ public class ArchetypeManager { try { return maven.execute((context, monitor1) -> { ArtifactRepository localRepository = context.getLocalRepository(); - if(aaMgr.isFileSetArchetype(groupId, artifactId, version, null, localRepository, repositories)) { -+ if(aaMgr.isFileSetArchetype(groupId, artifactId, version, null, localRepository, repositories, -+ context.newProjectBuildingRequest())) { ++ if(aaMgr.isFileSetArchetype(groupId, artifactId, version, null, localRepository, repositories, context.newProjectBuildingRequest())) { ArchetypeDescriptor descriptor; try { descriptor = aaMgr.getFileSetArchetypeDescriptor(groupId, artifactId, version, null, localRepository, @@ -561,6 +588,19 @@ index d14614f..c98dead 100644 } catch(UnknownArchetype ex) { throw new WrappedUnknownArchetype(ex); } +diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java +index e7e0688..61e3762 100644 +--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java ++++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/index/nexus/NexusIndexManager.java +@@ -1313,7 +1313,7 @@ public class NexusIndexManager implements IndexManager, IMavenProjectChangedList + */ + public ArchetypeDataSource getArchetypeCatalog() { + try { +- return container.lookup(ArchetypeDataSource.class, "nexus"); ++ return container.lookup(ArchetypeDataSource.class, "remote-catalog"); + } catch(ComponentLookupException ex) { + throw new NoSuchComponentException(ex); + } -- 2.26.0.rc2 diff --git a/eclipse-m2e-core.spec b/eclipse-m2e-core.spec index 8827aba..3cf1468 100644 --- a/eclipse-m2e-core.spec +++ b/eclipse-m2e-core.spec @@ -2,7 +2,7 @@ Name: eclipse-m2e-core Version: 1.15.0 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Maven integration for Eclipse # Most of components are under EPL, but some of them are licensed under @@ -302,6 +302,10 @@ done # Not needed for RPM builds %pom_remove_plugin ":jacoco-maven-plugin" +%pom_remove_dep :tycho-buildtimestamp-jgit +%pom_remove_dep :tycho-sourceref-jgit +%pom_xpath_remove 'pom:configuration/pom:timestampProvider' +%pom_xpath_remove 'pom:configuration/pom:sourceReferences' # Specify a guava version sed -i -e '/com.google.guava/a20.0' \ @@ -358,6 +362,9 @@ xmvn-subst -s $(find %{buildroot}%{_datadir}/eclipse/droplets/m2e-core -name jar %license LICENSE-2.0.txt %changelog +* Wed Mar 25 2020 Mat Booth - 1.15.0-2 +- Improve archetype patch + * Sun Mar 22 2020 Mat Booth - 1.15.0-1 - Update to latest upstream release