Comments (6)
Must support Jar, Ear and War file types fo the Java decompilation
from analyzer-lsp.
I am moving this issue to Demo D as it requires little more work, and larger priorities for Demo C are all around getting Windup shim working.
from analyzer-lsp.
After thinking about this more, I have come to a new conclusion.
- The work that David did is perfect and will mostly work. For the jar files that are in a given archive, we will capture them, put them in src/lib, and they will be added to the classpath. @pranavgaikwad, this will fix the thing you are looking at.
- We will have a new Provider grpc method, which will be responsible for getting the code snip from ANY URI's that are not files (if files we can use what we already have).
- This new method will then, unarchive the jar (jar -xf <path_to_jar> /tmp/<golang_created_tmpfolder>, then it fernflower decompile just that given class file.
- There is a potential issue here, with the information and I am working on solving this. I assume there is some way to map it back but I think that the provider needs to handle this either way and we can use the full URI to send this information, the new provider method will also update the URI.
The added benefit of this approach is that it will be much less start-up intensive as we will only need to do this when we need to, and the limits will keep it small if desired or you can do everything and take the time.
from analyzer-lsp.
@fabianvf @pranavgaikwad @jmle Can y'all look at the above thing and see if I am missing something huge or if you have issues with the separation of concerns etc.
from analyzer-lsp.
@shawn-hurley I do not see a problem with the approach. The decompilation time does add up...this is something I need to fix in the decomp part too. By inheriting the incident limit, I think we will save ourselves significant work. In case of many incidents, I do see this increasing the overall time though if not at startup...so a way to cache a file for a run would be ideal. I think updating the URI is fine.
from analyzer-lsp.
This seems like a good approach to me
from analyzer-lsp.
Related Issues (20)
- Export `parallelWalk` package for use by other providers HOT 2
- [BUG] codeSnips for java.dependency rules do not work with external java provider HOT 1
- [dotnet] Investigate using Windows containers for provider HOT 3
- [BUG] Dependency CLI fails when there are 0 dependencies for an app
- [BUG] Analysis for .NET HelloWorld app fails with permissions error HOT 3
- Define default values for provider settings of Java external provider
- Use provider capabilities to determine available analysis mode HOT 2
- Gradle support - Ability to analyze apps and get dependencies HOT 1
- Gradle support - Ability to analyze dependency source code HOT 1
- Support excluding directories in analysis HOT 1
- Use ubi9 for DOTNET external provider images HOT 3
- [dotnet] Provider in windows container HOT 1
- [BUG] Implement GH action to sync deps in analyzer lsp and all external providers HOT 1
- [BUG] Discrepancy in the Effort and Tag count with tackle-testapp HOT 1
- [BUG] Discrepancy in the Effort using daytraderApp HOT 2
- [BUG] Gradle Support - Analysis fails for gradle-multi-project-example HOT 3
- [BUG] Regression with location: ANNOTATION in java provider, not seeing rule match HOT 2
- [BUG] FIELD location not being handled HOT 1
- [BUG] dotnet-external-provider is source only HOT 1
- [BUG] Rule fails when analyzing OpenMRS app in full analysis mode
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from analyzer-lsp.