Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRoberto Sanchez2013-01-10 22:11:35 +0000
committerFred Bricon2013-01-16 22:26:56 +0000
commit279c8cb44cb15ada20d06950eb2bd3f9bf47982e (patch)
treea539b0427aefdd9d20c76e5938e61147d11a500c /org.eclipse.m2e.core.ui
parentffd02db2fb50a1bf02e3f01527ea0dfb733ee297 (diff)
downloadm2e-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')
-rw-r--r--org.eclipse.m2e.core.ui/plugin.properties3
-rw-r--r--org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenArtifactComponent.java8
-rw-r--r--org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenPomWizardPage.java30
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);

Back to the top