v1.0.0
Changelog
All notable changes to this project will be documented in this file.
[1.0.0] - 2024-05-30
π Initial Release
β¨ New Features
- ParseTestCaseToLlmContext Task: Parses Java test cases and generates LLM-friendly JSON output
- Intelligent Build System Detection: Automatically identifies and configures Maven/Gradle projects
- Enhanced Dependency Resolution:
- Maven: Parses dependencies from
pom.xml, automatically handles property variables - Gradle: Uses Tooling API to get project configuration
- Automatic search of local caches (
~/.m2,~/.gradle/caches) for missing dependencies
- Maven: Parses dependencies from
- Automatic Test Framework Support: JUnit 4/5, Mockito, Hamcrest, AssertJ
- Intelligent Statement Classification: ASSERT, MOCK, NEW, THIRD, GET/SET, PRODUCTION
- DFS Method Call Analysis: Recursively expands method calls within test cases
- Multi-threaded Parallel Processing: Supports concurrent analysis of multiple test files
- Extensible Plugin Architecture: Task and visitor extension mechanism based on Java SPI
π§ Technical Features
- Fat JAR Distribution: Includes all dependencies, ready to use out of the box
- Detailed Debug Logging: Complete dependency resolution and configuration detection logs
- Cross-platform Support: Windows, macOS, Linux
- Java 21 Support: Uses latest JDK features
π Output Format
{
"project": "project name",
"testClassName": "fully qualified test class name",
"testCaseName": "test method name",
"parsedStatementsSequence": ["method call sequence"],
"productionFunctionImplementations": ["production code implementations"],
"testCaseSourceCode": "test case source code",
"importedPackages": ["imported packages list"]
}ποΈ Dependencies
- parser-core: Core AST parsing engine
- picocli: Command line interface framework
- Eclipse JDT: Java development tools core
- Gson: JSON serialization library
π Command Line Interface
java -jar Javalang-analyzing-cli-1.0.0-all.jar ParseTestCaseToLlmContext \
--project /path/to/project \
--format jsonπ Known Issues
- Output directory is currently hardcoded to
results/folder under project root - Some complex Maven dependency management scenarios may require manual intervention
π Future Plans
- Support for Go and Python project analysis
- Configurable output directory
- More built-in analysis tasks
- Web UI interface
Version Format Description
- [Major.Minor.Patch] - Release date
- Major: Incompatible API changes
- Minor: Backward-compatible functionality additions
- Patch: Backward-compatible bug fixes