refactor: move JavacConfigProvider to 'javac.config' package

This commit is contained in:
Akash Yadav
2023-02-22 20:36:01 +05:30
parent eeaed54edc
commit 52a75f0c15
14 changed files with 43 additions and 25 deletions
@@ -17,11 +17,11 @@
package com.itsaky.androidide.lsp.java.compiler;
import static com.itsaky.androidide.config.JavacConfigProvider.PROP_ANDROIDIDE_JAVA_HOME;
import static com.itsaky.androidide.config.JavacConfigProvider.disableModules;
import static com.itsaky.androidide.config.JavacConfigProvider.enableModules;
import static com.itsaky.androidide.config.JavacConfigProvider.setLatestSourceVersion;
import static com.itsaky.androidide.config.JavacConfigProvider.setLatestSupportedSourceVersion;
import static com.itsaky.androidide.javac.config.JavacConfigProvider.PROP_ANDROIDIDE_JAVA_HOME;
import static com.itsaky.androidide.javac.config.JavacConfigProvider.disableModules;
import static com.itsaky.androidide.javac.config.JavacConfigProvider.enableModules;
import static com.itsaky.androidide.javac.config.JavacConfigProvider.setLatestSourceVersion;
import static com.itsaky.androidide.javac.config.JavacConfigProvider.setLatestSupportedSourceVersion;
import static com.itsaky.androidide.utils.Environment.JAVA_HOME;
import androidx.annotation.NonNull;
@@ -23,7 +23,7 @@ import static java.util.Collections.emptySet;
import androidx.annotation.NonNull;
import com.blankj.utilcode.util.CloseUtils;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import com.itsaky.androidide.javac.services.fs.AndroidFsProviderImpl;
import com.itsaky.androidide.projects.api.AndroidModule;
import com.itsaky.androidide.projects.api.ModuleProject;
@@ -1,4 +1,21 @@
package com.itsaky.androidide.config;
/*
* This file is part of AndroidIDE.
*
* AndroidIDE is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AndroidIDE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
package com.itsaky.androidide.javac.config;
import jdkx.lang.model.SourceVersion;
import java.lang.reflect.Field;
@@ -25,6 +25,8 @@
package javac.internal.jimage;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import java.io.IOException;
import java.io.UncheckedIOException;
import java.nio.file.Path;
@@ -47,7 +49,7 @@ public class ImageReaderFactory {
private ImageReaderFactory() {}
// AndroidIDE changed: Allow overriding java home.
private static final String JAVA_HOME = com.itsaky.androidide.config.JavacConfigProvider.getJavaHome();
private static final String JAVA_HOME = JavacConfigProvider.getJavaHome();
private static final Path BOOT_MODULES_JIMAGE =
Paths.get(JAVA_HOME, "lib", "modules");
@@ -37,7 +37,7 @@ import java.security.PrivilegedAction;
import javac.internal.jimage.ImageReader;
import javac.internal.jimage.ImageReader.Node;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
/**
* @implNote This class needs to maintain JDK 8 source compatibility.
@@ -25,10 +25,7 @@
package jdkx.lang.model;
import java.util.Collections;
import java.util.Set;
import java.util.HashSet;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
/**
* Source versions of the Java programming language.
@@ -40,7 +40,7 @@ import java.util.Set;
import jdkx.lang.model.SourceVersion;
import jdkx.tools.*;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import openjdk.source.util.JavacTask;
import openjdk.tools.javac.file.JavacFileManager;
import openjdk.tools.javac.main.Arguments;
@@ -30,7 +30,7 @@ import java.util.*;
import jdkx.lang.model.SourceVersion;
import static jdkx.lang.model.SourceVersion.*;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import openjdk.tools.javac.jvm.Target;
import openjdk.tools.javac.resources.CompilerProperties.Errors;
import openjdk.tools.javac.resources.CompilerProperties.Fragments;
@@ -47,7 +47,7 @@ import java.util.Set;
import jdkx.tools.FileObject;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import com.itsaky.androidide.zipfs2.AndroidFsProvider;
import openjdk.tools.javac.file.RelativePath.RelativeDirectory;
import openjdk.tools.javac.util.Context;
@@ -77,7 +77,7 @@ import jdkx.tools.StandardJavaFileManager;
import jdkx.tools.StandardJavaFileManager.PathFactory;
import jdkx.tools.StandardLocation;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import openjdk.tools.javac.code.Lint;
import openjdk.tools.javac.code.Lint.LintCategory;
@@ -25,6 +25,8 @@
package openjdk.tools.javac.platform;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URI;
@@ -49,13 +51,11 @@ import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import jdkx.annotation.processing.Processor;
import jdkx.tools.ForwardingJavaFileObject;
import jdkx.tools.JavaFileManager;
import jdkx.tools.JavaFileManager.Location;
import jdkx.tools.JavaFileObject;
import jdkx.tools.JavaFileObject.Kind;
import jdkx.tools.StandardJavaFileManager;
@@ -395,7 +395,7 @@ public class JDKPlatformProvider implements PlatformProvider {
static Path findCtSym() {
// AndroidIDE changed: Allow overriding java home.
String javaHome = com.itsaky.androidide.config.JavacConfigProvider.getJavaHome();
String javaHome = JavacConfigProvider.getJavaHome();
Path file = Paths.get(javaHome);
// file == ${jdk.home}
for (String name : symbolFileLocation)
@@ -62,14 +62,12 @@ import jdkx.tools.StandardJavaFileManager;
import jdkx.tools.StandardLocation;
import jdkx.tools.ToolProvider;
import com.itsaky.androidide.config.JavacConfigProvider;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import openjdk.tools.javac.file.JavacFileManager;
import openjdk.tools.javac.platform.JDKPlatformProvider;
import openjdk.tools.jdeprscan.scan.Scan;
import static java.util.stream.Collectors.*;
import jdkx.lang.model.element.PackageElement;
import jdkx.lang.model.element.TypeElement;
@@ -28,6 +28,8 @@ package openjdk.tools.jdeps;
import static openjdk.tools.jdeps.Module.trace;
import static java.util.stream.Collectors.*;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import openjdk.tools.classfile.Dependency;
import java.io.BufferedInputStream;
@@ -305,7 +307,7 @@ public class JdepsConfiguration implements AutoCloseable {
static class SystemModuleFinder implements ModuleFinder {
// AndroidIDE changed: Allow overriding java home.
private static final String JAVA_HOME = com.itsaky.androidide.config.JavacConfigProvider.getJavaHome();
private static final String JAVA_HOME = JavacConfigProvider.getJavaHome();
private final FileSystem fileSystem;
private final Path root;
@@ -30,6 +30,8 @@ import static openjdk.tools.jdeps.Analyzer.Type.*;
import static openjdk.tools.jdeps.JdepsWriter.*;
import static java.util.stream.Collectors.*;
import com.itsaky.androidide.javac.config.JavacConfigProvider;
import java.io.IOException;
import java.io.PrintWriter;
import java.lang.module.ResolutionException;
@@ -1244,7 +1246,7 @@ class JdepsTask {
Pattern includePattern;
boolean inverse = false;
boolean compileTimeView = false;
String systemModulePath = com.itsaky.androidide.config.JavacConfigProvider.getJavaHome();
String systemModulePath = JavacConfigProvider.getJavaHome();
String upgradeModulePath;
String modulePath;
Set<String> rootModules = new HashSet<>();