use of org.eclipse.tycho.classpath.ClasspathEntry in project tycho by eclipse.
the class TychoTest method testMissingClasspathEntries.
public void testMissingClasspathEntries() throws Exception {
File basedir = getBasedir("projects/missingentry");
File platformLocation = new File("src/test/resources/targetplatforms/missingentry");
MavenProject project = getSortedProjects(basedir, platformLocation).get(0);
OsgiBundleProject projectType = (OsgiBundleProject) lookup(TychoProject.class, project.getPackaging());
List<ClasspathEntry> classpath = projectType.getClasspath(project);
assertEquals(3, classpath.size());
assertEquals(1, classpath.get(1).getLocations().size());
assertEquals(canonicalFile("src/test/resources/targetplatforms/missingentry/plugins/dirbundle_0.0.1"), classpath.get(1).getLocations().get(0).getCanonicalFile());
assertEquals(1, classpath.get(2).getLocations().size());
assertEquals(canonicalFile("src/test/resources/targetplatforms/missingentry/plugins/jarbundle_0.0.1.jar"), classpath.get(2).getLocations().get(0).getCanonicalFile());
}
use of org.eclipse.tycho.classpath.ClasspathEntry in project tycho by eclipse.
the class AbstractOsgiCompilerMojo method getClasspath.
@Override
public List<ClasspathEntry> getClasspath() throws MojoExecutionException {
TychoProject projectType = getBundleProject();
ArrayList<ClasspathEntry> classpath = new ArrayList<>(((BundleProject) projectType).getClasspath(project));
if (extraClasspathElements != null) {
ArtifactRepository localRepository = session.getLocalRepository();
List<ArtifactRepository> remoteRepositories = project.getRemoteArtifactRepositories();
for (Dependency extraDependency : extraClasspathElements) {
Artifact artifact = repositorySystem.createDependencyArtifact(extraDependency);
ArtifactResolutionRequest request = new ArtifactResolutionRequest();
request.setArtifact(artifact);
request.setLocalRepository(localRepository);
request.setRemoteRepositories(remoteRepositories);
request.setResolveRoot(true);
request.setResolveTransitively(true);
ArtifactResolutionResult result = repositorySystem.resolve(request);
if (result.hasExceptions()) {
throw new MojoExecutionException("Could not resolve extra classpath entry", result.getExceptions().get(0));
}
for (Artifact b : result.getArtifacts()) {
MavenProject bProject = null;
if (b instanceof ProjectArtifact) {
bProject = ((ProjectArtifact) b).getProject();
}
ArrayList<File> bLocations = new ArrayList<>();
// TODO properly handle multiple project locations maybe
bLocations.add(b.getFile());
classpath.add(new DefaultClasspathEntry(DefaultReactorProject.adapt(bProject), null, bLocations, null));
}
}
}
return classpath;
}
Aggregations