Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to openrewrite #117

Merged
merged 79 commits into from
Mar 17, 2025
Merged

Move to openrewrite #117

merged 79 commits into from
Mar 17, 2025

Conversation

jimbethancourt
Copy link
Collaborator

Move from JavaParser to OpenRewrite

JavaFqnCapturingVisitor captures all possible type name references when specified as a generic type parameter
Extract FqnCapturingVisitor to simplify implementation of multi-language visiting
Processing JavaType types instead of J types.  This allows for types to be processed via dynamic type binding
- Rendering large graphs (> 700 nodes + edges) on demand with Sigma.js, Graphology, graphlib, and graphlib-dot in the HTML report.  Renders using WebGL.
- Touched up type processing in JavaVariableVisitor
- Removed the use of JavaParser
Removed unneeded text from the report output (package names and excess JavaScript characters in DOT graph declaration)
- Added JavaClassDeclarationVisitor and pulled type processing up into the TypeProcessor interface and added corresponding unit test

- Composing the JavaVistor with the various visitors needed to capture all types in the codebase
Added Method Declaration & Implementation visitors
Moved classes around
Pulled test classes into src/test/java
Upgraded OpenRewrite BOM version
- Pulled up addType into TypeProcessor
- Classes no longer add edges to themselves
- Updated unit tests
- Added minimal processing of lambdas
- Applied Spotless formatting
WIP Adding package cycle detection
Simplified newClass test
Handling constructors in JavaMethodDeclarationVisitor
- Pulled visitors up since not all were working under JavaVisitor
- Passing back class graph - JavaProjectParserTests now passing
- Pulled visitors up since not all were working under JavaVisitor
- Passing back class graph - JavaProjectParserTests now passing
- Using Directed graphs instead of simple ones
- Declaring JGraphT version in parent pom
Initial commit of DSM and corresponding unit tests
Detecting multiple assignments if multiple take place in a single declaration.
Applied Spotless.
…rguments

- Added return expression visiting
- Removed type processing of parameter arguments since they will be captured as part of the variable declaration visitor
- Updated unit tests
Adding analyzeCycles parameter to allow suppression of cycle analysis and cycle analysis output
Replacing script source URL for d3-graphviz.  Package wasn't being found on unpkg
Minifying HTML / JS / CSS by default when report is generated by HTML Report, Simple HTML Report, and CLI, with option to not minify the report.
- Added logging statements
- Cleaned up logic that generates spacing between report sections
- Commented out Minimum Edges to Cut column
Excluding classes that do not have a package.  This is primarily for MavenWrapperDownloader (and probably the corresponding Gradle class in the future.
Excluding tests from analysis by default.  User can also specify the test directory.  Test directory defaults to "src/test" or "src\test" based on the operating system.
Sugiyama popup was not rendering correctly when using a div with the same name as the Sugiyama popup
- Defaulting minifyHtml to false
- Applied Spotless
- Putting style and javascript declarations in HTML body so they will be rendered correctly in the Maven report
- Pulled several dependency versions into parent pom
Finally fixed 2D popup off-center issue.  A div that I thought was dangling, well, wasn't...
Removed duplicate popup container div
- Reverting to base 3D graph features if nodes + edges > 4000
- Only performing cycle analysis on 10 biggest cycles.  Will make configurable later.
- Updated Lombok version
- Applied Spotless to SimpleHtmlReport
- Updated version to 0.7.0-SNAPSHOT
- Overriding version of snappy used by maven-core to suppress CVE-2024-36124
@jimbethancourt jimbethancourt merged commit 1ba9e6a into main Mar 17, 2025
2 checks passed
@jimbethancourt jimbethancourt deleted the move-to-openrewrite branch March 17, 2025 01:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant