diff options
author | Igor Fedorenko | 2011-08-04 15:24:23 +0000 |
---|---|---|
committer | Igor Fedorenko | 2011-08-04 15:24:23 +0000 |
commit | 093352787bc8b48dfebd094d2967760491550e3e (patch) | |
tree | b850877905e0c25f594a43ef8bdcdfcb395a4b7d | |
parent | c47e215285d7c562d2e8c98c52a80349abe070b6 (diff) | |
parent | 55bb6dd084da70138e6fd4800a514ee94abdb743 (diff) | |
download | m2e-core-093352787bc8b48dfebd094d2967760491550e3e.tar.gz m2e-core-093352787bc8b48dfebd094d2967760491550e3e.tar.xz m2e-core-093352787bc8b48dfebd094d2967760491550e3e.zip |
Merge remote-tracking branch 'origin/master' into m2e-self-hosting
Conflicts:
com.ning.async-http-client/pom.xml
org.eclipse.m2e.archetype.common/META-INF/MANIFEST.MF
org.eclipse.m2e.archetype.common/pom.xml
org.eclipse.m2e.core.ui/pom.xml
org.eclipse.m2e.core/pom.xml
org.eclipse.m2e.discovery/pom.xml
org.eclipse.m2e.editor.xml/pom.xml
org.eclipse.m2e.editor/pom.xml
org.eclipse.m2e.feature/pom.xml
org.eclipse.m2e.integration.tests.common/pom.xml
org.eclipse.m2e.jdt/pom.xml
org.eclipse.m2e.launching/pom.xml
org.eclipse.m2e.lifecyclemapping.defaults/pom.xml
org.eclipse.m2e.logback.appender/pom.xml
org.eclipse.m2e.logback.configuration/pom.xml
org.eclipse.m2e.logback.feature/pom.xml
org.eclipse.m2e.maven.indexer/META-INF/MANIFEST.MF
org.eclipse.m2e.maven.indexer/pom.xml
org.eclipse.m2e.maven.runtime/META-INF/MANIFEST.MF
org.eclipse.m2e.maven.runtime/pom.xml
org.eclipse.m2e.model.edit/pom.xml
org.eclipse.m2e.refactoring/pom.xml
org.eclipse.m2e.scm/pom.xml
org.eclipse.m2e.sdk.feature/pom.xml
org.eclipse.m2e.site/pom.xml
org.eclipse.m2e.tests.common/pom.xml
org.eclipse.m2e.usagedata/pom.xml
org.jboss.netty/pom.xml
pom.xml
target-platform/pom.xml
54 files changed, 357 insertions, 201 deletions
diff --git a/org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF b/org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF index 83980eee..f0772363 100644 --- a/org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.core.ui/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.m2e.core.ui;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.m2e.core.ui/pom.xml b/org.eclipse.m2e.core.ui/pom.xml index 76255d4b..a6c83653 100644 --- a/org.eclipse.m2e.core.ui/pom.xml +++ b/org.eclipse.m2e.core.ui/pom.xml @@ -9,7 +9,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.core.ui</artifactId> diff --git a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/PomHierarchyComposite.java b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/PomHierarchyComposite.java index aa65e6f8..efb57f08 100644 --- a/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/PomHierarchyComposite.java +++ b/org.eclipse.m2e.core.ui/src/org/eclipse/m2e/core/ui/internal/components/PomHierarchyComposite.java @@ -96,7 +96,8 @@ public class PomHierarchyComposite extends Composite implements IInputSelectionP private void computeHeirarchy(IMavenProjectFacade projectFacade, IProgressMonitor monitor) throws CoreException { LinkedList<MavenProject> hierarchy = new LinkedList<MavenProject>(); - hierarchy.addAll(new ParentGatherer(projectFacade.getMavenProject(), projectFacade).getParentHierarchy(monitor)); + hierarchy.addAll(new ParentGatherer(projectFacade.getMavenProject(monitor), projectFacade) + .getParentHierarchy(monitor)); setHierarchy(hierarchy); } 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 759700ab..bf7aad9d 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 @@ -19,6 +19,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.Set; import java.util.TreeSet; @@ -136,6 +137,10 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp }; + private static final boolean DEFAULT_SHOW_LAST_VERSION = true; + + private static final boolean DEFAULT_INCLUDE_SNAPSHOTS = false; + ComboViewer catalogsComboViewer; Text filterText; @@ -155,7 +160,10 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp /** the list of available archetypes */ volatile Collection<Archetype> archetypes; - Collection<Archetype> lastVersionArchetypes; + /** + * Archetype key to known archetype versions map. Versions are sorted in newest-to-oldest order. + */ + Map<String, List<String>> archetypeVersions; /** a flag indicating if the archetype selection is actually used in the wizard */ private boolean isUsed = true; @@ -279,8 +287,7 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp filterLabel.setText(org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_lblFilter); QuickViewerFilter quickViewerFilter = new QuickViewerFilter(); - LastVersionFilter versionFilter = new LastVersionFilter(); - IncludeSnapshotsFilter snapshotsFilter = new IncludeSnapshotsFilter(); + VersionsFilter versionFilter = new VersionsFilter(DEFAULT_SHOW_LAST_VERSION, DEFAULT_INCLUDE_SNAPSHOTS); filterText = new Text(parent, SWT.BORDER | SWT.SEARCH); filterText.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false)); @@ -360,9 +367,7 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp } }); - viewer.addFilter(quickViewerFilter); - viewer.addFilter(versionFilter); - viewer.addFilter(snapshotsFilter); + viewer.setFilters(new ViewerFilter[] {versionFilter, quickViewerFilter}); viewer.setContentProvider(new IStructuredContentProvider() { public Object[] getElements(Object inputElement) { @@ -438,7 +443,7 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp showLastVersionButton = new Button(buttonComposite, SWT.CHECK); showLastVersionButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, false)); showLastVersionButton.setText(org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_btnLast); - showLastVersionButton.setSelection(true); + showLastVersionButton.setSelection(DEFAULT_SHOW_LAST_VERSION); showLastVersionButton.addSelectionListener(versionFilter); includeShapshotsButton = new Button(buttonComposite, SWT.CHECK); @@ -446,8 +451,8 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp buttonData.horizontalIndent = 25; includeShapshotsButton.setLayoutData(buttonData); includeShapshotsButton.setText(org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_btnSnapshots); - includeShapshotsButton.setSelection(false); - includeShapshotsButton.addSelectionListener(snapshotsFilter); + includeShapshotsButton.setSelection(DEFAULT_INCLUDE_SNAPSHOTS); + includeShapshotsButton.addSelectionListener(versionFilter); addArchetypeButton = new Button(buttonComposite, SWT.NONE); addArchetypeButton.setText(org.eclipse.m2e.core.ui.internal.Messages.MavenProjectWizardArchetypePage_btnAdd); @@ -567,6 +572,9 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp job.schedule(); } + /** + * @deprecated this method is not used ad will be removed from 1.1 + */ public Set<Archetype> filterVersions(Collection<Archetype> archetypes) { HashMap<String, Archetype> filteredArchetypes = new HashMap<String, Archetype>(); @@ -595,7 +603,7 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp return result; } - private String getArchetypeKey(Archetype archetype) { + private static String getArchetypeKey(Archetype archetype) { return archetype.getGroupId() + ":" + archetype.getArtifactId(); //$NON-NLS-1$ } @@ -640,7 +648,7 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp } void updateViewer(String groupId, String artifactId, String version) { - lastVersionArchetypes = filterVersions(archetypes); + archetypeVersions = getArchetypeVersions(archetypes); viewer.setInput(archetypes); @@ -663,6 +671,40 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp tableData.widthHint = oldHint; } + private static Map<String, List<String>> getArchetypeVersions(Collection<Archetype> archetypes) { + HashMap<String, List<String>> archetypeVersions = new HashMap<String, List<String>>(); + + for(Archetype currentArchetype : archetypes) { + String version = currentArchetype.getVersion(); + if(M2EUIUtils.nullOrEmpty(version)) { + // we don't know how to handle null/empty versions + continue; + } + String key = getArchetypeKey(currentArchetype); + + List<String> versions = archetypeVersions.get(key); + if(versions == null) { + versions = new ArrayList<String>(); + archetypeVersions.put(key, versions); + } + versions.add(version); + } + + Comparator<String> comparator = new Comparator<String>() { + public int compare(String s1, String s2) { + DefaultArtifactVersion v1 = new DefaultArtifactVersion(s1); + DefaultArtifactVersion v2 = new DefaultArtifactVersion(s2); + return v2.compareTo(v1); + } + }; + + for(List<String> versions : archetypeVersions.values()) { + Collections.sort(versions, comparator); + } + + return archetypeVersions; + } + protected void selectArchetype(String groupId, String artifactId, String version) { Archetype archetype = findArchetype(groupId, artifactId, version); @@ -844,56 +886,92 @@ public class MavenProjectWizardArchetypePage extends AbstractMavenWizardPage imp } } + /** + * @deprecated this class is not used and will be removed from 1.1 + */ protected class IncludeSnapshotsFilter extends ViewerFilter implements SelectionListener { + public boolean select(Viewer viewer, Object parentElement, Object element) { + return true; + } - /** - * - */ - private static final String SNAPSHOT = "SNAPSHOT"; //$NON-NLS-1$ + public void widgetSelected(SelectionEvent e) { + } - private boolean includeSnapshots = false; + public void widgetDefaultSelected(SelectionEvent e) { + } + } - public boolean select(Viewer viewer, Object parentElement, Object element) { - if(element instanceof Archetype) { - String version = ((Archetype) element).getVersion(); - boolean isSnap = false; - if(M2EUIUtils.nullOrEmpty(version)) { - isSnap = false; - } else if(version.lastIndexOf(SNAPSHOT) >= 0) { - isSnap = true; - } - return includeSnapshots ? true : !isSnap; - } - return false; + /** + * @deprecated this class is not used and will be removed from 1.1 + */ + protected class LastVersionFilter extends ViewerFilter implements SelectionListener { + public boolean select(Viewer viewer, Object parentElement, Object element) { + return true; } public void widgetSelected(SelectionEvent e) { - this.includeSnapshots = includeShapshotsButton.getSelection(); - viewer.refresh(); - Archetype archetype = getArchetype(); - //can be null in some cases, don't try to reveal - if(archetype != null) { - viewer.reveal(archetype); - } - viewer.getTable().setSelection(viewer.getTable().getSelectionIndex()); - viewer.getTable().setFocus(); } public void widgetDefaultSelected(SelectionEvent e) { } } - protected class LastVersionFilter extends ViewerFilter implements SelectionListener { + protected class VersionsFilter extends ViewerFilter implements SelectionListener { - private boolean showLastVersion = true; + private boolean showLastVersion; + + private boolean includeSnapshots; + + public VersionsFilter(boolean showLastVersion, boolean includeSnapshots) { + this.showLastVersion = showLastVersion; + this.includeSnapshots = includeSnapshots; + } public boolean select(Viewer viewer, Object parentElement, Object element) { - return showLastVersion ? lastVersionArchetypes.contains(element) : true; + if(!(element instanceof Archetype)) { + return false; + } + + Archetype archetype = (Archetype) element; + String version = archetype.getVersion(); + + if(!includeSnapshots) { + if(isSnapshotVersion(version)) { + return false; + } + } + + if(!showLastVersion) { + return true; + } + + // need to find latest version, skipping snapshots depending on includeSnapshots + List<String> versions = archetypeVersions.get(getArchetypeKey(archetype)); + + if(versions == null || versions.isEmpty()) { + return false; // can't really happen + } + + for(String otherVersion : versions) { + if(includeSnapshots || !isSnapshotVersion(otherVersion)) { + if(otherVersion.equals(version)) { + return true; + } + break; + } + } + + return false; + } + + boolean isSnapshotVersion(String version) { + return !M2EUIUtils.nullOrEmpty(version) && version.endsWith("SNAPSHOT"); } public void widgetSelected(SelectionEvent e) { this.showLastVersion = showLastVersionButton.getSelection(); + this.includeSnapshots = includeShapshotsButton.getSelection(); viewer.refresh(); Archetype archetype = getArchetype(); //can be null in some cases, don't try to reveal diff --git a/org.eclipse.m2e.core/META-INF/MANIFEST.MF b/org.eclipse.m2e.core/META-INF/MANIFEST.MF index bf23ccd6..eb8a46c1 100644 --- a/org.eclipse.m2e.core/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.core/META-INF/MANIFEST.MF @@ -2,13 +2,13 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.core;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Activator: org.eclipse.m2e.core.internal.MavenPluginActivator Bundle-Vendor: %Bundle-Vendor Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime, - org.eclipse.core.resources, + org.eclipse.core.resources;bundle-version="3.6.0", org.eclipse.core.variables, org.eclipse.core.expressions, org.eclipse.core.filesystem, diff --git a/org.eclipse.m2e.core/pom.xml b/org.eclipse.m2e.core/pom.xml index 9661943b..8c9b3f82 100644 --- a/org.eclipse.m2e.core/pom.xml +++ b/org.eclipse.m2e.core/pom.xml @@ -9,7 +9,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.core</artifactId> diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java index 0e848b7b..3d4b5ed5 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java @@ -45,6 +45,7 @@ import org.eclipse.osgi.util.NLS; import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; +import org.apache.maven.execution.MavenExecutionRequest; import org.apache.maven.model.DependencyManagement; import org.apache.maven.project.MavenProject; @@ -158,6 +159,10 @@ public class MavenModelManager { } } + /** + * @deprecated use {@link #readDependencyTree(IMavenProjectFacade, MavenProject, String, IProgressMonitor)}, which + * supports workspace dependency resolution + */ public synchronized DependencyNode readDependencyTree(IFile file, String classpath, IProgressMonitor monitor) throws CoreException { monitor.setTaskName(Messages.MavenModelManager_monitor_reading); @@ -166,13 +171,30 @@ public class MavenModelManager { return readDependencyTree(mavenProject, classpath, monitor); } - public synchronized DependencyNode readDependencyTree(MavenProject mavenProject, - String classpath, IProgressMonitor monitor) throws CoreException { + /** + * @deprecated use {@link #readDependencyTree(IMavenProjectFacade, MavenProject, String, IProgressMonitor)}, which + * supports workspace dependency resolution + */ + public DependencyNode readDependencyTree(MavenProject mavenProject, String classpath, IProgressMonitor monitor) + throws CoreException { + return readDependencyTree(null, mavenProject, classpath, monitor); + } + + public synchronized DependencyNode readDependencyTree(IMavenProjectFacade context, MavenProject mavenProject, + String scope, IProgressMonitor monitor) throws CoreException { monitor.setTaskName(Messages.MavenModelManager_monitor_building); IMaven maven = MavenPlugin.getMaven(); - DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(maven.createSession( - maven.createExecutionRequest(monitor), mavenProject).getRepositorySession()); + + MavenExecutionRequest executionRequest; + if(context != null) { + executionRequest = MavenPlugin.getMavenProjectRegistry().createExecutionRequest(context, monitor); + } else { + executionRequest = maven.createExecutionRequest(monitor); + } + + DefaultRepositorySystemSession session = new DefaultRepositorySystemSession(maven.createSession(executionRequest, + mavenProject).getRepositorySession()); DependencyGraphTransformer transformer = new ChainedDependencyGraphTransformer(new JavaEffectiveScopeCalculator(), new NearestVersionConflictResolver()); @@ -211,14 +233,14 @@ public class MavenModelManager { Collection<String> scopes = new HashSet<String>(); Collections.addAll(scopes, Artifact.SCOPE_SYSTEM, Artifact.SCOPE_COMPILE, Artifact.SCOPE_PROVIDED, Artifact.SCOPE_RUNTIME, Artifact.SCOPE_TEST); - if(Artifact.SCOPE_COMPILE.equals(classpath)) { + if(Artifact.SCOPE_COMPILE.equals(scope)) { scopes.remove(Artifact.SCOPE_COMPILE); scopes.remove(Artifact.SCOPE_SYSTEM); scopes.remove(Artifact.SCOPE_PROVIDED); - } else if(Artifact.SCOPE_RUNTIME.equals(classpath)) { + } else if(Artifact.SCOPE_RUNTIME.equals(scope)) { scopes.remove(Artifact.SCOPE_COMPILE); scopes.remove(Artifact.SCOPE_RUNTIME); - } else if(Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(classpath)) { + } else if(Artifact.SCOPE_COMPILE_PLUS_RUNTIME.equals(scope)) { scopes.remove(Artifact.SCOPE_COMPILE); scopes.remove(Artifact.SCOPE_SYSTEM); scopes.remove(Artifact.SCOPE_PROVIDED); diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java index 0d7e42bb..0cd641fe 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java @@ -22,8 +22,6 @@ import java.util.List; import java.util.Properties; import java.util.Set; -import org.osgi.framework.Bundle; -import org.osgi.framework.Version; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -71,8 +69,8 @@ import org.eclipse.m2e.core.embedder.MavenModelManager; import org.eclipse.m2e.core.internal.IMavenConstants; import org.eclipse.m2e.core.internal.MavenPluginActivator; import org.eclipse.m2e.core.internal.Messages; -import org.eclipse.m2e.core.internal.archetype.ArchetypeManager; import org.eclipse.m2e.core.internal.archetype.ArchetypeCatalogFactory.RemoteCatalogFactory; +import org.eclipse.m2e.core.internal.archetype.ArchetypeManager; import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory; import org.eclipse.m2e.core.internal.markers.IMavenMarkerManager; import org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager; @@ -166,33 +164,27 @@ public class ProjectConfigurationManager implements IProjectConfigurationManager } private void hideNestedProjectsFromParents(List<IProject> projects) { - - if (!MavenPlugin.getMavenConfiguration().isHideFoldersOfNestedProjects()) { + + if(!MavenPlugin.getMavenConfiguration().isHideFoldersOfNestedProjects()) { return; } + // Prevent child project folders from showing up in parent project folders. - - Bundle bundle = ResourcesPlugin.getPlugin().getBundle(); - String version = (String) bundle.getHeaders().get(org.osgi.framework.Constants.BUNDLE_VERSION); - Version currentVersion = org.osgi.framework.Version.parseVersion(version); - Version e34Version = new Version(3,4,0); - if (currentVersion.compareTo(e34Version) < 0) { - return; // IResource.setHidden doesn't exist in Eclipse prior to version 3.4 - } + HashMap<File, IProject> projectFileMap = new HashMap<File, IProject>(); - - for (IProject project: projects) { + + for(IProject project : projects) { projectFileMap.put(project.getLocation().toFile(), project); } - for (IProject project: projects) { + for(IProject project : projects) { File projectFile = project.getLocation().toFile(); IProject physicalParentProject = projectFileMap.get(projectFile.getParentFile()); - if (physicalParentProject == null) { + if(physicalParentProject == null) { continue; } IFolder folder = physicalParentProject.getFolder(projectFile.getName()); - if (folder.exists()) { - setHidden(folder); + if(folder.exists()) { + setHidden(folder); } } } @@ -295,6 +287,13 @@ public class ProjectConfigurationManager implements IProjectConfigurationManager addMavenNature(project, monitor); + // Configure project file encoding + MavenProject mavenProject = request.getMavenProject(); + Properties mavenProperties = mavenProject.getProperties(); + String sourceEncoding = mavenProperties.getProperty("project.build.sourceEncoding"); + log.debug("Setting encoding for project {}: {}", project.getName(), sourceEncoding); //$NON-NLS-1$ + project.setDefaultCharset(sourceEncoding, monitor); + ILifecycleMapping lifecycleMapping = getLifecycleMapping(mavenProjectFacade); if(lifecycleMapping != null) { diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java index 0d510e0f..9589f59d 100644 --- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java +++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java @@ -82,8 +82,9 @@ public interface IMavenProjectFacade { MavenProject getMavenProject(IProgressMonitor monitor) throws CoreException; /** - * Returns cached MavenProject instance associated with this facade or null, - * if the cache has not been populated yet. + * Returns cached MavenProject instance associated with this facade or <code>null</code>, if the cache has not been + * populated yet, for example right after workspace restart. Clients must use + * {@link #getMavenProject(IProgressMonitor)} unless they are prepared to deal with <code>null</code> return value. */ MavenProject getMavenProject(); diff --git a/org.eclipse.m2e.discovery/META-INF/MANIFEST.MF b/org.eclipse.m2e.discovery/META-INF/MANIFEST.MF index 24d0d7cd..752d5dff 100644 --- a/org.eclipse.m2e.discovery/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.discovery/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.discovery;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-RequiredExecutionEnvironment: J2SE-1.5, JavaSE-1.6 Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.m2e.discovery/pom.xml b/org.eclipse.m2e.discovery/pom.xml index bec81abc..df1d0575 100644 --- a/org.eclipse.m2e.discovery/pom.xml +++ b/org.eclipse.m2e.discovery/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.discovery</artifactId> diff --git a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryWizard.java b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryWizard.java index e660b724..3793e826 100644 --- a/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryWizard.java +++ b/org.eclipse.m2e.discovery/src/org/eclipse/m2e/internal/discovery/wizards/MavenDiscoveryWizard.java @@ -15,9 +15,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.equinox.internal.p2.discovery.Catalog; import org.eclipse.equinox.internal.p2.ui.discovery.wizards.CatalogPage; import org.eclipse.equinox.internal.p2.ui.discovery.wizards.DiscoveryWizard; -import org.eclipse.jface.dialogs.IMessageProvider; -import org.eclipse.jface.wizard.IWizardPage; -import org.eclipse.jface.wizard.WizardPage; import org.eclipse.m2e.internal.discovery.MavenDiscoveryIcons; import org.eclipse.m2e.internal.discovery.Messages; import org.eclipse.ui.statushandlers.StatusManager; @@ -42,13 +39,10 @@ public class MavenDiscoveryWizard extends DiscoveryWizard { try { return MavenDiscoveryUi.install(getCatalogPage().getInstallableConnectors(), null, getContainer()); } catch(CoreException e) { - IWizardPage page = getContainer().getCurrentPage(); - if (page instanceof WizardPage) { - ((WizardPage) page).setMessage(e.getMessage(), IMessageProvider.ERROR); - } else { - // This should never happen, but just in case. - StatusManager.getManager().handle(e.getStatus(), StatusManager.SHOW | StatusManager.LOG); - } + // https://bugs.eclipse.org/bugs/show_bug.cgi?id=344592 + // users need to be able to troubleshoot installation failures, so let them see all the details + // TODO meaningful slf4j log + StatusManager.getManager().handle(e.getStatus(), StatusManager.SHOW | StatusManager.BLOCK | StatusManager.LOG); return false; } } diff --git a/org.eclipse.m2e.editor.xml/META-INF/MANIFEST.MF b/org.eclipse.m2e.editor.xml/META-INF/MANIFEST.MF index 41b19b10..60926145 100644 --- a/org.eclipse.m2e.editor.xml/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.editor.xml/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.editor.xml;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Activator: org.eclipse.m2e.editor.xml.MvnIndexPlugin Eclipse-LazyStart: true Require-Bundle: org.eclipse.core.runtime, diff --git a/org.eclipse.m2e.editor.xml/pom.xml b/org.eclipse.m2e.editor.xml/pom.xml index d8241198..d64e7492 100644 --- a/org.eclipse.m2e.editor.xml/pom.xml +++ b/org.eclipse.m2e.editor.xml/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.editor.xml</artifactId> diff --git a/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/lifecycle/LifecycleMappingDialog.java b/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/lifecycle/LifecycleMappingDialog.java index 2ed6ef84..59a55028 100644 --- a/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/lifecycle/LifecycleMappingDialog.java +++ b/org.eclipse.m2e.editor.xml/src/main/java/org/eclipse/m2e/editor/xml/internal/lifecycle/LifecycleMappingDialog.java @@ -8,10 +8,13 @@ * Contributors: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ + package org.eclipse.m2e.editor.xml.internal.lifecycle; +import java.io.File; import java.lang.reflect.InvocationTargetException; +import org.apache.maven.model.InputLocation; import org.apache.maven.model.Plugin; import org.apache.maven.project.MavenProject; @@ -40,6 +43,7 @@ import org.eclipse.m2e.core.project.IMavenProjectFacade; import org.eclipse.m2e.core.ui.internal.components.PomHierarchyComposite; +@SuppressWarnings("restriction") public class LifecycleMappingDialog extends Dialog implements ISelectionChangedListener { private PomHierarchyComposite pomComposite; @@ -105,7 +109,9 @@ public class LifecycleMappingDialog extends Dialog implements ISelectionChangedL //350439 //set selection here, because we listen on changes and update the ok button. //but the button is not created until super is called here.. - pomComposite.setSelection(new StructuredSelection(pluginProject)); + if(pluginProject != null) { + pomComposite.setSelection(new StructuredSelection(pluginProject)); + } } public void selectionChanged(SelectionChangedEvent event) { @@ -143,16 +149,28 @@ public class LifecycleMappingDialog extends Dialog implements ISelectionChangedL } private MavenProject locatePlugin() { - for (MavenProject project : pomComposite.getHierarchy()) { - if (project.getOriginalModel().getBuild() != null) { - for (Plugin plugin : project.getOriginalModel().getBuild().getPlugins()) { - if(plugin.getGroupId().equals(pluginGroupId) && plugin.getArtifactId().equals(pluginArtifactId) - && (plugin.getVersion() == null || pluginVersion.equals(plugin.getVersion()))) { - return project; - } - } + MavenProject project = facade.getMavenProject(); // if we got here, facade.getMavenProject cannot be null + + Plugin plugin = project.getPlugin(pluginGroupId + ":" + pluginArtifactId); + + if(plugin == null) { + return null; // can't really happy + } + + InputLocation location = plugin.getLocation(""); + + if(location == null || location.getSource() == null || location.getSource().getLocation() == null) { + // that's odd. where does this come from??? + return null; + } + + File basedir = new File(location.getSource().getLocation()).getParentFile(); // should be canonical file already + for(MavenProject other : pomComposite.getHierarchy()) { + if(basedir.equals(other.getBasedir())) { + return other; } } + return null; } } diff --git a/org.eclipse.m2e.editor/META-INF/MANIFEST.MF b/org.eclipse.m2e.editor/META-INF/MANIFEST.MF index 13693e21..93d57382 100644 --- a/org.eclipse.m2e.editor/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.editor/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.editor;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Activator: org.eclipse.m2e.editor.MavenEditorPlugin Require-Bundle: org.eclipse.core.runtime, org.eclipse.core.resources, diff --git a/org.eclipse.m2e.editor/pom.xml b/org.eclipse.m2e.editor/pom.xml index 96316e04..11624fe0 100644 --- a/org.eclipse.m2e.editor/pom.xml +++ b/org.eclipse.m2e.editor/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.editor</artifactId> diff --git a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java index 324f3bdb..aec564e3 100644 --- a/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java +++ b/org.eclipse.m2e.editor/src/org/eclipse/m2e/editor/pom/MavenPomEditor.java @@ -38,6 +38,7 @@ import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IExtensionRegistry; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Path; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Status; import org.eclipse.core.runtime.jobs.Job; @@ -62,7 +63,6 @@ import org.eclipse.m2e.core.project.IMavenProjectChangedListener; import org.eclipse.m2e.core.project.IMavenProjectFacade; import org.eclipse.m2e.core.project.MavenProjectChangedEvent; import org.eclipse.m2e.core.ui.internal.M2EUIPluginActivator; -import org.eclipse.m2e.core.ui.internal.actions.OpenPomAction.MavenPathStorageEditorInput; import org.eclipse.m2e.core.ui.internal.actions.OpenPomAction.MavenStorageEditorInput; import org.eclipse.m2e.core.ui.internal.actions.SelectionUtil; import org.eclipse.m2e.editor.MavenEditorPlugin; @@ -692,7 +692,14 @@ public class MavenPomEditor extends FormEditor implements IResourceChangeListene log.error("Unable to read maven project. Dependencies not updated."); //$NON-NLS-1$ return null; } - DependencyNode root = MavenPlugin.getMavenModelManager().readDependencyTree(mavenProject, classpath, monitor); + + IMavenProjectFacade facade = null; + if(pomFile != null && new Path(IMavenConstants.POM_FILE_NAME).equals(pomFile.getProjectRelativePath())) { + facade = MavenPlugin.getMavenProjectRegistry().getProject(pomFile.getProject()); + } + + DependencyNode root = MavenPlugin.getMavenModelManager().readDependencyTree(facade, mavenProject, classpath, + monitor); root.setData("LEVEL", "ROOT"); for (DependencyNode nd : root.getChildren()) { nd.setData("LEVEL", "DIRECT"); diff --git a/org.eclipse.m2e.feature/feature.xml b/org.eclipse.m2e.feature/feature.xml index 6e211f6e..061eb27e 100644 --- a/org.eclipse.m2e.feature/feature.xml +++ b/org.eclipse.m2e.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.m2e.feature" label="%featureName" - version="1.0.100.qualifier" + version="1.0.200.qualifier" provider-name="%providerName" plugin="org.eclipse.m2e.core"> <install-handler/> @@ -28,9 +28,9 @@ <import plugin="org.eclipse.wst.sse.core"/> <import plugin="org.eclipse.wst.xml.core"/> <import plugin="org.eclipse.jem.util"/> - <import feature="org.eclipse.platform" version="3.4.0" match="greaterOrEqual"/> - <import feature="org.eclipse.rcp" version="3.4.0" match="greaterOrEqual"/> - <import feature="org.eclipse.jdt" version="3.4.0" match="greaterOrEqual"/> + <import feature="org.eclipse.platform" version="3.6.0" match="greaterOrEqual"/> + <import feature="org.eclipse.rcp" version="3.6.0" match="greaterOrEqual"/> + <import feature="org.eclipse.jdt" version="3.6.0" match="greaterOrEqual"/> </requires> <plugin diff --git a/org.eclipse.m2e.feature/pom.xml b/org.eclipse.m2e.feature/pom.xml index 22baac1c..4d6594d7 100644 --- a/org.eclipse.m2e.feature/pom.xml +++ b/org.eclipse.m2e.feature/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.feature</artifactId> diff --git a/org.eclipse.m2e.integration.tests.common/META-INF/MANIFEST.MF b/org.eclipse.m2e.integration.tests.common/META-INF/MANIFEST.MF index 0ee41638..853c9370 100644 --- a/org.eclipse.m2e.integration.tests.common/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.integration.tests.common/META-INF/MANIFEST.MF @@ -7,7 +7,7 @@ Bundle-SymbolicName: org.eclipse.m2e.integration.tests.common;singleton:=true Bundle-ManifestVersion: 2 Eclipse-LazyStart: true MavenArtifact-GroupId: org.eclipse.m2e -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier MavenArtifact-ArtifactId: org.eclipse.m2e.integration.test.common Export-Package: org.eclipse.m2e.integration.tests.common;x-internal:=true, org.eclipse.m2e.integration.tests.common.matchers;x-internal:=true diff --git a/org.eclipse.m2e.integration.tests.common/pom.xml b/org.eclipse.m2e.integration.tests.common/pom.xml index e4c49410..4e51cd79 100644 --- a/org.eclipse.m2e.integration.tests.common/pom.xml +++ b/org.eclipse.m2e.integration.tests.common/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.integration.tests.common</artifactId> diff --git a/org.eclipse.m2e.jdt/META-INF/MANIFEST.MF b/org.eclipse.m2e.jdt/META-INF/MANIFEST.MF index bf2f8dcf..8dfc98c7 100644 --- a/org.eclipse.m2e.jdt/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.jdt/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.jdt;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Localization: plugin Export-Package: org.eclipse.m2e.jdt, org.eclipse.m2e.jdt.internal;x-internal:=true, diff --git a/org.eclipse.m2e.jdt/pom.xml b/org.eclipse.m2e.jdt/pom.xml index 8149eb6e..0e0016de 100644 --- a/org.eclipse.m2e.jdt/pom.xml +++ b/org.eclipse.m2e.jdt/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.jdt</artifactId> diff --git a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java index e0a69e4d..d3d4a814 100644 --- a/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java +++ b/org.eclipse.m2e.jdt/src/org/eclipse/m2e/jdt/internal/AbstractJavaProjectConfigurator.java @@ -73,9 +73,9 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon public static final String COMPILER_PLUGIN_GROUP_ID = "org.apache.maven.plugins"; - protected static final List<String> SOURCES = Arrays.asList("1.1,1.2,1.3,1.4,1.5,1.6,1.7".split(",")); //$NON-NLS-1$ //$NON-NLS-2$ + protected static final List<String> SOURCES = Arrays.asList("1.1,1.2,1.3,1.4,1.5,5,1.6,6,1.7,7".split(",")); //$NON-NLS-1$ //$NON-NLS-2$ - protected static final List<String> TARGETS = Arrays.asList("1.1,1.2,1.3,1.4,jsr14,1.5,1.6,1.7".split(",")); //$NON-NLS-1$ //$NON-NLS-2$ + protected static final List<String> TARGETS = Arrays.asList("1.1,1.2,1.3,1.4,jsr14,1.5,5,1.6,6,1.7,7".split(",")); //$NON-NLS-1$ //$NON-NLS-2$ private static final String GOAL_RESOURCES = "resources"; @@ -348,9 +348,9 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon log.info("Not adding source folder " + sourceFolder.getFullPath() + " because it overlaps with " + cped.getPath()); } - if(sourceEncoding != null) { - sourceFolder.setDefaultCharset(sourceEncoding, monitor); - } + + // Set folder encoding (null = platform/container default) + sourceFolder.setDefaultCharset(sourceEncoding, monitor); } else { if(sourceFolder != null) { classpath.removeEntry(sourceFolder.getFullPath()); @@ -437,6 +437,31 @@ public abstract class AbstractJavaProjectConfigurator extends AbstractProjectCon log.warn("Could not determine target level, using default " + target); } + // While "5" and "6" are valid synonyms for Java 5 and Java 6 source, + // Eclipse expects the values 1.5 and 1.6. + if( source.equals("5") ) { + source = "1.5"; + } + if( source.equals("6") ) { + source = "1.6"; + } + if( source.equals("7") ) { + source = "1.7"; + } + + + // While "5" and "6" are valid synonyms for Java 5 and Java 6 target, + // Eclipse expects the values 1.5 and 1.6. + if( target.equals("5") ) { + target = "1.5"; + } + if( target.equals("6") ) { + target = "1.6"; + } + if( target.equals("7") ) { + target = "1.7"; + } + options.put(JavaCore.COMPILER_SOURCE, source); options.put(JavaCore.COMPILER_COMPLIANCE, source); options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, target); diff --git a/org.eclipse.m2e.launching/META-INF/MANIFEST.MF b/org.eclipse.m2e.launching/META-INF/MANIFEST.MF index 6d18ed3f..19c74261 100644 --- a/org.eclipse.m2e.launching/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.launching/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.launching;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Localization: plugin Require-Bundle: org.eclipse.core.resources, org.eclipse.core.runtime, diff --git a/org.eclipse.m2e.launching/pom.xml b/org.eclipse.m2e.launching/pom.xml index 664c62f6..04df4bc4 100644 --- a/org.eclipse.m2e.launching/pom.xml +++ b/org.eclipse.m2e.launching/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.launching</artifactId> diff --git a/org.eclipse.m2e.lifecyclemapping.defaults/META-INF/MANIFEST.MF b/org.eclipse.m2e.lifecyclemapping.defaults/META-INF/MANIFEST.MF index b0d7419b..a5b5f4bc 100644 --- a/org.eclipse.m2e.lifecyclemapping.defaults/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.lifecyclemapping.defaults/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.lifecyclemapping.defaults;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Require-Bundle: org.eclipse.m2e.core;bundle-version="[1.0.0,1.1.0)", org.eclipse.m2e.jdt;bundle-version="[1.0.0,1.1.0)" Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.m2e.lifecyclemapping.defaults/pom.xml b/org.eclipse.m2e.lifecyclemapping.defaults/pom.xml index d639bcbd..f5e18bbf 100644 --- a/org.eclipse.m2e.lifecyclemapping.defaults/pom.xml +++ b/org.eclipse.m2e.lifecyclemapping.defaults/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.lifecyclemapping.defaults</artifactId> diff --git a/org.eclipse.m2e.logback.appender/META-INF/MANIFEST.MF b/org.eclipse.m2e.logback.appender/META-INF/MANIFEST.MF index 8ac96fb5..dd6ccad6 100644 --- a/org.eclipse.m2e.logback.appender/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.logback.appender/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.m2e.logback.appender;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-RequiredExecutionEnvironment: J2SE-1.5, diff --git a/org.eclipse.m2e.logback.appender/pom.xml b/org.eclipse.m2e.logback.appender/pom.xml index f98aa823..c8ada4d6 100644 --- a/org.eclipse.m2e.logback.appender/pom.xml +++ b/org.eclipse.m2e.logback.appender/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.logback.appender</artifactId> diff --git a/org.eclipse.m2e.logback.configuration/META-INF/MANIFEST.MF b/org.eclipse.m2e.logback.configuration/META-INF/MANIFEST.MF index f495f88f..62f87124 100644 --- a/org.eclipse.m2e.logback.configuration/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.logback.configuration/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-SymbolicName: org.eclipse.m2e.logback.configuration;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Activator: org.eclipse.m2e.logback.configuration.LogPlugin Require-Bundle: org.eclipse.core.runtime;bundle-version="3.5.0", ch.qos.logback.classic;bundle-version="0.9.24", diff --git a/org.eclipse.m2e.logback.configuration/pom.xml b/org.eclipse.m2e.logback.configuration/pom.xml index 502a0de0..b5e2264e 100644 --- a/org.eclipse.m2e.logback.configuration/pom.xml +++ b/org.eclipse.m2e.logback.configuration/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.logback.configuration</artifactId> diff --git a/org.eclipse.m2e.logback.feature/feature.xml b/org.eclipse.m2e.logback.feature/feature.xml index fb8b226a..a936456a 100644 --- a/org.eclipse.m2e.logback.feature/feature.xml +++ b/org.eclipse.m2e.logback.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.m2e.logback.feature" label="%featureName" - version="1.0.100.qualifier" + version="1.0.200.qualifier" provider-name="%providerName" plugin="org.eclipse.m2e.logback.configuration"> diff --git a/org.eclipse.m2e.logback.feature/pom.xml b/org.eclipse.m2e.logback.feature/pom.xml index 7cfc524e..971d3533 100644 --- a/org.eclipse.m2e.logback.feature/pom.xml +++ b/org.eclipse.m2e.logback.feature/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.logback.feature</artifactId> diff --git a/org.eclipse.m2e.model.edit/META-INF/MANIFEST.MF b/org.eclipse.m2e.model.edit/META-INF/MANIFEST.MF index 1de816c3..d07c073f 100644 --- a/org.eclipse.m2e.model.edit/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.model.edit/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-Name: %Bundle-Name Bundle-RequiredExecutionEnvironment: J2SE-1.5, JavaSE-1.6 Bundle-Vendor: %Bundle-Vendor -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.m2e.model.edit;singleton:=true Require-Bundle: org.eclipse.core.runtime, diff --git a/org.eclipse.m2e.model.edit/pom.xml b/org.eclipse.m2e.model.edit/pom.xml index dcb96063..bcf26e05 100644 --- a/org.eclipse.m2e.model.edit/pom.xml +++ b/org.eclipse.m2e.model.edit/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.model.edit</artifactId> diff --git a/org.eclipse.m2e.refactoring/META-INF/MANIFEST.MF b/org.eclipse.m2e.refactoring/META-INF/MANIFEST.MF index 9937625a..a155c47c 100644 --- a/org.eclipse.m2e.refactoring/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.refactoring/META-INF/MANIFEST.MF @@ -3,7 +3,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor Bundle-SymbolicName: org.eclipse.m2e.refactoring;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-Activator: org.eclipse.m2e.refactoring.internal.Activator Require-Bundle: org.eclipse.m2e.core;bundle-version="[1.0.0,1.1.0)", org.eclipse.m2e.model.edit;bundle-version="[1.0.0,1.1.0)", diff --git a/org.eclipse.m2e.refactoring/OSGI-INF/l10n/bundle.properties b/org.eclipse.m2e.refactoring/OSGI-INF/l10n/bundle.properties index 6f565cae..8edf851f 100644 --- a/org.eclipse.m2e.refactoring/OSGI-INF/l10n/bundle.properties +++ b/org.eclipse.m2e.refactoring/OSGI-INF/l10n/bundle.properties @@ -1,8 +1,7 @@ #Properties file for org.eclipse.m2e.refactoring Bundle-Vendor = Eclipse.org - m2e Bundle-Name = Maven Integration for Eclipse Refactoring -action.rename1.label = Rename Maven Artifact... -action.rename2.label = Rename Maven Artifact... +action.rename.label = Rename Maven Artifact... action.exclude1.label = Exclude Maven Artifact... action.exclude2.label = Exclude Maven Artifact... action.exclude3.label = Exclude Maven Artifact...
\ No newline at end of file diff --git a/org.eclipse.m2e.refactoring/plugin.xml b/org.eclipse.m2e.refactoring/plugin.xml index 64f1fa54..61f75bec 100644 --- a/org.eclipse.m2e.refactoring/plugin.xml +++ b/org.eclipse.m2e.refactoring/plugin.xml @@ -9,33 +9,43 @@ <?eclipse version="3.2"?> <plugin> + <extension point="org.eclipse.ui.menus"> + <menuContribution + locationURI="popup:org.eclipse.jdt.ui.refactoring.menu?after=additions"> + <command + commandId="org.eclipse.m2e.editor.RenameArtifactAction" + icon="$nl$/icons/m2.gif" + label="%action.rename.label" + id="org.eclipse.m2e.editor.RenameArtifactAction"> + <visibleWhen + checkEnabled="false"> + <with variable="selection"> + <count value="1"/> + <iterate> + <or> + <adapt type="org.eclipse.core.resources.IProject"> + <test property="org.eclipse.core.resources.projectNature" value="org.eclipse.m2e.core.maven2Nature"/> + </adapt> + <adapt type="org.eclipse.core.resources.IResource"> + <test property="org.eclipse.core.resources.name" value="pom.xml"/> + </adapt> + </or> + </iterate> + </with> + </visibleWhen> + </command> + </menuContribution> + </extension> + + <extension + point="org.eclipse.ui.commands"> + <command + id="org.eclipse.m2e.editor.RenameArtifactAction" + name="%action.rename.label" + defaultHandler="org.eclipse.m2e.refactoring.rename.RenameArtifactHandler"/> + </extension> + <extension point="org.eclipse.ui.popupMenus"> - <objectContribution - id="org.eclipse.m2e.refactoring.rename.pomContributor" - objectClass="org.eclipse.core.resources.IFile" - nameFilter="pom.xml" adaptable="true"> - <action id="org.eclipse.m2e.editor.RenamePomAction" - class="org.eclipse.m2e.refactoring.rename.RenameArtifactAction" - enablesFor="1" - label="%action.rename1.label" - menubarPath="group.edit"/> - <!-- add visibility condition for managed poms --> - </objectContribution> - <objectContribution id="org.eclipse.m2e.refactoring.rename.projectContributor" - objectClass="org.eclipse.core.resources.IProject" - adaptable="true"> - <action id="org.eclipse.m2e.editor.RenameProjectAction" - class="org.eclipse.m2e.refactoring.rename.RenameArtifactAction" - enablesFor="1" - label="%action.rename2.label" - menubarPath="org.eclipse.jdt.ui.refactoring.menu/MavenRefactoring"/> - <visibility> - <and> - <objectState name="open" value="true"/> - <objectState name="nature" value="org.eclipse.m2e.core.maven2Nature"/> - </and> - </visibility> - </objectContribution> <!-- actions in pom editor --> <objectContribution diff --git a/org.eclipse.m2e.refactoring/pom.xml b/org.eclipse.m2e.refactoring/pom.xml index ea914088..3a70a347 100644 --- a/org.eclipse.m2e.refactoring/pom.xml +++ b/org.eclipse.m2e.refactoring/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.refactoring</artifactId> diff --git a/org.eclipse.m2e.refactoring/src/org/eclipse/m2e/refactoring/rename/RenameArtifactAction.java b/org.eclipse.m2e.refactoring/src/org/eclipse/m2e/refactoring/rename/RenameArtifactHandler.java index 3ded0280..c0afda28 100644 --- a/org.eclipse.m2e.refactoring/src/org/eclipse/m2e/refactoring/rename/RenameArtifactAction.java +++ b/org.eclipse.m2e.refactoring/src/org/eclipse/m2e/refactoring/rename/RenameArtifactHandler.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2008-2010 Sonatype, Inc. + * Copyright (c) 2011 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 @@ -8,48 +8,35 @@ * Contributors: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ - package org.eclipse.m2e.refactoring.rename; +import org.eclipse.core.commands.AbstractHandler; +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.core.commands.ExecutionException; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IProject; -import org.eclipse.jface.action.IAction; +import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation; import org.eclipse.m2e.refactoring.internal.SaveDirtyFilesDialog; -import org.eclipse.swt.widgets.Event; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.actions.ActionDelegate; -import org.eclipse.ui.internal.ObjectPluginAction; +import org.eclipse.ui.handlers.HandlerUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +public class RenameArtifactHandler extends AbstractHandler { + private static final Logger log = LoggerFactory.getLogger(RenameArtifactHandler.class); -/** - * @author Anton Kraev - */ -@SuppressWarnings("restriction") -public class RenameArtifactAction extends ActionDelegate { - private static final Logger log = LoggerFactory.getLogger(RenameArtifactAction.class); - - @Override - public void init(IAction action) { - super.init(action); - } - - @Override - public void run(IAction action) { - doRun(action); - } - - @Override - public void runWithEvent(IAction action, Event event) { - doRun(action); - } - - public void doRun(IAction action) { - Object element = ((IStructuredSelection) ((ObjectPluginAction) action).getSelection()).getFirstElement(); + /* (non-Javadoc) + * @see org.eclipse.core.commands.IHandler#execute(org.eclipse.core.commands.ExecutionEvent) + */ + public Object execute(ExecutionEvent event) throws ExecutionException { + ISelection selection = computeSelection(event); + if (! (selection instanceof IStructuredSelection)) { + return null; + } + Object element = ((IStructuredSelection) selection).getFirstElement(); if(element instanceof IFile) { rename((IFile) element); } else if (element instanceof IProject) { @@ -59,8 +46,9 @@ public class RenameArtifactAction extends ActionDelegate { rename(file); } } + return null; } - + private void rename(IFile file) { try { // get the model from existing file @@ -76,5 +64,19 @@ public class RenameArtifactAction extends ActionDelegate { log.error("Unable to rename " + file, e); } } -} + + protected ISelection computeSelection(ExecutionEvent event) { + ISelection selection = HandlerUtil.getActiveMenuSelection(event); + if (!(selection instanceof IStructuredSelection)) { + selection = HandlerUtil.getActiveMenuEditorInput(event); + } + if (!(selection instanceof IStructuredSelection)) { + selection = HandlerUtil.getCurrentSelection(event); + } + if (!(selection instanceof IStructuredSelection)) { + selection = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getSelection(); + } + return selection; + } +} diff --git a/org.eclipse.m2e.scm/META-INF/MANIFEST.MF b/org.eclipse.m2e.scm/META-INF/MANIFEST.MF index 3e6c8d42..1a5e3c06 100644 --- a/org.eclipse.m2e.scm/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.scm/META-INF/MANIFEST.MF @@ -1,7 +1,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-SymbolicName: org.eclipse.m2e.scm;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-Name: %Bundle-Name Bundle-Vendor: %Bundle-Vendor diff --git a/org.eclipse.m2e.scm/pom.xml b/org.eclipse.m2e.scm/pom.xml index f01fed39..92a06679 100644 --- a/org.eclipse.m2e.scm/pom.xml +++ b/org.eclipse.m2e.scm/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.scm</artifactId> diff --git a/org.eclipse.m2e.sdk.feature/feature.xml b/org.eclipse.m2e.sdk.feature/feature.xml index 034bbb27..0cd74672 100644 --- a/org.eclipse.m2e.sdk.feature/feature.xml +++ b/org.eclipse.m2e.sdk.feature/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.m2e.sdk.feature" label="%featureName" - version="1.0.100.qualifier" + version="1.0.200.qualifier" provider-name="%providerName"> <description> diff --git a/org.eclipse.m2e.sdk.feature/pom.xml b/org.eclipse.m2e.sdk.feature/pom.xml index ac224142..8a490866 100644 --- a/org.eclipse.m2e.sdk.feature/pom.xml +++ b/org.eclipse.m2e.sdk.feature/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.sdk.feature</artifactId> diff --git a/org.eclipse.m2e.site/feature.xml b/org.eclipse.m2e.site/feature.xml index 6af8f804..b680b448 100644 --- a/org.eclipse.m2e.site/feature.xml +++ b/org.eclipse.m2e.site/feature.xml @@ -2,7 +2,7 @@ <feature id="org.eclipse.m2e.site" label="m2e - Maven Integration for Eclipse Update Site" - version="1.0.100.qualifier" + version="1.0.200.qualifier" provider-name="Eclipse.org"> <includes diff --git a/org.eclipse.m2e.site/pom.xml b/org.eclipse.m2e.site/pom.xml index 8be7dbd8..f6f12f2b 100644 --- a/org.eclipse.m2e.site/pom.xml +++ b/org.eclipse.m2e.site/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.site</artifactId> diff --git a/org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF b/org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF index 9e6714cb..c8955b24 100644 --- a/org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.tests.common;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Require-Bundle: org.junit, org.eclipse.m2e.core;bundle-version="[1.0.0,1.1.0)", org.eclipse.m2e.maven.runtime;bundle-version="[1.0.0,1.1.0)", diff --git a/org.eclipse.m2e.tests.common/pom.xml b/org.eclipse.m2e.tests.common/pom.xml index 9717e564..8af91ae9 100644 --- a/org.eclipse.m2e.tests.common/pom.xml +++ b/org.eclipse.m2e.tests.common/pom.xml @@ -13,7 +13,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.tests.common</artifactId> diff --git a/org.eclipse.m2e.usagedata/META-INF/MANIFEST.MF b/org.eclipse.m2e.usagedata/META-INF/MANIFEST.MF index f6b4246c..7144025c 100644 --- a/org.eclipse.m2e.usagedata/META-INF/MANIFEST.MF +++ b/org.eclipse.m2e.usagedata/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name Bundle-SymbolicName: org.eclipse.m2e.usagedata;singleton:=true -Bundle-Version: 1.0.100.qualifier +Bundle-Version: 1.0.200.qualifier Require-Bundle: org.eclipse.epp.usagedata.gathering, org.eclipse.m2e.core;bundle-version="[1.0.0,1.1.0)", org.slf4j.api;bundle-version="1.6.1" diff --git a/org.eclipse.m2e.usagedata/pom.xml b/org.eclipse.m2e.usagedata/pom.xml index 8c209c3f..15a4ef1e 100644 --- a/org.eclipse.m2e.usagedata/pom.xml +++ b/org.eclipse.m2e.usagedata/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>org.eclipse.m2e.usagedata</artifactId> <packaging>eclipse-plugin</packaging> @@ -22,7 +22,7 @@ <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> <packaging>pom</packaging> <name>Maven Integration for Eclipse (parent)</name> diff --git a/target-platform/pom.xml b/target-platform/pom.xml index 15236fc9..c2857338 100644 --- a/target-platform/pom.xml +++ b/target-platform/pom.xml @@ -12,7 +12,7 @@ <parent> <groupId>org.eclipse.m2e</groupId> <artifactId>m2e-core</artifactId> - <version>1.0.100-SNAPSHOT</version> + <version>1.0.200-SNAPSHOT</version> </parent> <artifactId>target-platform</artifactId> |