diff --git a/java_indexer/lib/gradle-tooling-api-4.2.jar b/java_indexer/lib/gradle-tooling-api-4.2.jar deleted file mode 100644 index 29f98473..00000000 Binary files a/java_indexer/lib/gradle-tooling-api-4.2.jar and /dev/null differ diff --git a/java_indexer/lib/gradle-tooling-api-6.7.1.jar b/java_indexer/lib/gradle-tooling-api-6.7.1.jar new file mode 100644 index 00000000..b7e77b27 Binary files /dev/null and b/java_indexer/lib/gradle-tooling-api-6.7.1.jar differ diff --git a/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar b/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar deleted file mode 100644 index ff461981..00000000 Binary files a/java_indexer/lib/org.eclipse.core.commands-3.9.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar b/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar new file mode 100644 index 00000000..d6774a9b Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.commands-3.9.800.jar differ diff --git a/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar b/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar deleted file mode 100644 index 26db7fae..00000000 Binary files a/java_indexer/lib/org.eclipse.core.contenttype-3.7.400.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar b/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar new file mode 100644 index 00000000..21ff456c Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.contenttype-3.7.800.jar differ diff --git a/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar b/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar deleted file mode 100644 index cd8de158..00000000 Binary files a/java_indexer/lib/org.eclipse.core.expressions-3.6.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar b/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar new file mode 100644 index 00000000..c43c3792 Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.expressions-3.7.0.jar differ diff --git a/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar b/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar deleted file mode 100644 index e03e2bf9..00000000 Binary files a/java_indexer/lib/org.eclipse.core.filesystem-1.7.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar b/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar new file mode 100644 index 00000000..7a5f80e8 Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.filesystem-1.7.700.jar differ diff --git a/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar b/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar new file mode 100644 index 00000000..293a9acc Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.jobs-3.10.1000.jar differ diff --git a/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar b/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar deleted file mode 100644 index a729c09e..00000000 Binary files a/java_indexer/lib/org.eclipse.core.jobs-3.10.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar b/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar deleted file mode 100644 index b0050ff5..00000000 Binary files a/java_indexer/lib/org.eclipse.core.resources-3.13.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar b/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar new file mode 100644 index 00000000..2289aa9a Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.resources-3.13.900.jar differ diff --git a/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar b/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar deleted file mode 100644 index 743fbdd1..00000000 Binary files a/java_indexer/lib/org.eclipse.core.runtime-3.16.0.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar b/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar new file mode 100644 index 00000000..e373adcc Binary files /dev/null and b/java_indexer/lib/org.eclipse.core.runtime-3.20.0.jar differ diff --git a/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar b/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar deleted file mode 100644 index acb206c3..00000000 Binary files a/java_indexer/lib/org.eclipse.equinox.app-1.4.300.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar b/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar new file mode 100644 index 00000000..cb455ab0 Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.app-1.5.0.jar differ diff --git a/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar b/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar deleted file mode 100644 index 3a4d8083..00000000 Binary files a/java_indexer/lib/org.eclipse.equinox.common-3.10.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar b/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar new file mode 100644 index 00000000..fc5829c7 Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.common-3.14.0.jar differ diff --git a/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar b/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar deleted file mode 100644 index 2bd881a6..00000000 Binary files a/java_indexer/lib/org.eclipse.equinox.preferences-3.7.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar b/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar new file mode 100644 index 00000000..4b8ce6c7 Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.preferences-3.8.100.jar differ diff --git a/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar b/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar new file mode 100644 index 00000000..6a32c8d3 Binary files /dev/null and b/java_indexer/lib/org.eclipse.equinox.registry-3.10.0.jar differ diff --git a/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar b/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar deleted file mode 100644 index 9295e0a6..00000000 Binary files a/java_indexer/lib/org.eclipse.equinox.registry-3.8.500.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar b/java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar similarity index 57% rename from java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar rename to java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar index 2b7abbe8..589117ff 100644 Binary files a/java_indexer/lib/org.eclipse.jdt.core-3.19.0.jar and b/java_indexer/lib/org.eclipse.jdt.core-3.24.0.jar differ diff --git a/java_indexer/lib/org.eclipse.osgi-3.15.0.jar b/java_indexer/lib/org.eclipse.osgi-3.15.0.jar deleted file mode 100644 index 262e662f..00000000 Binary files a/java_indexer/lib/org.eclipse.osgi-3.15.0.jar and /dev/null differ diff --git a/java_indexer/lib/org.eclipse.osgi-3.16.100.jar b/java_indexer/lib/org.eclipse.osgi-3.16.100.jar new file mode 100644 index 00000000..600e205c Binary files /dev/null and b/java_indexer/lib/org.eclipse.osgi-3.16.100.jar differ diff --git a/java_indexer/lib/org.eclipse.text-3.10.400.jar b/java_indexer/lib/org.eclipse.text-3.10.400.jar new file mode 100644 index 00000000..8b124edc Binary files /dev/null and b/java_indexer/lib/org.eclipse.text-3.10.400.jar differ diff --git a/java_indexer/lib/org.eclipse.text-3.9.0.jar b/java_indexer/lib/org.eclipse.text-3.9.0.jar deleted file mode 100644 index f26216bb..00000000 Binary files a/java_indexer/lib/org.eclipse.text-3.9.0.jar and /dev/null differ diff --git a/java_indexer/lib/slf4j-api-1.7.10.jar b/java_indexer/lib/slf4j-api-1.7.10.jar deleted file mode 100644 index 744e9ec5..00000000 Binary files a/java_indexer/lib/slf4j-api-1.7.10.jar and /dev/null differ diff --git a/java_indexer/lib/slf4j-api-1.7.28.jar b/java_indexer/lib/slf4j-api-1.7.28.jar new file mode 100644 index 00000000..94e79025 Binary files /dev/null and b/java_indexer/lib/slf4j-api-1.7.28.jar differ diff --git a/java_indexer/lib/slf4j-simple-1.7.10.jar b/java_indexer/lib/slf4j-simple-1.7.10.jar deleted file mode 100644 index b40be298..00000000 Binary files a/java_indexer/lib/slf4j-simple-1.7.10.jar and /dev/null differ diff --git a/java_indexer/lib/slf4j-simple-1.7.30.jar b/java_indexer/lib/slf4j-simple-1.7.30.jar new file mode 100644 index 00000000..6debaa9d Binary files /dev/null and b/java_indexer/lib/slf4j-simple-1.7.30.jar differ diff --git a/java_indexer/pom.xml b/java_indexer/pom.xml index e06f8926..e0ee2286 100644 --- a/java_indexer/pom.xml +++ b/java_indexer/pom.xml @@ -28,12 +28,12 @@ mvnrepository mvnrepository - http://www.mvnrepository.com + https://www.mvnrepository.com repo_gradle repo_gradle - http://repo.gradle.org/gradle/libs-releases-local + https://repo.gradle.org/gradle/libs-releases-local @@ -41,121 +41,121 @@ org.gradle gradle-tooling-api - 4.2 + 6.7.1 system - ${basedir}/lib/gradle-tooling-api-4.2.jar + ${basedir}/lib/gradle-tooling-api-6.7.1.jar org.eclipse.core org.eclipse.core.commands - 3.9.500 + 3.9.800 system - ${basedir}/lib/org.eclipse.core.commands-3.9.500.jar + ${basedir}/lib/org.eclipse.core.commands-3.9.800.jar org.eclipse.core org.eclipse.core.contenttype - 3.7.400 + 3.7.800 system - ${basedir}/lib/org.eclipse.core.contenttype-3.7.400.jar + ${basedir}/lib/org.eclipse.core.contenttype-3.7.800.jar org.eclipse.core org.eclipse.core.expressions - 3.6.500 + 3.7.0 system - ${basedir}/lib/org.eclipse.core.expressions-3.6.500.jar + ${basedir}/lib/org.eclipse.core.expressions-3.7.0.jar org.eclipse.core org.eclipse.core.filesystem 1.7.500 system - ${basedir}/lib/org.eclipse.core.filesystem-1.7.500.jar + ${basedir}/lib/org.eclipse.core.filesystem-1.7.700.jar org.eclipse.core org.eclipse.core.jobs - 3.10.500 + 3.10.1000 system - ${basedir}/lib/org.eclipse.core.jobs-3.10.500.jar + ${basedir}/lib/org.eclipse.core.jobs-3.10.1000.jar org.eclipse.core org.eclipse.core.resources - 3.13.500 + 3.13.900 system - ${basedir}/lib/org.eclipse.core.resources-3.13.500.jar + ${basedir}/lib/org.eclipse.core.resources-3.13.900.jar org.eclipse.core org.eclipse.core.runtime - 3.16.0 + 3.20.0 system - ${basedir}/lib/org.eclipse.core.runtime-3.16.0.jar + ${basedir}/lib/org.eclipse.core.runtime-3.20.0.jar org.eclipse.equinox org.eclipse.equinox.app - 1.4.300 + 1.5.0 system - ${basedir}/lib/org.eclipse.equinox.app-1.4.300.jar + ${basedir}/lib/org.eclipse.equinox.app-1.5.0.jar org.eclipse.equinox org.eclipse.equinox.common - 3.10.500 + 3.14.0 system - ${basedir}/lib/org.eclipse.equinox.common-3.10.500.jar + ${basedir}/lib/org.eclipse.equinox.common-3.14.0.jar org.eclipse.equinox org.eclipse.equinox.preferences - 3.7.500 + 3.8.100 system - ${basedir}/lib/org.eclipse.equinox.preferences-3.7.500.jar + ${basedir}/lib/org.eclipse.equinox.preferences-3.8.100.jar org.eclipse.equinox org.eclipse.equinox.registry - 3.8.500 + 3.10.0 system - ${basedir}/lib/org.eclipse.equinox.registry-3.8.500.jar + ${basedir}/lib/org.eclipse.equinox.registry-3.10.0.jar org.eclipse.jdt org.eclipse.jdt.core - 3.19.0 + 3.24.0 system - ${basedir}/lib/org.eclipse.jdt.core-3.19.0.jar + ${basedir}/lib/org.eclipse.jdt.core-3.24.0.jar org.eclipse org.eclipse.osgi - 3.15.0 + 3.16.100 system - ${basedir}/lib/org.eclipse.osgi-3.15.0.jar + ${basedir}/lib/org.eclipse.osgi-3.16.100.jar org.eclipse org.eclipse.text - 3.9.0 + 3.10.400 system - ${basedir}/lib/org.eclipse.text-3.9.0.jar + ${basedir}/lib/org.eclipse.text-3.10.400.jar org.slf4j slf4j-api - 1.7.10 + 1.7.28 system - ${basedir}/lib/slf4j-api-1.7.10.jar + ${basedir}/lib/slf4j-api-1.7.28.jar org.slf4j slf4j-simple - 1.7.10 + 1.7.30 system - ${basedir}/lib/slf4j-simple-1.7.10.jar + ${basedir}/lib/slf4j-simple-1.7.30.jar diff --git a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java index 0898a778..3d34bbad 100644 --- a/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java +++ b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java @@ -410,7 +410,7 @@ public abstract class AstVisitor extends ASTVisitor { DeclName symbolName = DeclName.unsolved(); IBinding binding = node.resolveBinding(); - if (!binding.isRecovered()) + if (binding != null && !binding.isRecovered()) { if (binding instanceof IPackageBinding) { diff --git a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java index 95618a8b..ad7352e4 100644 --- a/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java +++ b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java @@ -58,7 +58,7 @@ public class JavaIndexer Path path = Paths.get(filePath); - ASTParser parser = ASTParser.newParser(AST.JLS12); + ASTParser parser = ASTParser.newParser(AST.JLS_Latest); parser.setResolveBindings( true); // solve "bindings" like the declaration of the type used in a var decl @@ -73,7 +73,7 @@ public class JavaIndexer astVisitorClient.logInfo("using language standard " + convertedLanguageStandard); Hashtable options = JavaCore.getOptions(); - options.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.ENABLED); + options.put(JavaCore.COMPILER_PB_ENABLE_PREVIEW_FEATURES, JavaCore.DISABLED); options.put(JavaCore.COMPILER_PB_REPORT_PREVIEW_FEATURES, JavaCore.IGNORE); options.put(JavaCore.COMPILER_SOURCE, convertedLanguageStandard); options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, convertedLanguageStandard); @@ -164,7 +164,7 @@ public class JavaIndexer { String packageName = ""; - ASTParser parser = ASTParser.newParser(AST.JLS12); + ASTParser parser = ASTParser.newParser(AST.JLS_Latest); parser.setKind( ASTParser.K_COMPILATION_UNIT); // specify to parse the entire compilation unit parser.setSource(fileContent.toCharArray()); @@ -209,8 +209,14 @@ public class JavaIndexer case "11": return JavaCore.VERSION_11; case "12": - default: return JavaCore.VERSION_12; + case "13": + return JavaCore.VERSION_13; + case "14": + return JavaCore.VERSION_14; + case "15": + default: + return JavaCore.VERSION_15; } } diff --git a/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp b/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp index 876e5937..98248da2 100644 --- a/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp +++ b/src/lib/settings/source_group/component/java/SourceGroupSettingsWithJavaStandard.cpp @@ -4,7 +4,7 @@ std::wstring SourceGroupSettingsWithJavaStandard::getDefaultJavaStandardStatic() { - return L"12"; + return L"15"; } std::wstring SourceGroupSettingsWithJavaStandard::getJavaStandard() const @@ -23,7 +23,22 @@ void SourceGroupSettingsWithJavaStandard::setJavaStandard(const std::wstring& st std::vector SourceGroupSettingsWithJavaStandard::getAvailableJavaStandards() const { - return {L"12", L"11", L"10", L"9", L"8", L"7", L"6", L"5", L"4", L"3", L"2", L"1"}; + return { + L"15", + L"14", + L"13", + L"12", + L"11", + L"10", + L"9", + L"8", + L"7", + L"6", + L"5", + L"4", + L"3", + L"2", + L"1"}; } bool SourceGroupSettingsWithJavaStandard::equals(const SourceGroupSettingsBase* other) const diff --git a/src/lib/utility/logging/ConsoleLogger.cpp b/src/lib/utility/logging/ConsoleLogger.cpp index 84d8bc4d..08408102 100644 --- a/src/lib/utility/logging/ConsoleLogger.cpp +++ b/src/lib/utility/logging/ConsoleLogger.cpp @@ -2,6 +2,8 @@ #include +#include "utilityString.h" + ConsoleLogger::ConsoleLogger(): Logger("ConsoleLogger") {} void ConsoleLogger::logInfo(const LogMessage& message) @@ -29,6 +31,5 @@ void ConsoleLogger::logMessage(const std::string& type, const LogMessage& messag << "() | "; } - std::cout << type << ": "; - std::wcout << message.message << std::endl; + std::cout << type << ": " << utility::encodeToUtf8(message.message) << std::endl; } diff --git a/src/lib_java/utility/utilityJava.cpp b/src/lib_java/utility/utilityJava.cpp index 87214e2e..2ea12a83 100644 --- a/src/lib_java/utility/utilityJava.cpp +++ b/src/lib_java/utility/utilityJava.cpp @@ -18,24 +18,24 @@ namespace utility std::vector getRequiredJarNames() { return { - L"gradle-tooling-api-4.2.jar", + L"gradle-tooling-api-6.7.1.jar", L"java-indexer.jar", - L"org.eclipse.core.commands-3.9.500.jar", - L"org.eclipse.core.contenttype-3.7.400.jar", - L"org.eclipse.core.expressions-3.6.500.jar", - L"org.eclipse.core.filesystem-1.7.500.jar", - L"org.eclipse.core.jobs-3.10.500.jar", - L"org.eclipse.core.resources-3.13.500.jar", - L"org.eclipse.core.runtime-3.16.0.jar", - L"org.eclipse.equinox.app-1.4.300.jar", - L"org.eclipse.equinox.common-3.10.500.jar", - L"org.eclipse.equinox.preferences-3.7.500.jar", - L"org.eclipse.equinox.registry-3.8.500.jar", - L"org.eclipse.jdt.core-3.19.0.jar", - L"org.eclipse.osgi-3.15.0.jar", - L"org.eclipse.text-3.9.0.jar", - L"slf4j-api-1.7.10.jar", - L"slf4j-simple-1.7.10.jar"}; + L"org.eclipse.core.commands-3.9.800.jar", + L"org.eclipse.core.contenttype-3.7.800.jar", + L"org.eclipse.core.expressions-3.7.0.jar", + L"org.eclipse.core.filesystem-1.7.700.jar", + L"org.eclipse.core.jobs-3.10.1000.jar", + L"org.eclipse.core.resources-3.13.900.jar", + L"org.eclipse.core.runtime-3.20.0.jar", + L"org.eclipse.equinox.app-1.5.0.jar", + L"org.eclipse.equinox.common-3.14.0.jar", + L"org.eclipse.equinox.preferences-3.8.100.jar", + L"org.eclipse.equinox.registry-3.10.0.jar", + L"org.eclipse.jdt.core-3.24.0.jar", + L"org.eclipse.osgi-3.16.100.jar", + L"org.eclipse.text-3.10.400.jar", + L"slf4j-api-1.7.28.jar", + L"slf4j-simple-1.7.30.jar"}; } std::string prepareJavaEnvironment() diff --git a/src/test/JavaParserTestSuite.cpp b/src/test/JavaParserTestSuite.cpp index 39b1a16a..45781a4f 100644 --- a/src/test/JavaParserTestSuite.cpp +++ b/src/test/JavaParserTestSuite.cpp @@ -1655,7 +1655,7 @@ TEST_CASE("java parser finds bound type of type parameter") client->typeUses, L"A.T -> java.lang.Void <1:27 1:30>")); } -TEST_CASE("java parsersupports java 12 switch expression") +TEST_CASE("java parsersupports java 14 switch expression") { std::shared_ptr client = parseCode( "package foo;\n"