Skip to main content
aboutsummaryrefslogtreecommitdiffstats
blob: e1d02055cff67f405bf900d9d9262ee78905ac5f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
package org.eclipse.m2e.cliresolver;

import java.util.List;
import java.util.Properties;

import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.repository.ArtifactRepository;
import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.DefaultArtifactResolver;
import org.eclipse.m2e.cli.WorkspaceState;

public class EclipseWorkspaceArtifactResolver extends DefaultArtifactResolver {
	public void resolve(Artifact artifact, List remoteRepositories,
			ArtifactRepository localRepository)
			throws ArtifactResolutionException, ArtifactNotFoundException {
		if (!resolveAsEclipseProject(artifact)) {
			super.resolve(artifact, remoteRepositories, localRepository);
		}
	}

	public void resolveAlways(Artifact artifact, List remoteRepositories,
			ArtifactRepository localRepository)
			throws ArtifactResolutionException, ArtifactNotFoundException {
		if (!resolveAsEclipseProject(artifact)) {
			super.resolveAlways(artifact, remoteRepositories, localRepository);
		}
	}

	private boolean resolveAsEclipseProject(Artifact artifact) {
		Properties state = WorkspaceState.getState();

		if (state == null) {
			return false;
		}

		if (artifact == null) {
			// according to the DefaultArtifactResolver source code, it looks
			// like artifact can be null
			return false;
		}

		return WorkspaceState.resolveArtifact(artifact);
	}

}

Back to the top