diff --git a/.gitignore b/.gitignore index fa1307de..457d4da1 100644 --- a/.gitignore +++ b/.gitignore @@ -13,8 +13,7 @@ /bin/test/data/temp.xml /bin/test/data/TestSettings.xml -/java_indexer/bin/ -/java_indexer/lib/ +/java_indexer/target/ /setup/Linux/lib/ diff --git a/java_indexer/build/build.sh b/java_indexer/build/build.sh deleted file mode 100755 index 6173b323..00000000 --- a/java_indexer/build/build.sh +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -# prerequirements: java/bin in path - -ABORT="\033[31mAbort:\033[00m" -SUCCESS="\033[32mSuccess:\033[00m" -INFO="\033[33mInfo:\033[00m" - -# Determine current platform -PLATFORM='unknown' -if [ "$(uname)" == "Darwin" ]; then - PLATFORM='MacOS' -elif [ "$(expr substr $(uname -s) 1 5)" == "Linux" ]; then - PLATFORM='Linux' -elif [ "$(expr substr $(uname -s) 1 10)" == "MINGW32_NT" ]; then - PLATFORM='Windows' -fi - -if [ $PLATFORM == "Windows" ]; then - ORIGINAL_PATH_TO_SCRIPT="${0}" - CLEANED_PATH_TO_SCRIPT="${ORIGINAL_PATH_TO_SCRIPT//\\//}" - ROOT_DIR=`dirname "$CLEANED_PATH_TO_SCRIPT"` -else - ROOT_DIR="$( cd "$( dirname "$0" )" && pwd )" -fi - -ROOT_DIR=$ROOT_DIR/.. - -cd $ROOT_DIR - -mkdir -p classes - -CLASSPATH="" -if [ $PLATFORM == "Windows" ]; then - LIB_DIR="./lib/" - CLASSPATH+=$LIB_DIR"java-symbol-solver-core.jar;" - CLASSPATH+=$LIB_DIR"java-symbol-solver-logic.jar;" - CLASSPATH+=$LIB_DIR"java-symbol-solver-model.jar;" - CLASSPATH+=$LIB_DIR"javaparser-core.jar" -else - CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-core.jar:" - CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-logic.jar:" - CLASSPATH+=$ROOT_DIR"/lib/java-symbol-solver-model.jar:" - CLASSPATH+=$ROOT_DIR"/lib/javaparser-core.jar" -fi - -javac -d ./classes -classpath $CLASSPATH src/com/sourcetrail/*.java - -mkdir -p bin - -cd classes - -jar cvf ../bin/java-indexer.jar com/sourcetrail/*.class - -cd .. - -rm -rf classes diff --git a/setup/jars/windows/java-symbol-solver-core.jar b/java_indexer/lib/java-symbol-solver-core.jar similarity index 94% rename from setup/jars/windows/java-symbol-solver-core.jar rename to java_indexer/lib/java-symbol-solver-core.jar index 5f5d7e18..3478de87 100644 Binary files a/setup/jars/windows/java-symbol-solver-core.jar and b/java_indexer/lib/java-symbol-solver-core.jar differ diff --git a/setup/jars/windows/java-symbol-solver-logic.jar b/java_indexer/lib/java-symbol-solver-logic.jar similarity index 92% rename from setup/jars/windows/java-symbol-solver-logic.jar rename to java_indexer/lib/java-symbol-solver-logic.jar index e660c31a..a9214ac6 100644 Binary files a/setup/jars/windows/java-symbol-solver-logic.jar and b/java_indexer/lib/java-symbol-solver-logic.jar differ diff --git a/setup/jars/windows/java-symbol-solver-model.jar b/java_indexer/lib/java-symbol-solver-model.jar similarity index 88% rename from setup/jars/windows/java-symbol-solver-model.jar rename to java_indexer/lib/java-symbol-solver-model.jar index 5b526bfc..19e98140 100644 Binary files a/setup/jars/windows/java-symbol-solver-model.jar and b/java_indexer/lib/java-symbol-solver-model.jar differ diff --git a/java_indexer/pom.xml b/java_indexer/pom.xml new file mode 100644 index 00000000..03ed75b6 --- /dev/null +++ b/java_indexer/pom.xml @@ -0,0 +1,75 @@ + + 4.0.0 + com.sourcetrail + java-indexer + jar + 1.0 + java_indexer + http://maven.apache.org + + 1.8 + x.x.x + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.2 + + ${java.version} + ${java.version} + + + + + + + + org.dummy + java-symbol-solver-core + ${javasymbolsolver.version} + system + ${project.basedir}/lib/java-symbol-solver-core.jar + + + org.dummy + java-symbol-solver-logic + ${javasymbolsolver.version} + system + ${project.basedir}/lib/java-symbol-solver-logic.jar + + + org.dummy + java-symbol-solver-model + ${javasymbolsolver.version} + system + ${project.basedir}/lib/java-symbol-solver-model.jar + + + com.github.javaparser + javaparser-core + 3.2.4 + compile + + + org.javassist + javassist + 3.19.0-GA + compile + + + com.google.guava + guava + 21.0 + compile + + + com.javaslang + javaslang + 2.0.0-beta + compile + + + diff --git a/java_indexer/src/com/sourcetrail/AccessKind.java b/java_indexer/src/main/java/com/sourcetrail/AccessKind.java similarity index 100% rename from java_indexer/src/com/sourcetrail/AccessKind.java rename to java_indexer/src/main/java/com/sourcetrail/AccessKind.java diff --git a/java_indexer/src/com/sourcetrail/AstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitor.java similarity index 100% rename from java_indexer/src/com/sourcetrail/AstVisitor.java rename to java_indexer/src/main/java/com/sourcetrail/AstVisitor.java diff --git a/java_indexer/src/com/sourcetrail/AstVisitorAdapter.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitorAdapter.java similarity index 100% rename from java_indexer/src/com/sourcetrail/AstVisitorAdapter.java rename to java_indexer/src/main/java/com/sourcetrail/AstVisitorAdapter.java diff --git a/java_indexer/src/com/sourcetrail/AstVisitorClient.java b/java_indexer/src/main/java/com/sourcetrail/AstVisitorClient.java similarity index 100% rename from java_indexer/src/com/sourcetrail/AstVisitorClient.java rename to java_indexer/src/main/java/com/sourcetrail/AstVisitorClient.java diff --git a/java_indexer/src/com/sourcetrail/CallableConstructorDecl.java b/java_indexer/src/main/java/com/sourcetrail/CallableConstructorDecl.java similarity index 100% rename from java_indexer/src/com/sourcetrail/CallableConstructorDecl.java rename to java_indexer/src/main/java/com/sourcetrail/CallableConstructorDecl.java diff --git a/java_indexer/src/com/sourcetrail/CallableDecl.java b/java_indexer/src/main/java/com/sourcetrail/CallableDecl.java similarity index 100% rename from java_indexer/src/com/sourcetrail/CallableDecl.java rename to java_indexer/src/main/java/com/sourcetrail/CallableDecl.java diff --git a/java_indexer/src/com/sourcetrail/CallableMethodDecl.java b/java_indexer/src/main/java/com/sourcetrail/CallableMethodDecl.java similarity index 100% rename from java_indexer/src/com/sourcetrail/CallableMethodDecl.java rename to java_indexer/src/main/java/com/sourcetrail/CallableMethodDecl.java diff --git a/java_indexer/src/com/sourcetrail/DeclContext.java b/java_indexer/src/main/java/com/sourcetrail/DeclContext.java similarity index 100% rename from java_indexer/src/com/sourcetrail/DeclContext.java rename to java_indexer/src/main/java/com/sourcetrail/DeclContext.java diff --git a/java_indexer/src/com/sourcetrail/DefinitionKind.java b/java_indexer/src/main/java/com/sourcetrail/DefinitionKind.java similarity index 100% rename from java_indexer/src/com/sourcetrail/DefinitionKind.java rename to java_indexer/src/main/java/com/sourcetrail/DefinitionKind.java diff --git a/java_indexer/src/com/sourcetrail/FileContent.java b/java_indexer/src/main/java/com/sourcetrail/FileContent.java similarity index 100% rename from java_indexer/src/com/sourcetrail/FileContent.java rename to java_indexer/src/main/java/com/sourcetrail/FileContent.java diff --git a/java_indexer/src/com/sourcetrail/JavaDeclName.java b/java_indexer/src/main/java/com/sourcetrail/JavaDeclName.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaDeclName.java rename to java_indexer/src/main/java/com/sourcetrail/JavaDeclName.java diff --git a/java_indexer/src/com/sourcetrail/JavaIndexer.java b/java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaIndexer.java rename to java_indexer/src/main/java/com/sourcetrail/JavaIndexer.java diff --git a/java_indexer/src/com/sourcetrail/JavaIndexerAstVisitorClient.java b/java_indexer/src/main/java/com/sourcetrail/JavaIndexerAstVisitorClient.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaIndexerAstVisitorClient.java rename to java_indexer/src/main/java/com/sourcetrail/JavaIndexerAstVisitorClient.java diff --git a/java_indexer/src/com/sourcetrail/JavaNameResolver.java b/java_indexer/src/main/java/com/sourcetrail/JavaNameResolver.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaNameResolver.java rename to java_indexer/src/main/java/com/sourcetrail/JavaNameResolver.java diff --git a/java_indexer/src/com/sourcetrail/JavaSymbolSolverDeclNameResolver.java b/java_indexer/src/main/java/com/sourcetrail/JavaSymbolSolverDeclNameResolver.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaSymbolSolverDeclNameResolver.java rename to java_indexer/src/main/java/com/sourcetrail/JavaSymbolSolverDeclNameResolver.java diff --git a/java_indexer/src/com/sourcetrail/JavaSymbolSolverTypeNameResolver.java b/java_indexer/src/main/java/com/sourcetrail/JavaSymbolSolverTypeNameResolver.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaSymbolSolverTypeNameResolver.java rename to java_indexer/src/main/java/com/sourcetrail/JavaSymbolSolverTypeNameResolver.java diff --git a/java_indexer/src/com/sourcetrail/JavaTypeName.java b/java_indexer/src/main/java/com/sourcetrail/JavaTypeName.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaTypeName.java rename to java_indexer/src/main/java/com/sourcetrail/JavaTypeName.java diff --git a/java_indexer/src/com/sourcetrail/JavaparserDeclNameResolver.java b/java_indexer/src/main/java/com/sourcetrail/JavaparserDeclNameResolver.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaparserDeclNameResolver.java rename to java_indexer/src/main/java/com/sourcetrail/JavaparserDeclNameResolver.java diff --git a/java_indexer/src/com/sourcetrail/JavaparserTypeNameResolver.java b/java_indexer/src/main/java/com/sourcetrail/JavaparserTypeNameResolver.java similarity index 100% rename from java_indexer/src/com/sourcetrail/JavaparserTypeNameResolver.java rename to java_indexer/src/main/java/com/sourcetrail/JavaparserTypeNameResolver.java diff --git a/java_indexer/src/com/sourcetrail/ReferenceKind.java b/java_indexer/src/main/java/com/sourcetrail/ReferenceKind.java similarity index 100% rename from java_indexer/src/com/sourcetrail/ReferenceKind.java rename to java_indexer/src/main/java/com/sourcetrail/ReferenceKind.java diff --git a/java_indexer/src/com/sourcetrail/SymbolKind.java b/java_indexer/src/main/java/com/sourcetrail/SymbolKind.java similarity index 100% rename from java_indexer/src/com/sourcetrail/SymbolKind.java rename to java_indexer/src/main/java/com/sourcetrail/SymbolKind.java diff --git a/java_indexer/src/com/sourcetrail/VerboseAstVisitor.java b/java_indexer/src/main/java/com/sourcetrail/VerboseAstVisitor.java similarity index 100% rename from java_indexer/src/com/sourcetrail/VerboseAstVisitor.java rename to java_indexer/src/main/java/com/sourcetrail/VerboseAstVisitor.java diff --git a/script/setup.sh b/script/setup.sh index 5bbda8a3..65968aa8 100755 --- a/script/setup.sh +++ b/script/setup.sh @@ -40,20 +40,6 @@ cp setup/git/git_pre_commit_hook.sh .git/hooks/pre-commit cp setup/git/git_pre_push_hook.sh .git/hooks/pre-push fi -# Copy necessary jars for java indexer -echo -e $INFO "copy jars for java indexer" - -mkdir -p java_indexer/lib - -if [ $PLATFORM == "Windows" ]; then - cp -u -r setup/jars/windows/*.jar java_indexer/lib -elif [ $PLATFORM == "Linux" ]; then - cp -u -r setup/jars/linux/*.jar java_indexer/lib - # what about 32/64 bit? -elif [ $PLATFORM == "MacOS" ]; then - cp -r setup/jars/MacOSX/*.jar java_indexer/lib -fi - # Create Debug and Release folders echo -e $INFO "create build folders" if [ $PLATFORM == "Windows" ]; then diff --git a/script/update_java_indexer.sh b/script/update_java_indexer.sh index 8c8d99f4..7e91272b 100755 --- a/script/update_java_indexer.sh +++ b/script/update_java_indexer.sh @@ -27,13 +27,21 @@ ROOT_DIR=$ROOT_DIR/.. # Enter main directory cd $ROOT_DIR/ +cd java_indexer -echo -e $INFO "build java-indexer" -java_indexer/build/build.sh +echo "cleaning and building java_indexer.jar" +mvn clean package dependency:copy-dependencies +cd ../ echo -e $INFO "copy jars" mkdir -p bin/app/data/java rm -rf bin/app/data/java/* -cp -r java_indexer/lib/*.jar bin/app/data/java -cp -r java_indexer/bin/*.jar bin/app/data/java +cp -r java_indexer/target/java-indexer-1.0.jar bin/app/data/java/java-indexer.jar +cp -r java_indexer/target/dependency/guava*.jar bin/app/data/java +cp -r java_indexer/target/dependency/javaparser-core*.jar bin/app/data/java +cp -r java_indexer/target/dependency/javaslang*.jar bin/app/data/java +cp -r java_indexer/target/dependency/javassist*.jar bin/app/data/java +cp -r java_indexer/target/dependency/java-symbol-solver-core-x.x.x.jar bin/app/data/java/java-symbol-solver-core.jar +cp -r java_indexer/target/dependency/java-symbol-solver-logic-x.x.x.jar bin/app/data/java/java-symbol-solver-logic.jar +cp -r java_indexer/target/dependency/java-symbol-solver-model-x.x.x.jar bin/app/data/java/java-symbol-solver-model.jar diff --git a/setup/jars/MacOSX/guava-21.0.jar b/setup/jars/MacOSX/guava-21.0.jar deleted file mode 100644 index 06181959..00000000 Binary files a/setup/jars/MacOSX/guava-21.0.jar and /dev/null differ diff --git a/setup/jars/MacOSX/java-symbol-solver-core.jar b/setup/jars/MacOSX/java-symbol-solver-core.jar deleted file mode 100644 index a2a94a56..00000000 Binary files a/setup/jars/MacOSX/java-symbol-solver-core.jar and /dev/null differ diff --git a/setup/jars/MacOSX/java-symbol-solver-logic.jar b/setup/jars/MacOSX/java-symbol-solver-logic.jar deleted file mode 100644 index 845e3a0f..00000000 Binary files a/setup/jars/MacOSX/java-symbol-solver-logic.jar and /dev/null differ diff --git a/setup/jars/MacOSX/java-symbol-solver-model.jar b/setup/jars/MacOSX/java-symbol-solver-model.jar deleted file mode 100644 index 0450f4cd..00000000 Binary files a/setup/jars/MacOSX/java-symbol-solver-model.jar and /dev/null differ diff --git a/setup/jars/MacOSX/javaparser-core.jar b/setup/jars/MacOSX/javaparser-core.jar deleted file mode 100644 index 7c3f58fa..00000000 Binary files a/setup/jars/MacOSX/javaparser-core.jar and /dev/null differ diff --git a/setup/jars/MacOSX/javaslang-2.0.3.jar b/setup/jars/MacOSX/javaslang-2.0.3.jar deleted file mode 100644 index d7808ea9..00000000 Binary files a/setup/jars/MacOSX/javaslang-2.0.3.jar and /dev/null differ diff --git a/setup/jars/MacOSX/javassist-3.19.0-GA.jar b/setup/jars/MacOSX/javassist-3.19.0-GA.jar deleted file mode 100644 index 7ac42641..00000000 Binary files a/setup/jars/MacOSX/javassist-3.19.0-GA.jar and /dev/null differ diff --git a/setup/jars/linux/guava-21.0.jar b/setup/jars/linux/guava-21.0.jar deleted file mode 100644 index 06181959..00000000 Binary files a/setup/jars/linux/guava-21.0.jar and /dev/null differ diff --git a/setup/jars/linux/java-symbol-solver-core.jar b/setup/jars/linux/java-symbol-solver-core.jar deleted file mode 100644 index c36d6b9f..00000000 Binary files a/setup/jars/linux/java-symbol-solver-core.jar and /dev/null differ diff --git a/setup/jars/linux/java-symbol-solver-logic.jar b/setup/jars/linux/java-symbol-solver-logic.jar deleted file mode 100644 index c61407eb..00000000 Binary files a/setup/jars/linux/java-symbol-solver-logic.jar and /dev/null differ diff --git a/setup/jars/linux/java-symbol-solver-model.jar b/setup/jars/linux/java-symbol-solver-model.jar deleted file mode 100644 index 90d66354..00000000 Binary files a/setup/jars/linux/java-symbol-solver-model.jar and /dev/null differ diff --git a/setup/jars/linux/javaparser-core.jar b/setup/jars/linux/javaparser-core.jar deleted file mode 100644 index 3af1468d..00000000 Binary files a/setup/jars/linux/javaparser-core.jar and /dev/null differ diff --git a/setup/jars/linux/javaslang-2.0.3.jar b/setup/jars/linux/javaslang-2.0.3.jar deleted file mode 100644 index d7808ea9..00000000 Binary files a/setup/jars/linux/javaslang-2.0.3.jar and /dev/null differ diff --git a/setup/jars/linux/javassist-3.19.0-GA.jar b/setup/jars/linux/javassist-3.19.0-GA.jar deleted file mode 100644 index 7ac42641..00000000 Binary files a/setup/jars/linux/javassist-3.19.0-GA.jar and /dev/null differ diff --git a/setup/jars/windows/guava-21.0.jar b/setup/jars/windows/guava-21.0.jar deleted file mode 100644 index 06181959..00000000 Binary files a/setup/jars/windows/guava-21.0.jar and /dev/null differ diff --git a/setup/jars/windows/javaparser-core.jar b/setup/jars/windows/javaparser-core.jar deleted file mode 100644 index aca78068..00000000 Binary files a/setup/jars/windows/javaparser-core.jar and /dev/null differ diff --git a/setup/jars/windows/javaslang-2.0.3.jar b/setup/jars/windows/javaslang-2.0.3.jar deleted file mode 100644 index d7808ea9..00000000 Binary files a/setup/jars/windows/javaslang-2.0.3.jar and /dev/null differ diff --git a/setup/jars/windows/javassist-3.19.0-GA.jar b/setup/jars/windows/javassist-3.19.0-GA.jar deleted file mode 100644 index 7ac42641..00000000 Binary files a/setup/jars/windows/javassist-3.19.0-GA.jar and /dev/null differ diff --git a/src/lib_java/data/parser/java/JavaParser.cpp b/src/lib_java/data/parser/java/JavaParser.cpp index a391f502..a70fb96a 100644 --- a/src/lib_java/data/parser/java/JavaParser.cpp +++ b/src/lib_java/data/parser/java/JavaParser.cpp @@ -13,6 +13,21 @@ #include "utility/ResourcePaths.h" #include "utility/utilityString.h" +std::vector JavaParser::getRequiredJarNames() +{ + std::vector jarNames = { + "guava-21.0.jar", + "java-indexer.jar", + "javaparser-core-3.2.4.jar", + "javaslang-2.0.3.jar", + "javassist-3.19.0-GA.jar", + "java-symbol-solver-core.jar", + "java-symbol-solver-logic.jar", + "java-symbol-solver-model.jar" + }; + return jarNames; +} + std::string JavaParser::prepareJavaEnvironment() { std::string errorString; @@ -24,15 +39,22 @@ std::string JavaParser::prepareJavaEnvironment() #else const std::string separator = ":"; #endif + + std::string classPath = ""; + { + const std::vector jarNames = getRequiredJarNames(); + for (size_t i = 0; i < jarNames.size(); i++) + { + if (i != 0) + { + classPath += separator; + } + classPath += ResourcePaths::getJavaPath().str() + jarNames[i]; + } + } + JavaEnvironmentFactory::createInstance( - ResourcePaths::getJavaPath().str() + "guava-21.0.jar" + separator + - ResourcePaths::getJavaPath().str() + "java-indexer.jar" + separator + - ResourcePaths::getJavaPath().str() + "javaparser-core.jar" + separator + - ResourcePaths::getJavaPath().str() + "javaslang-2.0.3.jar" + separator + - ResourcePaths::getJavaPath().str() + "javassist-3.19.0-GA.jar" + separator + - ResourcePaths::getJavaPath().str() + "java-symbol-solver-core.jar" + separator + - ResourcePaths::getJavaPath().str() + "java-symbol-solver-logic.jar" + separator + - ResourcePaths::getJavaPath().str() + "java-symbol-solver-model.jar", + classPath, errorString ); } diff --git a/src/lib_java/data/parser/java/JavaParser.h b/src/lib_java/data/parser/java/JavaParser.h index 59b9684a..0d39556d 100644 --- a/src/lib_java/data/parser/java/JavaParser.h +++ b/src/lib_java/data/parser/java/JavaParser.h @@ -31,6 +31,7 @@ class FileRegister; class JavaParser: public Parser { public: + static std::vector getRequiredJarNames(); // returns: error message static std::string prepareJavaEnvironment(); static void clearCaches(); diff --git a/src/test/JavaParserTestSuite.h b/src/test/JavaParserTestSuite.h index ab16c03c..09a58ee6 100644 --- a/src/test/JavaParserTestSuite.h +++ b/src/test/JavaParserTestSuite.h @@ -814,15 +814,21 @@ private: #else const std::string separator = ":"; #endif + std::string classPath = ""; + { + const std::vector jarNames = JavaParser::getRequiredJarNames(); + for (size_t i = 0; i < jarNames.size(); i++) + { + if (i != 0) + { + classPath += separator; + } + classPath += "../app/data/java/" + jarNames[i]; + } + } + JavaEnvironmentFactory::createInstance( - "../app/data/java/guava-21.0.jar" + separator + - "../app/data/java/java-indexer.jar" + separator + - "../app/data/java/javaparser-core.jar" + separator + - "../app/data/java/javaslang-2.0.3.jar" + separator + - "../app/data/java/javassist-3.19.0-GA.jar" + separator + - "../app/data/java/java-symbol-solver-core.jar" + separator + - "../app/data/java/java-symbol-solver-logic.jar" + separator + - "../app/data/java/java-symbol-solver-model.jar" + separator, + classPath, errorString ); }