Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java36
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java37
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/project/IMavenProjectFacade.java5
3 files changed, 50 insertions, 28 deletions
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();

Back to the top