From 69b028840c120ea2516eeed37e6e5f9f251704cb Mon Sep 17 00:00:00 2001
From: Mat Booth <mat.booth@redhat.com>
Date: Wed, 25 Mar 2020 11:26:45 +0000
Subject: [PATCH 5/6] Port to latest version of maven-archetypes
---
.../org.eclipse.m2e.archetype.common/pom.xml | 9 +-
.../MavenArchetypesPreferencePage.java | 93 +--------
.../MavenProjectWizardArchetypePage.java | 14 +-
.../m2e/core/internal/ExtensionReader.java | 27 +--
.../eclipse/m2e/core/internal/Messages.java | 2 -
.../archetype/ArchetypeCatalogFactory.java | 192 +++---------------
.../archetype/ArchetypeCatalogsWriter.java | 49 +----
.../internal/archetype/ArchetypeManager.java | 4 +-
.../index/nexus/NexusIndexManager.java | 2 +-
9 files changed, 51 insertions(+), 341 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 96ec268..6bb1bd0 100644
--- a/m2e-maven-runtime/org.eclipse.m2e.archetype.common/pom.xml
+++ b/m2e-maven-runtime/org.eclipse.m2e.archetype.common/pom.xml
@@ -24,7 +24,7 @@
<name>Maven Archetype Common Bundle</name>
<properties>
- <archetype-common.version>2.4</archetype-common.version>
+ <archetype-common.version>3.2.0</archetype-common.version>
</properties>
<dependencies>
@@ -34,11 +34,6 @@
<version>${archetype-common.version}</version>
<optional>true</optional>
<exclusions>
- <exclusion>
- <!-- there is newer velocity with different groupId that we want -->
- <artifactId>velocity</artifactId>
- <groupId>velocity</groupId>
- </exclusion>
<exclusion>
<artifactId>plexus-container-default</artifactId>
<groupId>org.codehaus.plexus</groupId>
@@ -76,12 +71,10 @@
archetype-common,
archetype-catalog,
archetype-descriptor,
- archetype-registry,
maven-invoker,
commons-collections,
commons-io,
commons-lang,
- dom4j;version=2.1.3,
jchardet,
jdom,
oro,
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenArchetypesPreferencePage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenArchetypesPreferencePage.java
index 0c95b17..486e3c9 100644
--- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenArchetypesPreferencePage.java
+++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/preferences/MavenArchetypesPreferencePage.java
@@ -55,8 +55,6 @@ import org.eclipse.ui.browser.IWebBrowser;
import org.eclipse.m2e.core.internal.MavenPluginActivator;
import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory;
-import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory.LocalCatalogFactory;
-import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory.RemoteCatalogFactory;
import org.eclipse.m2e.core.internal.archetype.ArchetypeManager;
import org.eclipse.m2e.core.internal.preferences.MavenPreferenceConstants;
import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator;
@@ -174,84 +172,6 @@ public class MavenArchetypesPreferencePage extends FieldEditorPreferencePage imp
typeColumn.setWidth(250);
typeColumn.setText(""); //$NON-NLS-1$
- Button enableAllBtn = new Button(composite, SWT.NONE);
- enableAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- enableAllBtn.setText(Messages.MavenArchetypesPreferencePage_btnEnableAll);
- enableAllBtn.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> toggleRepositories(true)));
-
- Button disableAllBtn = new Button(composite, SWT.NONE);
- disableAllBtn.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- disableAllBtn.setText(Messages.MavenArchetypesPreferencePage_btnDisableAll);
- disableAllBtn.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> toggleRepositories(false)));
-
- Button addLocalButton = new Button(composite, SWT.NONE);
- addLocalButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- addLocalButton.setText(Messages.MavenArchetypesPreferencePage_btnAddLocal);
- addLocalButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- LocalArchetypeCatalogDialog dialog = new LocalArchetypeCatalogDialog(getShell(), null);
- if(dialog.open() == Window.OK) {
- addCatalogFactory(dialog.getArchetypeCatalogFactory());
- }
- }));
-
- Button addRemoteButton = new Button(composite, SWT.NONE);
- addRemoteButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- addRemoteButton.setText(Messages.MavenArchetypesPreferencePage_btnAddRemote);
- addRemoteButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- RemoteArchetypeCatalogDialog dialog = new RemoteArchetypeCatalogDialog(getShell(), null);
- if(dialog.open() == Window.OK) {
- addCatalogFactory(dialog.getArchetypeCatalogFactory());
- }
- }));
-
- final Button editButton = new Button(composite, SWT.NONE);
- editButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, false));
- editButton.setEnabled(false);
- editButton.setText(Messages.MavenArchetypesPreferencePage_btnEdit);
- editButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- ArchetypeCatalogFactory factory = getSelectedArchetypeCatalogFactory();
- ArchetypeCatalogFactory newFactory = null;
- if(factory instanceof LocalCatalogFactory) {
- LocalArchetypeCatalogDialog dialog = new LocalArchetypeCatalogDialog(getShell(), factory);
- if(dialog.open() == Window.OK) {
- newFactory = dialog.getArchetypeCatalogFactory();
- }
- } else if(factory instanceof RemoteCatalogFactory) {
- RemoteArchetypeCatalogDialog dialog = new RemoteArchetypeCatalogDialog(getShell(), factory);
- if(dialog.open() == Window.OK) {
- newFactory = dialog.getArchetypeCatalogFactory();
- }
- }
- if(newFactory != null) {
- int n = archetypeCatalogs.indexOf(factory);
- if(n > -1) {
- archetypeCatalogs.set(n, newFactory);
- archetypesViewer.setInput(archetypeCatalogs);
- archetypesViewer.setSelection(new StructuredSelection(newFactory), true);
- }
- }
- }));
-
- final Button removeButton = new Button(composite, SWT.NONE);
- removeButton.setEnabled(false);
- removeButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, false, true));
- removeButton.setText(Messages.MavenArchetypesPreferencePage_btnRemove);
- removeButton.addSelectionListener(SelectionListener.widgetSelectedAdapter(e -> {
- ArchetypeCatalogFactory factory = getSelectedArchetypeCatalogFactory();
- archetypeCatalogs.remove(factory);
- archetypesViewer.setInput(archetypeCatalogs);
- archetypesViewer.setSelection(null, true);
- }));
-
- archetypesViewer.addSelectionChangedListener(event -> {
- if(archetypesViewer.getSelection() instanceof IStructuredSelection) {
- ArchetypeCatalogFactory factory = getSelectedArchetypeCatalogFactory();
- boolean isEnabled = factory != null && factory.isEditable();
- removeButton.setEnabled(isEnabled);
- editButton.setEnabled(isEnabled);
- }
- });
-
archetypesViewer.addCheckStateListener((event) -> {
archetypesViewer.refresh(event.getElement(), true);
});
@@ -294,18 +214,7 @@ public class MavenArchetypesPreferencePage extends FieldEditorPreferencePage imp
public String getColumnText(Object element, int columnIndex) {
ArchetypeCatalogFactory factory = (ArchetypeCatalogFactory) element;
String description = factory.getDescription();
- String text;
- if(factory instanceof LocalCatalogFactory) {
- text = NLS.bind(Messages.MavenArchetypesPreferencePage_local, description);
- } else if(factory instanceof RemoteCatalogFactory) {
- if(factory.isEditable()) {
- text = NLS.bind(Messages.MavenArchetypesPreferencePage_remote, description);
- } else {
- text = NLS.bind(Messages.MavenArchetypesPreferencePage_packaged, description);
- }
- } else {
- text = description;
- }
+ String text = description;
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..acd296f 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;
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.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;
@@ -846,9 +848,15 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp
archetype.setArtifactId(archetypeArtifactId);
archetype.setVersion(archetypeVersion);
archetype.setRepository(repositoryUrl);
- org.apache.maven.archetype.ArchetypeManager archetyper = MavenPluginActivator.getDefault()
- .getArchetypeManager().getArchetyper();
- archetyper.updateLocalCatalog(archetype);
+
+ IMavenExecutionContext ctx = maven.createExecutionContext();
+ Void v = ctx.execute((context, pm) -> {
+ org.apache.maven.archetype.ArchetypeManager archetyper = MavenPluginActivator.getDefault()
+ .getArchetypeManager().getArchetyper();
+ ProjectBuildingRequest projectBuildingRequest = context.newProjectBuildingRequest();
+ archetyper.updateLocalCatalog(projectBuildingRequest, archetype);
+ return null;
+ }, new NullProgressMonitor());
archetypesCache.clear();
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/ExtensionReader.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/ExtensionReader.java
index a7a4fd4..0afbc71 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/ExtensionReader.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/ExtensionReader.java
@@ -13,11 +13,9 @@
package org.eclipse.m2e.core.internal;
-import java.net.URL;
import java.util.ArrayList;
import java.util.List;
-import org.osgi.framework.Bundle;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -84,29 +82,8 @@ public class ExtensionReader {
private static ArchetypeCatalogFactory readArchetypeCatalogs(IConfigurationElement element,
IContributor contributor) {
- if(ELEMENT_LOCAL_ARCHETYPE.equals(element.getName())) {
- String name = element.getAttribute(ATTR_NAME);
- if(name != null) {
- Bundle[] bundles = Platform.getBundles(contributor.getName(), null);
- URL catalogUrl = null;
- for(int i = 0; i < bundles.length; i++ ) {
- Bundle bundle = bundles[i];
- catalogUrl = bundle.getEntry(name);
- if(catalogUrl != null) {
- String description = element.getAttribute(ATTR_DESCRIPTION);
- String url = catalogUrl.toString();
- return new ArchetypeCatalogFactory.LocalCatalogFactory(url, description, false);
- }
- }
- log.error("Unable to find Archetype catalog " + name + " in " + contributor.getName());
- }
- } else if(ELEMENT_REMOTE_ARCHETYPE.equals(element.getName())) {
- String url = element.getAttribute(ATTR_URL);
- if(url != null) {
- String description = element.getAttribute(ATTR_DESCRIPTION);
- return new ArchetypeCatalogFactory.RemoteCatalogFactory(url, description, false);
- }
- }
+ log.error("Local and remote Archetype catalogs specified by URL from " + contributor.getName()
+ + " are no longer supported");
return null;
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/Messages.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/Messages.java
index 0f486cd..069e210 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/Messages.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/Messages.java
@@ -50,8 +50,6 @@ public class Messages extends NLS {
public static String ArchetypeCatalogFactory_internal;
- public static String ArchetypeCatalogFactory_local;
-
public static String ArchetypeCatalogFactory_remote;
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..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
@@ -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.ArchetypeCatalog;
-import org.apache.maven.archetype.catalog.io.xpp3.ArchetypeCatalogXpp3Reader;
import org.apache.maven.archetype.source.ArchetypeDataSource;
import org.apache.maven.archetype.source.ArchetypeDataSourceException;
+import org.apache.maven.project.ProjectBuildingRequest;
+import org.eclipse.m2e.core.MavenPlugin;
+import org.eclipse.m2e.core.embedder.IMaven;
+import org.eclipse.m2e.core.embedder.IMavenExecutionContext;
import org.eclipse.m2e.core.internal.IMavenConstants;
import org.eclipse.m2e.core.internal.MavenPluginActivator;
import org.eclipse.m2e.core.internal.Messages;
@@ -106,14 +102,20 @@ public abstract class ArchetypeCatalogFactory {
}
public ArchetypeCatalog getArchetypeCatalog() throws CoreException {
- try {
- ArchetypeDataSource source = MavenPluginActivator.getDefault().getIndexManager().getArchetypeCatalog();
- return source.getArchetypeCatalog(new Properties());
- } 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);
}
- public ArchetypeCatalog getArchetypeCatalog() {
- return getArchetyper().getDefaultLocalCatalog();
- }
- }
-
- /**
- * Factory for local ArchetypeCatalog
- */
- public static class LocalCatalogFactory extends ArchetypeCatalogFactory {
-
- public LocalCatalogFactory(String path, String description, boolean editable) {
- this(path, description, editable, true);
- }
-
- public LocalCatalogFactory(String path, String description, boolean editable, boolean enabled) {
- super(path, description == null || description.trim().length() == 0
- ? NLS.bind(Messages.ArchetypeCatalogFactory_local, path)
- : description, editable, enabled);
- }
-
public ArchetypeCatalog getArchetypeCatalog() throws CoreException {
- ArchetypeCatalog catalog = getEmbeddedCatalog();
- if(catalog == null) {
- //local but not embedded catalog
- catalog = getArchetyper().getLocalCatalog(getId());
- }
- return catalog;
- }
-
- private ArchetypeCatalog getEmbeddedCatalog() throws CoreException {
- URL url = getEmbeddedUrl();
- if(url == null) {
- //Not an embedded catalog, nothing else to do
- return null;
- }
- try (InputStream is = new BufferedInputStream(url.openStream())) {
- return new ArchetypeCatalogXpp3Reader().read(is);
- } catch(Exception 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));
- }
- }
-
- private URL getEmbeddedUrl() {
- String path = getId();
- if(path != null && path.startsWith("bundleentry://")) {
- try {
- return new URL(path);
- } catch(Exception ex) {
- log.error(ex.getMessage(), ex);
- }
- }
- return null;
- }
- }
-
- /**
- * Factory for remote ArchetypeCatalog
- */
- public static class RemoteCatalogFactory extends ArchetypeCatalogFactory {
-
- private String repositoryUrl = null;
-
- public RemoteCatalogFactory(String url, String description, boolean editable) {
- this(url, description, editable, true);
- }
-
- public RemoteCatalogFactory(String url, String description, boolean editable, boolean enabled) {
- super(url, description == null || description.trim().length() == 0
- ? NLS.bind(Messages.ArchetypeCatalogFactory_remote, url)
- : description, editable, enabled);
- repositoryUrl = parseCatalogUrl(url);
- }
-
- /**
- * @param url
- * @return
- */
- private String parseCatalogUrl(String url) {
- if(url == null) {
- return null;
- }
- int length = url.length();
- if(length > 1 && url.endsWith("/")) //$NON-NLS-1$
- {
- return url.substring(0, url.length() - 1);
- }
- int idx = url.lastIndexOf("/"); //$NON-NLS-1$
- idx = (idx > 0) ? idx : 0;
- if(url.lastIndexOf(".") >= idx) { //$NON-NLS-1$
- //Assume last fragment of the url is a file, let's keep its parent folder
- return url.substring(0, idx);
- }
- return url;
- }
-
- public ArchetypeCatalog getArchetypeCatalog() {
- String url = getId();
- int idx = url.lastIndexOf("/archetype-catalog.xml");
- if(idx > -1) {
- url = url.substring(0, idx);
- }
- final ArchetypeCatalog catalog = getArchetyper().getRemoteCatalog(url);
- final String remoteUrl = url;
- @SuppressWarnings("serial")
- ArchetypeCatalog catalogWrapper = new ArchetypeCatalog() {
- public void addArchetype(Archetype archetype) {
- catalog.addArchetype(archetype);
- }
-
- public List<Archetype> getArchetypes() {
- List<Archetype> archetypes = new ArrayList<>(catalog.getArchetypes());
- for(Archetype arch : archetypes) {
- if(arch.getRepository() == null || arch.getRepository().trim().isEmpty()) {
- arch.setRepository(remoteUrl);
- }
- }
- return archetypes;
- }
-
- public String getModelEncoding() {
- return catalog.getModelEncoding();
- }
-
- public void removeArchetype(Archetype archetype) {
- catalog.removeArchetype(archetype);
- }
-
- public void setModelEncoding(String modelEncoding) {
- catalog.setModelEncoding(modelEncoding);
- }
-
- public void setArchetypes(List<Archetype> archetypes) {
- catalog.setArchetypes(archetypes);
- }
-
- public String toString() {
- return catalog.toString();
- }
- };
-
- return catalogWrapper;
- }
-
- /**
- * @return the url of the remote repository hosting the catalog
- */
- public String getRepositoryUrl() {
- return repositoryUrl;
+ final IMaven maven = MavenPlugin.getMaven();
+ IMavenExecutionContext ctx = maven.createExecutionContext();
+ ArchetypeCatalog cat = ctx.execute((context, pm) -> {
+ ProjectBuildingRequest projectBuildingRequest = context.newProjectBuildingRequest();
+ return getArchetyper().getLocalCatalog(projectBuildingRequest);
+ }, new NullProgressMonitor());
+ return cat;
}
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogsWriter.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogsWriter.java
index 2adb946..31ef580 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogsWriter.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/archetype/ArchetypeCatalogsWriter.java
@@ -45,8 +45,6 @@ import org.xml.sax.helpers.XMLFilterImpl;
import org.eclipse.osgi.util.NLS;
import org.eclipse.m2e.core.internal.Messages;
-import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory.LocalCatalogFactory;
-import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory.RemoteCatalogFactory;
/**
@@ -63,14 +61,8 @@ public class ArchetypeCatalogsWriter {
private static final String ATT_CATALOG_TYPE = "type"; //$NON-NLS-1$
- private static final String ATT_CATALOG_LOCATION = "location"; //$NON-NLS-1$
-
public static final String ATT_CATALOG_DESCRIPTION = "description"; //$NON-NLS-1$
- private static final String TYPE_LOCAL = "local"; //$NON-NLS-1$
-
- private static final String TYPE_REMOTE = "remote"; //$NON-NLS-1$
-
private static final String TYPE_SYSTEM = "system"; //$NON-NLS-1$
public static final String ATT_CATALOG_ID = "id";
@@ -127,20 +119,8 @@ public class ArchetypeCatalogsWriter {
for(ArchetypeCatalogFactory factory : this.catalogs) {
AttributesImpl attrs = new AttributesImpl();
- if(factory.isEditable()) {
- if(factory instanceof LocalCatalogFactory) {
- attrs.addAttribute(null, ATT_CATALOG_TYPE, ATT_CATALOG_TYPE, null, TYPE_LOCAL);
- attrs.addAttribute(null, ATT_CATALOG_LOCATION, ATT_CATALOG_LOCATION, null, factory.getId());
- attrs.addAttribute(null, ATT_CATALOG_DESCRIPTION, ATT_CATALOG_DESCRIPTION, null, factory.getDescription());
- } else if(factory instanceof RemoteCatalogFactory) {
- attrs.addAttribute(null, ATT_CATALOG_TYPE, ATT_CATALOG_TYPE, null, TYPE_REMOTE);
- attrs.addAttribute(null, ATT_CATALOG_LOCATION, ATT_CATALOG_LOCATION, null, factory.getId());
- attrs.addAttribute(null, ATT_CATALOG_DESCRIPTION, ATT_CATALOG_DESCRIPTION, null, factory.getDescription());
- }
- } else {
- attrs.addAttribute(null, ATT_CATALOG_TYPE, ATT_CATALOG_TYPE, null, TYPE_SYSTEM);
- attrs.addAttribute(null, ATT_CATALOG_ID, ATT_CATALOG_ID, null, factory.getId());
- }
+ attrs.addAttribute(null, ATT_CATALOG_TYPE, ATT_CATALOG_TYPE, null, TYPE_SYSTEM);
+ attrs.addAttribute(null, ATT_CATALOG_ID, ATT_CATALOG_ID, null, factory.getId());
attrs.addAttribute(null, ATT_CATALOG_ENABLED, ATT_CATALOG_ENABLED, null, Boolean.toString(factory.isEnabled()));
handler.startElement(null, ELEMENT_CATALOG, ELEMENT_CATALOG, attrs);
handler.endElement(null, ELEMENT_CATALOG, ELEMENT_CATALOG);
@@ -165,28 +145,13 @@ public class ArchetypeCatalogsWriter {
public void startElement(String uri, String localName, String qName, Attributes attributes) {
if(ELEMENT_CATALOG.equals(qName) && attributes != null) {
- String type = attributes.getValue(ATT_CATALOG_TYPE);
String enabledStr = attributes.getValue(ATT_CATALOG_ENABLED);
boolean enabled = enabledStr==null||Boolean.parseBoolean(enabledStr);
- if(TYPE_LOCAL.equals(type)) {
- String path = attributes.getValue(ATT_CATALOG_LOCATION);
- if(path != null) {
- String description = attributes.getValue(ATT_CATALOG_DESCRIPTION);
- catalogs.add(new LocalCatalogFactory(path, description, true, enabled));
- }
- } else if(TYPE_REMOTE.equals(type)) {
- String url = attributes.getValue(ATT_CATALOG_LOCATION);
- if(url != null) {
- String description = attributes.getValue(ATT_CATALOG_DESCRIPTION);
- catalogs.add(new RemoteCatalogFactory(url, description, true, enabled));
- }
- } else {
- String id = attributes.getValue(ATT_CATALOG_ID);
- if(id != null && !id.isEmpty()) {
- ArchetypeCatalogFactory catalog = existingCatalogs.get(id);
- if(catalog != null) {
- catalog.setEnabled(enabled);
- }
+ String id = attributes.getValue(ATT_CATALOG_ID);
+ if(id != null && !id.isEmpty()) {
+ ArchetypeCatalogFactory catalog = existingCatalogs.get(id);
+ if(catalog != null) {
+ catalog.setEnabled(enabled);
}
}
}
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..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,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())) {
ArchetypeDescriptor descriptor;
try {
descriptor = aaMgr.getFileSetArchetypeDescriptor(groupId, artifactId, version, null, localRepository,
- repositories);
+ repositories, context.newProjectBuildingRequest());
} 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.28.0