diff options
author | Roberto Sanchez | 2013-01-10 22:11:35 +0000 |
---|---|---|
committer | Fred Bricon | 2013-01-16 22:26:56 +0000 |
commit | 279c8cb44cb15ada20d06950eb2bd3f9bf47982e (patch) | |
tree | a539b0427aefdd9d20c76e5938e61147d11a500c /org.eclipse.m2e.core.ui | |
parent | ffd02db2fb50a1bf02e3f01527ea0dfb733ee297 (diff) | |
download | m2e-core-279c8cb44cb15ada20d06950eb2bd3f9bf47982e.tar.gz m2e-core-279c8cb44cb15ada20d06950eb2bd3f9bf47982e.tar.xz m2e-core-279c8cb44cb15ada20d06950eb2bd3f9bf47982e.zip |
Provide a way to specify that a project cannot be converted to Maven
- I wrote 100% of the code;
- I have the right to contribute the code to Eclipse;
- The file header contains the appropriate License header
Diffstat (limited to 'org.eclipse.m2e.core.ui')
3 files changed, 37 insertions, 4 deletions
diff --git a/org.eclipse.m2e.core.ui/plugin.properties b/org.eclipse.m2e.core.ui/plugin.properties index da48ae02..bc485714 100644 --- a/org.eclipse.m2e.core.ui/plugin.properties +++ b/org.eclipse.m2e.core.ui/plugin.properties @@ -1,5 +1,5 @@ # -# Copyright (c) 2007, 2008 Sonatype, Inc. +# Copyright (c) 2007, 2013 Sonatype, Inc. # All rights reserved. This program and the accompanying materials # are made available under the terms of the Eclipse Public License v1.0 # which accompanies this distribution, and is available at @@ -110,6 +110,7 @@ extension-point.mappingdefault.name = Default Maven Lifecycle Mappings extension-point.component.name = Maven Core Component Contributor extension-point.changed.name = mavenProjectChangedListeners extension-point.lifecycleMappingMetadataSource.name = Lifecycle Mapping Metadata Source +extension-point.conversionEnabler.name = Project Conversion Enabler convert.to.maven.name=Convert to Maven Project m2.build.directory.filter.name=Maven build folder diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenArtifactComponent.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenArtifactComponent.java index 78ee06bf..dc2566ee 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenArtifactComponent.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenArtifactComponent.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2010 Sonatype, Inc. + * Copyright (c) 2008-2013 Sonatype, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -215,6 +215,12 @@ public class MavenArtifactComponent extends Composite { versionCombo.setText(version); } + public void setPackagingTypes(String[] packagingTypes) { + if(packagingCombo != null) { + packagingCombo.setItems(packagingTypes); + } + } + public void setPackaging(String packaging) { if(packagingCombo != null) { packagingCombo.setText(packaging); diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenPomWizardPage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenPomWizardPage.java index 3c14363b..8ecf355b 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenPomWizardPage.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenPomWizardPage.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2010 Sonatype, Inc. + * Copyright (c) 2008-2013 Sonatype, Inc. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -12,8 +12,10 @@ package org.eclipse.m2e.core.ui.internal.wizards; import org.eclipse.core.resources.IContainer; +import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Path; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; @@ -30,6 +32,9 @@ import org.eclipse.ui.dialogs.ContainerSelectionDialog; import org.apache.maven.model.Model; +import org.eclipse.m2e.core.MavenPlugin; +import org.eclipse.m2e.core.project.conversion.IProjectConversionEnabler; +import org.eclipse.m2e.core.project.conversion.IProjectConversionManager; import org.eclipse.m2e.core.ui.internal.Messages; @@ -43,6 +48,8 @@ public class MavenPomWizardPage extends AbstractMavenWizardPage { private MavenArtifactComponent pomComponent; + private IProjectConversionEnabler projectConversionEnabler; + public MavenPomWizardPage(ISelection selection) { super("wizardPage"); //$NON-NLS-1$ setTitle(Messages.MavenPomWizardPage_title); @@ -89,6 +96,8 @@ public class MavenPomWizardPage extends AbstractMavenWizardPage { * Tests if the current workbench selection is a suitable container to use. */ private void initialize() { + String packagingToUse = MavenArtifactComponent.DEFAULT_PACKAGING; + String[] availablePackagingTypes = MavenArtifactComponent.PACKAGING_OPTIONS; if(selection != null && !selection.isEmpty() && selection instanceof IStructuredSelection) { IStructuredSelection ssel = (IStructuredSelection) selection; if(ssel.size() > 1) { @@ -105,11 +114,20 @@ public class MavenPomWizardPage extends AbstractMavenWizardPage { projectText.setText(container.getFullPath().toString()); pomComponent.setArtifactId(container.getName()); pomComponent.setGroupId(container.getName()); + if(container instanceof IProject) { + IProjectConversionManager pcm = MavenPlugin.getProjectConversionManager(); + projectConversionEnabler = pcm.getConversionEnablerForProject((IProject) container); + if(projectConversionEnabler != null) { + availablePackagingTypes = projectConversionEnabler.getPackagingTypes((IProject) container); + packagingToUse = availablePackagingTypes[0]; + } + } } } pomComponent.setVersion(MavenArtifactComponent.DEFAULT_VERSION); - pomComponent.setPackaging(MavenArtifactComponent.DEFAULT_PACKAGING); + pomComponent.setPackagingTypes(availablePackagingTypes); + pomComponent.setPackaging(packagingToUse); pomComponent.setFocus(); } @@ -175,6 +193,14 @@ public class MavenPomWizardPage extends AbstractMavenWizardPage { return; } + if(container instanceof IProject && projectConversionEnabler != null) { + IStatus status = projectConversionEnabler.canBeConverted((IProject) container); + if(status.getSeverity() == IStatus.ERROR) { + updateStatus(status.getMessage()); + return; + } + } + // TODO if(pomComponent.getGroupId().length() == 0) { updateStatus(Messages.MavenPomWizardPage_error_grid); |