blob: 08c779ada8769f07bedaf6f3bfb07d87d8ccdb25 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2013, 2015 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.debug.tests.core;
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.core.runtime.URIUtil;
import org.eclipse.jdt.debug.testplugin.JavaTestPlugin;
import org.eclipse.jdt.internal.launching.JavaFxLibraryResolver;
import org.eclipse.jdt.launching.ILibraryLocationResolver;
public class VMInstallTestsLibraryLocationResolver implements ILibraryLocationResolver {
// This used to be in VMInstallTests. Moved here to support headless test runs,
// which previously failed because VMInstallTests extends a UI class.
static boolean isTesting = false;
static boolean applies(IPath path) {
if (!isTesting) {
return false;
}
for (int i = 0; i < path.segmentCount(); i++) {
if ("ext".equals(path.segment(i))) {
return !JavaFxLibraryResolver.JFXRT_JAR.equals(path.lastSegment());
}
}
return false;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jdt.launching.ILibraryLocationResolver#getPackageRoot(org.eclipse.core.runtime.IPath)
*/
@Override
public IPath getPackageRoot(IPath libraryPath) {
if (applies(libraryPath)) {
return new Path("src");
}
return Path.EMPTY;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jdt.launching.ILibraryLocationResolver#getSourcePath(org.eclipse.core.runtime.IPath)
*/
@Override
public IPath getSourcePath(IPath libraryPath) {
if (applies(libraryPath)) {
File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/test_resolver_src.zip"));
if (file.isFile()) {
return new Path(file.getAbsolutePath());
}
}
return Path.EMPTY;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jdt.launching.ILibraryLocationResolver#getJavadocLocation(org.eclipse.core.runtime.IPath)
*/
@Override
public URL getJavadocLocation(IPath libraryPath) {
if (applies(libraryPath)) {
File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/test_resolver_javadoc.zip"));
if (file.isFile()) {
try {
return URIUtil.toURL(file.toURI());
}
catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
return null;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jdt.launching.ILibraryLocationResolver#getIndexLocation(org.eclipse.core.runtime.IPath)
*/
@Override
public URL getIndexLocation(IPath libraryPath) {
if (applies(libraryPath)) {
File file = JavaTestPlugin.getDefault().getFileInPlugin(new Path("testresources/test_resolver_index.index"));
if (file.isFile()) {
try {
return URIUtil.toURL(file.toURI());
}
catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
return null;
}
}