tycho/tycho-use-plexus-to-create-workspacereader.patch
2013-03-18 15:12:22 +01:00

37 lines
1.9 KiB
Diff

diff --git a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java
index 1e878e5..e96a3b8 100644
--- a/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java
+++ b/tycho-core/src/main/java/org/eclipse/tycho/osgi/runtime/TychoOsgiRuntimeLocator.java
@@ -38,6 +38,7 @@ import org.eclipse.sisu.equinox.embedder.EquinoxRuntimeLocator;
import org.eclipse.tycho.dev.DevWorkspaceResolver;
import org.eclipse.tycho.locking.facade.FileLockService;
import org.eclipse.tycho.locking.facade.FileLocker;
+import org.sonatype.aether.repository.WorkspaceReader;
/**
* Implementation of {@link org.eclipse.sisu.equinox.embedder.EquinoxRuntimeLocator} for Tycho's
@@ -94,6 +95,9 @@ public class TychoOsgiRuntimeLocator implements EquinoxRuntimeLocator {
@Requirement
private DevWorkspaceResolver workspaceState;
+ @Requirement(hint = "ide")
+ private WorkspaceReader workspaceReader;
+
public void locateRuntime(EquinoxRuntimeDescription description) throws MavenExecutionException {
WorkspaceTychoOsgiRuntimeLocator workspaceLocator = WorkspaceTychoOsgiRuntimeLocator
.getResolver(this.workspaceState);
@@ -201,6 +205,13 @@ public class TychoOsgiRuntimeLocator implements EquinoxRuntimeLocator {
Artifact artifact = repositorySystem.createArtifact(dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersion(), dependency.getType());
+ if (workspaceReader != null) {
+ File artifactFile = workspaceReader.findArtifact(artifact);
+ if (artifactFile != null) {
+ artifact.setFile(artifactFile);
+ }
+ }
+
ArtifactResolutionRequest request = new ArtifactResolutionRequest();
request.setArtifact(artifact);
request.setResolveRoot(true).setResolveTransitively(false);