From 69b028840c120ea2516eeed37e6e5f9f251704cb Mon Sep 17 00:00:00 2001 From: Mat Booth 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 @@ Maven Archetype Common Bundle - 2.4 + 3.2.0 @@ -34,11 +34,6 @@ ${archetype-common.version} true - - - velocity - velocity - plexus-container-default org.codehaus.plexus @@ -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 getArchetypes() { - List 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 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