Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion org.eclipse.m2e.core/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %Bundle-Name
Bundle-SymbolicName: org.eclipse.m2e.core;singleton:=true
Bundle-Version: 2.7.600.qualifier
Bundle-Version: 2.8.600.qualifier
Bundle-Activator: org.eclipse.m2e.core.internal.MavenPluginActivator
Bundle-Vendor: %Bundle-Vendor
Bundle-Localization: plugin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,7 @@
import java.io.InputStream;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;

Expand Down Expand Up @@ -71,9 +69,10 @@
import org.apache.maven.artifact.Artifact;
import org.apache.maven.model.DependencyManagement;
import org.apache.maven.model.Model;
import org.apache.maven.model.building.FileModelSource;
import org.apache.maven.model.building.ModelProcessor;
import org.apache.maven.project.MavenProject;
import org.apache.maven.project.ProjectBuilder;
import org.apache.maven.project.ProjectBuildingException;
import org.apache.maven.project.ProjectBuildingResult;

import org.eclipse.m2e.core.internal.IMavenToolbox;
import org.eclipse.m2e.core.internal.MavenPluginActivator;
Expand Down Expand Up @@ -106,13 +105,26 @@
}

/**
* Read the model from the provided pom file (might not exits) pointer
* Shortcut for {@link #readMavenModel(File, IProgressMonitor) with 2nd argument being {@code null}.
*
* @param pomFile the file pointer
* @return a maven model, or <code>null</code> if the pointer do not point to any valid maven directory
* @throws CoreException if the file points to a valid maven directory but the pom could not be read
* @deprecated Use {@link #readMavenModel(File, IProgressMonitor)} instead.
*/
@Deprecated
public org.apache.maven.model.Model readMavenModel(File pomFile) throws CoreException {
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@laeubi Are you suggesting to keep this as is (i.e. raw model) and rather introduce a new method for returning the effective model? The only consumer for the raw model I see within m2e is probably org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java...

return readMavenModel(pomFile, null);
}

/**
* Read the (effective) model from the provided POM file
*
* @param pomFile either the path to the directory containing a pom.xml or the path to the pom.xml itself
* @param progressMonitor the progress monitor, may be {@code null}
* @return the effective maven model, or <code>null</code> if the pomFile does not point to an existing pom.file or
* container directory
* @throws CoreException if the file points to a valid maven directory but the pom could not be read
*/
public org.apache.maven.model.Model readMavenModel(File pomFile, IProgressMonitor progressMonitor)
throws CoreException {
File baseDir = pomFile.isDirectory() ? pomFile : pomFile.getParentFile();
Objects.requireNonNull(baseDir, "not a directory and not a parent, invalid file?");
IComponentLookup lookup = containerManager.getComponentLookup(baseDir);
Expand All @@ -121,17 +133,20 @@
if(locatePom.isEmpty()) {
return null;
}
ModelProcessor modelProcessor = lookup.lookup(ModelProcessor.class);

File pom = locatePom.get();
Model model;
try {
model = modelProcessor.read(pom, new HashMap<>(Map.of(ModelProcessor.SOURCE, new FileModelSource(pom))));
} catch(IOException ex) {
throw new CoreException(Status.error(ex.getMessage(), ex));
}
model.setPomFile(pom);
return model;
IMavenExecutionContext context = maven.createExecutionContext();
return context.execute((IMavenExecutionContext innerContext, IProgressMonitor monitor) -> {
ProjectBuilder projectBuilder = lookup.lookup(ProjectBuilder.class);

try {
ProjectBuildingResult result = projectBuilder.build(pom, innerContext.getExecutionRequest()
.getProjectBuildingRequest().setRepositorySession(innerContext.getRepositorySession()));
return result.getProject().getModel();
} catch(ProjectBuildingException ex) {
throw new CoreException(Status.error(ex.getMessage(), ex));
}
}, progressMonitor);
}

public org.apache.maven.model.Model readMavenModel(IFile pomFile) throws CoreException {
Expand Down Expand Up @@ -208,7 +223,7 @@

ICallable<DependencyNode> callable = (context1, monitor1) -> readDependencyTree(context1.getRepositorySession(), mavenProject, scope);

return (context != null) ? projectManager.execute(context, callable, monitor) : maven.execute(callable, monitor);

Check warning on line 226 in org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java

View check run for this annotation

Jenkins - M2E / Compiler

Deprecation

NORMAL: The method execute(ICallable , IProgressMonitor) from the type IMaven has been deprecated and marked for removal
}

DependencyNode readDependencyTree(RepositorySystemSession repositorySession, MavenProject mavenProject, String scope)
Expand All @@ -226,7 +241,7 @@

ClassLoader oldClassLoader = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(maven.getProjectRealm(mavenProject));

Check warning on line 244 in org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/MavenModelManager.java

View check run for this annotation

Jenkins - M2E / Compiler

Deprecation

NORMAL: The method getProjectRealm(MavenProject) from the type IMaven has been deprecated and marked for removal

ArtifactTypeRegistry stereotypes = session.getArtifactTypeRegistry();

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ private void scanFolder(File baseDir, String rootRelPath, IProgressMonitor m) th
return;
}

MavenProjectInfo projectInfo = readMavenProjectInfo(baseDir, rootRelPath, null);
MavenProjectInfo projectInfo = readMavenProjectInfo(baseDir, rootRelPath, null, m);
if(projectInfo != null) {
addProject(projectInfo);
monitor.done();
Expand All @@ -114,15 +114,16 @@ private void scanFolder(File baseDir, String rootRelPath, IProgressMonitor m) th
}
}

private MavenProjectInfo readMavenProjectInfo(File baseDir, String modulePath, MavenProjectInfo parentInfo) {
private MavenProjectInfo readMavenProjectInfo(File baseDir, String modulePath, MavenProjectInfo parentInfo,
IProgressMonitor progressMonitor) {
try {
baseDir = baseDir.getCanonicalFile();

if(!scannedFolders.add(baseDir)) {
return null; // we already know this project
//mkleint: well, if the project is first scanned standalone and later scanned via parent reference, the parent ref gets thrown away??
}
Model model = modelManager.readMavenModel(new File(baseDir, IMavenConstants.POM_FILE_NAME));
Model model = modelManager.readMavenModel(new File(baseDir, IMavenConstants.POM_FILE_NAME), progressMonitor);
if(model == null) {
return null;
}
Expand Down Expand Up @@ -164,7 +165,7 @@ private MavenProjectInfo readMavenProjectInfo(File baseDir, String modulePath, M
Set<String> profiles = e.getValue();

File moduleBaseDir = new File(baseDir, module);
MavenProjectInfo moduleInfo = readMavenProjectInfo(moduleBaseDir, module, projectInfo);
MavenProjectInfo moduleInfo = readMavenProjectInfo(moduleBaseDir, module, projectInfo, progressMonitor);
if(moduleInfo != null) {
moduleInfo.addProfiles(profiles);
projectInfo.add(moduleInfo);
Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.m2e.feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="org.eclipse.m2e.feature"
label="%featureName"
version="2.10.0.qualifier"
version="2.11.0.qualifier"
provider-name="%providerName"
plugin="org.eclipse.m2e.core"
license-feature="org.eclipse.license"
Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.m2e.scm/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-SymbolicName: org.eclipse.m2e.scm;singleton:=true
Bundle-Version: 2.1.100.qualifier
Bundle-Version: 2.1.200.qualifier
Bundle-RequiredExecutionEnvironment: JavaSE-21
Bundle-Name: %Bundle-Name
Bundle-Vendor: %Bundle-Vendor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
*
* @author Eugene Kuleshov
*/
public abstract class MavenProjectCheckoutJob extends MavenWorkspaceJob {

Check warning on line 74 in org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java

View check run for this annotation

Jenkins - M2E / Compiler

Restriction

NORMAL: Discouraged access: The type 'MavenWorkspaceJob' is not API (restriction on classpath entry '/home/jenkins/agent/workspace/m2e_PR-2099/org.eclipse.m2e.core/target/classes')
private static final Logger log = LoggerFactory.getLogger(MavenProjectCheckoutJob.class);

final ProjectImportConfiguration configuration;
Expand All @@ -88,7 +88,7 @@

MavenProjectCheckoutJob(ProjectImportConfiguration importConfiguration, boolean checkoutAllProjects,
List<IWorkingSet> workingSets) {
super(Messages.MavenProjectCheckoutJob_title);

Check warning on line 91 in org.eclipse.m2e.scm/src/org/eclipse/m2e/scm/internal/wizards/MavenProjectCheckoutJob.java

View check run for this annotation

Jenkins - M2E / Compiler

Restriction

NORMAL: Discouraged access: The constructor 'MavenWorkspaceJob(String)' is not API (restriction on classpath entry '/home/jenkins/agent/workspace/m2e_PR-2099/org.eclipse.m2e.core/target/classes')
this.configuration = importConfiguration;
this.checkoutAllProjects = checkoutAllProjects;
this.workingSets = workingSets;
Expand Down Expand Up @@ -125,7 +125,7 @@
for(MavenProjectInfo projectInfo : projects) {
Model model = projectInfo.getModel();
if(model == null) {
model = modelManager.readMavenModel(projectInfo.getPomFile());
model = modelManager.readMavenModel(projectInfo.getPomFile(), null);
projectInfo.setModel(model);
}

Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.m2e.sdk.feature/feature.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<feature
id="org.eclipse.m2e.sdk.feature"
label="%featureName"
version="2.10.101.qualifier"
version="2.11.0.qualifier"
provider-name="%providerName"
license-feature="org.eclipse.license"
license-feature-version="0.0.0">
Expand Down
2 changes: 1 addition & 1 deletion org.eclipse.m2e.tests.common/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: M2E Testing Helpers
Bundle-SymbolicName: org.eclipse.m2e.tests.common;singleton:=true
Bundle-Version: 2.1.1.qualifier
Bundle-Version: 2.1.101.qualifier
Require-Bundle: org.junit;bundle-version="4.0.0",
org.eclipse.m2e.core;bundle-version="[2.0.0,3.0.0)",
org.eclipse.m2e.maven.runtime;bundle-version="[3.9.900,4.0.0)",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,9 +227,9 @@
mavenConfiguration.setUserSettingsFile(userSettingsFile);
}

ArtifactRepository localRepository = MavenPlugin.getMaven().getLocalRepository();

Check warning on line 230 in org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java

View check run for this annotation

Jenkins - M2E / Compiler

Deprecation

NORMAL: The type ArtifactRepository is deprecated
if(localRepository != null) {
repo = new File(localRepository.getBasedir());

Check warning on line 232 in org.eclipse.m2e.tests.common/src/org/eclipse/m2e/tests/common/AbstractMavenProjectTestCase.java

View check run for this annotation

Jenkins - M2E / Compiler

Deprecation

NORMAL: The method getBasedir() from the type ArtifactRepository is deprecated
} else {
fail("Cannot determine local repository path");
}
Expand Down Expand Up @@ -496,7 +496,7 @@
final List<MavenProjectInfo> projectInfos = new ArrayList<>();
for(String pomName : pomNames) {
File pomFile = new File(dst, pomName);
Model model = mavenModelManager.readMavenModel(pomFile);
Model model = mavenModelManager.readMavenModel(pomFile, null);
MavenProjectInfo projectInfo = new MavenProjectInfo(pomName, pomFile, model, null);
setBasedirRename(projectInfo);
projectInfos.add(projectInfo);
Expand Down Expand Up @@ -562,7 +562,7 @@
copyDir(new File(projectLocation), dir);

File pomFile = new File(dir, IMavenConstants.POM_FILE_NAME);
Model model = MavenPlugin.getMavenModelManager().readMavenModel(pomFile);
Model model = MavenPlugin.getMavenModelManager().readMavenModel(pomFile, null);
final MavenProjectInfo projectInfo = new MavenProjectInfo(projectName, pomFile, model, null);
setBasedirRename(projectInfo);

Expand Down
Loading