diff options
author | Fred Bricon | 2014-05-23 14:51:01 +0000 |
---|---|---|
committer | Fred Bricon | 2014-05-23 14:51:01 +0000 |
commit | 18b6c9e9d0da1ad872156180687b07334f5ac830 (patch) | |
tree | 7eb42e193ec05477000a6aa41a4965d7635c9fc8 | |
parent | 42b52c6aa76f200dade97f63ec29d5652fd0620e (diff) | |
download | m2e-core-18b6c9e9d0da1ad872156180687b07334f5ac830.tar.gz m2e-core-18b6c9e9d0da1ad872156180687b07334f5ac830.tar.xz m2e-core-18b6c9e9d0da1ad872156180687b07334f5ac830.zip |
421688 : Provide better feedback about import issuesmilestones/1.5/1.5.0.20140524-0005
Change-Id: I4bcfc9c3b1ea1d17f208e5a74d2a16f4f75df416
Signed-off-by: Fred Bricon <fbricon@gmail.com>
6 files changed, 27 insertions, 6 deletions
diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java index d0c06bcb..c953a501 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/Messages.java @@ -243,6 +243,8 @@ public class Messages extends NLS { public static String MavenImportWizardPage_btnDeselectTree_text; + public static String MavenImportWizardPage_forbiddenImportFromRoot; + public static String MavenImportWizard_titleIncompleteMapping; public static String MavenImportWizard_messageIncompleteMapping; diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties index 062231f9..424b9bf3 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/messages.properties @@ -133,6 +133,7 @@ MavenImportWizardPage_btnDeselectTree_text=Deselect Tree MavenImportWizardPage_btnSelectTree_text=Select Tree MavenImportWizardPage_createWorkingSet=Add project(s) to working set MavenImportWizardPage_desc=Select Maven projects +MavenImportWizardPage_forbiddenImportFromRoot=Importing projects from the root directory is not permitted. MavenImportWizardPage_inherited=[inherited] MavenImportWizardPage_mntmDeselectTree_text=Deselect Tree MavenImportWizardPage_mntmSelectTree_text=Select Tree diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java index 6ba7b898..e6d4bea3 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/wizards/MavenImportWizardPage.java @@ -33,7 +33,9 @@ import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.IWorkspaceRoot; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.Path; import org.eclipse.jface.dialogs.IMessageProvider; import org.eclipse.jface.operation.IRunnableWithProgress; import org.eclipse.jface.viewers.CheckStateChangedEvent; @@ -418,6 +420,12 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { protected boolean rootDirectoryChanged() { String _rootDirectory = rootDirectory; rootDirectory = rootDirectoryCombo.getText().trim(); + IPath p = new Path(rootDirectory); + if(p.isRoot()) { + setErrorMessage(Messages.MavenImportWizardPage_forbiddenImportFromRoot); + return false; + } + setErrorMessage(null); return _rootDirectory == null || !_rootDirectory.equals(rootDirectory); } @@ -426,6 +434,7 @@ public class MavenImportWizardPage extends AbstractMavenWizardPage { } public void scanProjects() { + final AbstractProjectScanner<MavenProjectInfo> projectScanner = getProjectScanner(); try { getWizard().getContainer().run(true, true, new IRunnableWithProgress() { 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 d091b65c..a3b46368 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 @@ -84,6 +84,8 @@ public class Messages extends NLS { public static String ProjectConfigurationUpdateRequired; + public static String LocalProjectScanner_accessDeniedFromFolder; + public static String LocalProjectScanner_task_scanning; public static String MavenExternalRuntime_error_cannot_parse; diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/messages.properties b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/messages.properties index b349539f..68f5f13e 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/messages.properties +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/messages.properties @@ -30,6 +30,7 @@ PluginExecutionMappingDuplicate=Conflicting lifecycle mapping (plugin execution PluginExecutionMappingInvalid=Invalid plugin execution mapping (plugin execution "{0}"). To enable full functionality, correct the invalid mapping and run Maven->Update Project Configuration. ProjectConfiguratorNotAvailable=Project configurator "{0}" is not available. To enable full functionality, install the project configurator and run Maven->Update Project Configuration. ProjectConfigurationUpdateRequired=Project configuration is not up-to-date with pom.xml. Run Maven->Update Project or use Quick Fix. +LocalProjectScanner_accessDeniedFromFolder=Can not access files from ''{0}'' LocalProjectScanner_task_scanning=Scanning folders MavenExternalRuntime_error_cannot_parse=Can't parse m2.conf MavenExternalRuntime_exc_unsupported=Unsupported m2.conf element diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/LocalProjectScanner.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/LocalProjectScanner.java index f17f6470..da30c18a 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/LocalProjectScanner.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/LocalProjectScanner.java @@ -24,6 +24,7 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.osgi.util.NLS; import org.apache.maven.model.Model; import org.apache.maven.model.Profile; @@ -67,7 +68,7 @@ public class LocalProjectScanner extends AbstractProjectScanner<MavenProjectInfo for(String folderName : folders) { try { File folder = new File(folderName).getCanonicalFile(); - scanFolder(folder, "", new SubProgressMonitor(subMonitor, IProgressMonitor.UNKNOWN)); + scanFolder(folder, "", new SubProgressMonitor(subMonitor, IProgressMonitor.UNKNOWN)); //$NON-NLS-1$ } catch(IOException ex) { addError(ex); } @@ -89,6 +90,7 @@ public class LocalProjectScanner extends AbstractProjectScanner<MavenProjectInfo if(!baseDir.exists() || !baseDir.isDirectory() || IMavenConstants.METADATA_FOLDER.equals(baseDir.getName())) { return; } + try { if(scannedFolders.contains(baseDir.getCanonicalFile())) { return; @@ -105,12 +107,16 @@ public class LocalProjectScanner extends AbstractProjectScanner<MavenProjectInfo } File[] files = baseDir.listFiles(); + if(files == null) { + addError(new Exception(NLS.bind(Messages.LocalProjectScanner_accessDeniedFromFolder, baseDir.getAbsolutePath()))); + return; + } for(int i = 0; i < files.length; i++ ) { File file; try { file = files[i].getCanonicalFile(); if(file.isDirectory()) { - scanFolder(file, rootRelPath + "/" + file.getName(), monitor); + scanFolder(file, rootRelPath + "/" + file.getName(), monitor); //$NON-NLS-1$ } } catch(IOException ex) { addError(ex); @@ -144,16 +150,16 @@ public class LocalProjectScanner extends AbstractProjectScanner<MavenProjectInfo Map<String, Set<String>> modules = new LinkedHashMap<String, Set<String>>(); for(String module : model.getModules()) { - if(module.endsWith("/pom.xml")) { - module = module.substring(0, module.length() - "/pom.xml".length()); + if(module.endsWith("/pom.xml")) { //$NON-NLS-1$ + module = module.substring(0, module.length() - "/pom.xml".length()); //$NON-NLS-1$ } modules.put(module, new HashSet<String>()); } for(Profile profile : model.getProfiles()) { for(String module : profile.getModules()) { - if(module.endsWith("/pom.xml")) { - module = module.substring(0, module.length() - "/pom.xml".length()); + if(module.endsWith("/pom.xml")) { //$NON-NLS-1$ + module = module.substring(0, module.length() - "/pom.xml".length()); //$NON-NLS-1$ } Set<String> profiles = modules.get(module); if(profiles == null) { |