Skip to content

Commit

Permalink
Using reflection to obtain JavaPlatform for maven projects
Browse files Browse the repository at this point in the history
  • Loading branch information
baratynskiy authored and SerVB committed Jul 23, 2019
1 parent 7b9b0db commit e8df3b6
Show file tree
Hide file tree
Showing 16 changed files with 23 additions and 1,923 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ import org.jetbrains.kotlin.model.KotlinEnvironment
import org.jetbrains.kotlin.projectsextensions.j2se.classpath.J2SEExtendedClassPathProvider
import org.jetbrains.kotlin.project.KotlinSources
import org.jetbrains.kotlin.projectsextensions.maven.classpath.MavenExtendedClassPath
import org.jetbrains.kotlin.projectsextensions.maven.classpath.MavenClassPathProviderImpl
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.lang.java.JavaEnvironment
import org.jetbrains.kotlin.utils.ProjectUtils
Expand Down Expand Up @@ -142,10 +141,6 @@ object KotlinProjectHelper {
if (this.javaClass.name == "org.netbeans.modules.java.j2seproject.J2SEProject") {
extendedClassPaths.put(this, J2SEExtendedClassPathProvider(this))
} else if (this.javaClass.name == "org.netbeans.modules.maven.NbMavenProjectImpl") {
val impl = this.lookup.lookup(MavenClassPathProviderImpl::class.java)
if (impl != null) {
impl.updateClassPath()
}
extendedClassPaths.put(this, MavenExtendedClassPath(this))
}
this.updateFullClassPath()
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

import com.google.common.collect.Lists;
import java.io.File;
import java.lang.reflect.Method;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
Expand All @@ -31,9 +32,10 @@
import org.jetbrains.kotlin.log.KotlinLogger;
import org.jetbrains.kotlin.projectsextensions.ClassPathExtender;
import org.jetbrains.kotlin.projectsextensions.maven.MavenHelper;
import org.jetbrains.kotlin.projectsextensions.maven.classpath.classpath.ClassPathProviderImpl;
import org.netbeans.api.java.classpath.ClassPath;
import org.netbeans.api.java.platform.JavaPlatform;
import org.netbeans.api.project.Project;
import org.netbeans.spi.java.classpath.ClassPathProvider;
import org.netbeans.spi.java.classpath.support.ClassPathSupport;
import org.openide.filesystems.FileObject;
import org.openide.filesystems.FileUtil;
Expand Down Expand Up @@ -151,6 +153,19 @@ private List<String> getSystemClasspathElements(Project proj) throws DependencyR
return systemClasspath;
}

private JavaPlatform getJavaPlatform(Project project) {
ClassPathProvider provider = project.getLookup().lookup(ClassPathProvider.class);
if (provider == null) return null;

try {
Method method = provider.getClass().getMethod("getJavaPlatform");
return (JavaPlatform) method.invoke(provider);
} catch (ReflectiveOperationException ex) {
Exceptions.printStackTrace(ex);
return null;
}
}

private List<String> getTestClasspathElements(Project proj) throws DependencyResolutionRequiredException {
MavenProject mavenProj = MavenHelper.getOriginalMavenProject(proj);
if (mavenProj == null) {
Expand All @@ -171,8 +186,12 @@ private void createClasspath() {
execute = getClasspath(getRuntimeClasspathElements(project));
source = getClasspath(getCompileSourceRoots(project));

ClassPathProviderImpl impl = new ClassPathProviderImpl(project);
boot = impl.getJavaPlatform().getBootstrapLibraries();
JavaPlatform javaPlatform = getJavaPlatform(project);
if (javaPlatform != null) {
boot = javaPlatform.getBootstrapLibraries();
} else {
boot = ClassPath.EMPTY;
}

List<String> javaClasspathElements = new ArrayList<>();
javaClasspathElements.addAll(getTestClasspathElements(project));
Expand Down

This file was deleted.

Loading

0 comments on commit e8df3b6

Please sign in to comment.