mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
EA-89353 - NPE: MavenProjectsTree.doResolve
This commit is contained in:
@@ -25,9 +25,15 @@ public class MavenModel extends MavenModelBase {
|
||||
private String myPackaging;
|
||||
private String myName;
|
||||
|
||||
private List<MavenProfile> myProfiles = Collections.emptyList();
|
||||
private List<MavenProfile> myProfiles;
|
||||
|
||||
private final MavenBuild myBuild = new MavenBuild();
|
||||
private final MavenBuild myBuild;
|
||||
|
||||
public MavenModel() {
|
||||
myMavenId = new MavenId(MavenId.UNKNOWN_VALUE, MavenId.UNKNOWN_VALUE, MavenId.UNKNOWN_VALUE);
|
||||
myProfiles = Collections.emptyList();
|
||||
myBuild = new MavenBuild();
|
||||
}
|
||||
|
||||
public MavenId getMavenId() {
|
||||
return myMavenId;
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
|
||||
@@ -30,6 +31,7 @@ public interface MavenServer extends Remote {
|
||||
|
||||
MavenServerIndexer createIndexer() throws RemoteException;
|
||||
|
||||
@NotNull
|
||||
MavenModel interpolateAndAlignModel(MavenModel model, File basedir) throws RemoteException;
|
||||
|
||||
MavenModel assembleInheritance(MavenModel model, MavenModel parentModel) throws RemoteException;
|
||||
|
||||
+5
-4
@@ -31,21 +31,22 @@ public class MavenServerExecutionResult implements Serializable {
|
||||
@NotNull public final Collection<MavenProjectProblem> problems;
|
||||
@NotNull public final Set<MavenId> unresolvedArtifacts;
|
||||
|
||||
public MavenServerExecutionResult(ProjectData projectData,
|
||||
Collection<MavenProjectProblem> problems,
|
||||
Set<MavenId> unresolvedArtifacts) {
|
||||
public MavenServerExecutionResult(@Nullable ProjectData projectData,
|
||||
@NotNull Collection<MavenProjectProblem> problems,
|
||||
@NotNull Set<MavenId> unresolvedArtifacts) {
|
||||
this.projectData = projectData;
|
||||
this.problems = problems;
|
||||
this.unresolvedArtifacts = unresolvedArtifacts;
|
||||
}
|
||||
|
||||
public static class ProjectData implements Serializable {
|
||||
@NotNull
|
||||
public final MavenModel mavenModel;
|
||||
public final Map<String, String> mavenModelMap;
|
||||
public final NativeMavenProjectHolder nativeMavenProject;
|
||||
public final Collection<String> activatedProfiles;
|
||||
|
||||
public ProjectData(MavenModel mavenModel,
|
||||
public ProjectData(@NotNull MavenModel mavenModel,
|
||||
Map<String, String> mavenModelMap,
|
||||
NativeMavenProjectHolder nativeMavenProject,
|
||||
Collection<String> activatedProfiles) {
|
||||
|
||||
+2
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
import org.jetbrains.idea.maven.server.embedder.Maven2ServerEmbedderImpl;
|
||||
@@ -57,6 +58,7 @@ public class Maven2ServerImpl extends MavenRemoteObject implements MavenServer {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MavenModel interpolateAndAlignModel(MavenModel model, File basedir) {
|
||||
try {
|
||||
return Maven2ServerEmbedderImpl.interpolateAndAlignModel(model, basedir);
|
||||
|
||||
+3
@@ -26,6 +26,7 @@ import org.apache.maven.shared.dependency.tree.DependencyNode;
|
||||
import org.codehaus.plexus.util.xml.Xpp3Dom;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.IllegalNameException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.server.Maven2ServerGlobals;
|
||||
import org.sonatype.nexus.index.ArtifactInfo;
|
||||
@@ -36,6 +37,7 @@ import java.rmi.RemoteException;
|
||||
import java.util.*;
|
||||
|
||||
public class Maven2ModelConverter {
|
||||
@NotNull
|
||||
public static MavenModel convertModel(Model model, File localRepository) throws RemoteException {
|
||||
Build build = model.getBuild();
|
||||
return convertModel(model,
|
||||
@@ -51,6 +53,7 @@ public class Maven2ModelConverter {
|
||||
return directory == null ? Collections.<String>emptyList() : Collections.singletonList(directory);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenModel convertModel(Model model,
|
||||
List<String> sources,
|
||||
List<String> testSources,
|
||||
|
||||
+1
@@ -155,6 +155,7 @@ public class Maven2ServerEmbedderImpl extends MavenRemoteObject implements Maven
|
||||
return result;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenModel interpolateAndAlignModel(MavenModel model, File basedir) throws RemoteException {
|
||||
Model result = Maven2ModelConverter.toNativeModel(model);
|
||||
result = doInterpolate(result, basedir);
|
||||
|
||||
+4
@@ -25,6 +25,7 @@ import org.apache.maven.shared.dependency.tree.DependencyNode;
|
||||
import org.codehaus.plexus.util.xml.Xpp3Dom;
|
||||
import org.jdom.Element;
|
||||
import org.jdom.IllegalNameException;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.jetbrains.idea.maven.server.embedder.CustomMaven3Artifact;
|
||||
import org.sonatype.nexus.index.ArtifactInfo;
|
||||
@@ -35,6 +36,7 @@ import java.rmi.RemoteException;
|
||||
import java.util.*;
|
||||
|
||||
public class MavenModelConverter {
|
||||
@NotNull
|
||||
public static MavenModel convertModel(Model model, File localRepository) throws RemoteException {
|
||||
if(model.getBuild() == null) {
|
||||
model.setBuild(new Build());
|
||||
@@ -53,6 +55,7 @@ public class MavenModelConverter {
|
||||
return directory == null ? Collections.<String>emptyList() : Collections.singletonList(directory);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenModel convertModel(Model model,
|
||||
List<String> sources,
|
||||
List<String> testSources,
|
||||
@@ -384,6 +387,7 @@ public class MavenModelConverter {
|
||||
|| Xpp3Dom.class.isAssignableFrom(clazz);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static Model toNativeModel(MavenModel model) {
|
||||
Model result = new Model();
|
||||
result.setArtifactId(model.getMavenId().getArtifactId());
|
||||
|
||||
+2
@@ -25,6 +25,7 @@ import org.eclipse.aether.graph.Dependency;
|
||||
import org.eclipse.aether.graph.DependencyNode;
|
||||
import org.eclipse.aether.util.graph.manager.DependencyManagerUtils;
|
||||
import org.eclipse.aether.util.graph.transformer.ConflictResolver;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
|
||||
@@ -40,6 +41,7 @@ import java.util.*;
|
||||
*/
|
||||
public class Maven3AetherModelConverter extends MavenModelConverter {
|
||||
|
||||
@NotNull
|
||||
public static MavenModel convertModelWithAetherDependencyTree(Model model,
|
||||
List<String> sources,
|
||||
List<String> testSources,
|
||||
|
||||
+4
-2
@@ -330,6 +330,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return (List<Exception>)((List)list);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenModel interpolateAndAlignModel(MavenModel model, File basedir) throws RemoteException {
|
||||
Model result = MavenModelConverter.toNativeModel(model);
|
||||
result = doInterpolate(result, basedir);
|
||||
@@ -418,7 +419,8 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
);
|
||||
}
|
||||
|
||||
private static Model doInterpolate(Model result, File basedir) throws RemoteException {
|
||||
@NotNull
|
||||
private static Model doInterpolate(@NotNull Model result, File basedir) throws RemoteException {
|
||||
try {
|
||||
AbstractStringBasedModelInterpolator interpolator = new CustomMaven3ModelInterpolator(new DefaultPathTranslator());
|
||||
interpolator.initialize();
|
||||
@@ -913,7 +915,7 @@ public class Maven3ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
MavenProject mavenProject = result.getMavenProject();
|
||||
if (mavenProject == null) return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
|
||||
|
||||
MavenModel model = null;
|
||||
MavenModel model = new MavenModel();
|
||||
try {
|
||||
if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
|
||||
//noinspection unchecked
|
||||
|
||||
+2
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
|
||||
@@ -61,6 +62,7 @@ public class Maven3ServerImpl extends MavenRemoteObject implements MavenServer {
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MavenModel interpolateAndAlignModel(MavenModel model, File basedir) {
|
||||
try {
|
||||
return Maven3ServerEmbedderImpl.interpolateAndAlignModel(model, basedir);
|
||||
|
||||
+2
-1
@@ -15,12 +15,12 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import com.intellij.openapi.util.text.StringUtil;
|
||||
import gnu.trove.THashMap;
|
||||
import org.apache.maven.RepositoryUtils;
|
||||
import org.apache.maven.artifact.Artifact;
|
||||
import org.apache.maven.model.Model;
|
||||
import org.apache.maven.model.Parent;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.*;
|
||||
import org.sonatype.aether.graph.DependencyNode;
|
||||
|
||||
@@ -36,6 +36,7 @@ import java.util.*;
|
||||
*/
|
||||
public class Maven30AetherModelConverter extends MavenModelConverter {
|
||||
|
||||
@NotNull
|
||||
public static MavenModel convertModelWithAetherDependencyTree(Model model,
|
||||
List<String> sources,
|
||||
List<String> testSources,
|
||||
|
||||
+2
-1
@@ -294,6 +294,7 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
return (List<Exception>)((List)list);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static MavenModel interpolateAndAlignModel(MavenModel model, File basedir) throws RemoteException {
|
||||
Model result = MavenModelConverter.toNativeModel(model);
|
||||
result = doInterpolate(result, basedir);
|
||||
@@ -836,7 +837,7 @@ public class Maven30ServerEmbedderImpl extends Maven3ServerEmbedder {
|
||||
MavenProject mavenProject = result.getMavenProject();
|
||||
if (mavenProject == null) return new MavenServerExecutionResult(null, problems, unresolvedArtifacts);
|
||||
|
||||
MavenModel model = null;
|
||||
MavenModel model = new MavenModel();
|
||||
try {
|
||||
if (USE_MVN2_COMPATIBLE_DEPENDENCY_RESOLVING) {
|
||||
//noinspection unchecked
|
||||
|
||||
+2
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.server;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenModel;
|
||||
|
||||
@@ -61,6 +62,7 @@ public class Maven30ServerImpl extends MavenRemoteObject implements MavenServer
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MavenModel interpolateAndAlignModel(MavenModel model, File basedir) {
|
||||
try {
|
||||
return Maven30ServerEmbedderImpl.interpolateAndAlignModel(model, basedir);
|
||||
|
||||
@@ -130,7 +130,6 @@ public class MavenProjectReader {
|
||||
|
||||
if (result == null) {
|
||||
result = new MavenModel();
|
||||
result.setMavenId(new MavenId(UNKNOWN, UNKNOWN, UNKNOWN));
|
||||
result.setPackaging(MavenConstants.TYPE_JAR);
|
||||
return new RawModelReadResult(result, problems, alwaysOnProfiles);
|
||||
}
|
||||
@@ -142,7 +141,6 @@ public class MavenProjectReader {
|
||||
result = new MavenModel();
|
||||
Element xmlProject = readXml(file, problems, MavenProjectProblem.ProblemType.SYNTAX);
|
||||
if (xmlProject == null || !"project".equals(xmlProject.getName())) {
|
||||
result.setMavenId(new MavenId(UNKNOWN, UNKNOWN, UNKNOWN));
|
||||
result.setPackaging(MavenConstants.TYPE_JAR);
|
||||
return new RawModelReadResult(result, problems, alwaysOnProfiles);
|
||||
}
|
||||
|
||||
+3
-1
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.idea.maven.project;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
|
||||
import org.jetbrains.idea.maven.model.MavenId;
|
||||
@@ -27,6 +28,7 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
public class MavenProjectReaderResult {
|
||||
@NotNull
|
||||
public final MavenModel mavenModel;
|
||||
public final Map<String, String> nativeModelMap;
|
||||
public final MavenExplicitProfiles activatedProfiles;
|
||||
@@ -34,7 +36,7 @@ public class MavenProjectReaderResult {
|
||||
public final Collection<MavenProjectProblem> readingProblems;
|
||||
public final Set<MavenId> unresolvedArtifactIds;
|
||||
|
||||
public MavenProjectReaderResult(MavenModel mavenModel,
|
||||
public MavenProjectReaderResult(@NotNull MavenModel mavenModel,
|
||||
Map<String, String> nativeModelMap,
|
||||
MavenExplicitProfiles activatedProfiles,
|
||||
@Nullable NativeMavenProjectHolder nativeMavenProject,
|
||||
|
||||
@@ -496,6 +496,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
};
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public MavenModel interpolateAndAlignModel(final MavenModel model, final File basedir) {
|
||||
return perform(new Retriable<MavenModel>() {
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user