java-air

Java code analysis and manipulation front-end for Rascal programmers, based on Eclipse JDT

https://github.com/usethesource/java-air

Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 29 committers (3.4%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (5.1%) to scientific vocabulary

Keywords from Contributors

mesh interactive
Last synced: 7 months ago · JSON representation ·

Repository

Java code analysis and manipulation front-end for Rascal programmers, based on Eclipse JDT

Basic Info
  • Host: GitHub
  • Owner: usethesource
  • License: bsd-2-clause
  • Language: Java
  • Default Branch: main
  • Size: 6.02 MB
Statistics
  • Stars: 0
  • Watchers: 3
  • Forks: 0
  • Open Issues: 5
  • Releases: 0
Created about 1 year ago · Last pushed 11 months ago
Metadata Files
Readme Contributing License Code of conduct Citation

README.md

Java AiR

Build and Deploy

This is the default front-end for analyzing and manipulating Java source code and JVM bytecode for Rascal users. This used to be a part of Rascal's standard library in lang::java::** until March 2025 when we factored it out to keep the Rascal core smaller.

All documentation and meta-data, and API docs, can be found at http://www.rascal-mpl.org/Packages/JavaAir .

Owner

  • Name: Use The Source
  • Login: usethesource
  • Kind: organization
  • Email: jurgen.vinju@cwi.nl

Open Source Projects around Meta Programming

Citation (CITATION.md)

# Publications

This work motivated the initial Java analysis framework, as well as others (PHP):

```bibtex
@inproceedings{ossmeter1,
     author = {Di Ruscio, Davide and Kolovos, Dimitrios S. and Korkontzelos, Ioannis and Matragkas, Nicholas and Vinju, Jurgen},
      title = {OSSMETER: A Software Measurement Platform for Automatically Analysing Open Source Software Projects},
  booktitle = {ESEC/FSE 2015 Tool Demonstrations Track},
       year = {2015}
}
```

This work makes extensive use of the Java analysis framework, and extended it with flow analysis:
```bibtex
@inproceedings{icse17,
  author = {Davy Landman and Alexander Serebrenik and Jurgen J. Vinju},
  title = {Challenges for Static Analysis of Java Reflection – Literature Review and Empirical Study},
  booktitle = {Proceedings of IEEE International Conference on Software Engineering (ICSE 2017)},
  publisher = {IEEE},
  year = {2017},
  month = may,
}
```

This work uses the Java analysis framework, and also re-imagined the bytecode analysis framework of java-air,
such that fact extraction from bytecode could be compared to, and combined with, the facts extracted from source code.
```bibtex
@inproceedings{msr17,
  author = {Lina Ochoa and Thomas Degueule and Jurgen J. Vinju},
  title = {An Empirical Evaluation of OSGi Dependencies Best Practices in the Eclipse IDE},
  booktitle = {Proceedings of the 15th International Conference  on Mining Software Repositories},
  publisher = {IEEE},
  year = {2018},
}```

In this work java-air is one of the many components used to deeply analyze bytecode and source code
for change impact on a ecosystem scale:
```bibtex
@article{ochoa21,
  author = {L. Ochoa and T. Degueule and J-R. Falleri and J. Vinju},
  journal = {Empirical Software Engineering},
  title = {Breaking Bad? Semantic Versioning and Impact of Breaking Changes in Maven Central},
year = {2021}
}
```

These are the technical reports for the OSSMETER EU project that influenced much of the design of java-air:
* [OSSMETER Deliverable D3.1](https://homepages.cwi.nl/~jurgenv/papers/D3.1ReportonDomainAnalysisofOSSQualityAttributes.pdf) – Report on Domain Analysis of OSS Quality Attributes. EU FP7 STREP Project Deliverable for OSSMETER.
* [OSSMETER Deliverable D3.2](https://homepages.cwi.nl/~jurgenv/papers/D3.2ReportonSourceCodeActivityMetrics.pdf) – Report on Source Code Activity Metrics. EU FP7 STREP Project Deliverable for OSSMETER.
* [OSSMETER Deliverable D3.3](https://homepages.cwi.nl/~jurgenv/papers/D3.3LanguageAgnosticSourceCodeQualityAnalysis.pdf) – Language Agnostic Source Code Quality Analysis. EU FP7 STREP Project Deliverable for OSSMETER.
* [OSSMETER Deliverable D3.4](https://homepages.cwi.nl/~jurgenv/papers/D3.4LanguageSpecificSourceCodeQualityAnalysis.pdf) – Language-Specific Source Code Quality Analysis. EU FP7 STREP Project Deliverable for OSSMETER.


# Specific Releases

Here some citable zenodo snapshots, which you could cite instead of the above
papers. The difference is you credit more the implementation of the work than
the conceptual contribution of Rascal. It's up to you. The author lists are
different, necessarily. So if you depend on a particular piece of work inside
java-air authored by somebody who is not an author of the above papers, then this
should have your preference.

* https://zenodo.org/record/TODO


		

GitHub Events

Total
  • Create event: 3
  • Commit comment event: 1
  • Issues event: 3
  • Push event: 17
Last Year
  • Create event: 3
  • Commit comment event: 1
  • Issues event: 3
  • Push event: 17

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 1,576
  • Total Committers: 29
  • Avg Commits per committer: 54.345
  • Development Distribution Score (DDS): 0.415
Past Year
  • Commits: 196
  • Committers: 6
  • Avg Commits per committer: 32.667
  • Development Distribution Score (DDS): 0.526
Top Committers
Name Email Commits
Jurgen J. Vinju J****u@c****l 922
Davy Landman d****n@s****g 318
paulklint P****t@c****l 96
Ashim Shahi a****i@g****m 85
Lina Ochoa l****a@g****m 52
Michael Steindorfer M****r@c****l 33
Rodin Aarssen r****n@s****g 17
tdegueul d****e@c****l 6
Pieter Olivier p****r@s****g 6
dependabot[bot] 4****] 5
Jasper Timmer j****r@g****m 5
Linus Wagner l****r@m****e 4
Jouke Stoel j****l@g****m 4
Bas Basten b****n@g****m 3
Aiko Yamashita a****o@s****o 3
Sung-Shik Jongmans s****s@s****g 2
jeroenpeeters j****n@p****l 2
Vadim Zaytsev v****m@g****t 2
msr18-osgi-artifacts m****s@g****m 1
Rodrigo Bonifácio r****3@g****m 1
Mauricio Verano Merino m****9@g****m 1
Mary Gouseti m****i@g****m 1
Markus Klinik m****l@l****t 1
Mark Hills m****s@c****u 1
Jonathan Leitschuh J****h@g****m 1
Ferry Rietveld F****d@g****m 1
Kevin van der Vlist k****t@s****l 1
Diego Marcilio d****o@g****m 1
Anastassija A****a@c****l 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 5
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 4
  • Total pull request authors: 0
  • Average comments per issue: 3.6
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 1
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 1
  • Pull request authors: 0
  • Average comments per issue: 1.0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jurgenvinju (2)
  • linuswagner (1)
  • mike-uva (1)
  • verhoofstad (1)
Pull Request Authors
Top Labels
Issue Labels
enhancement (1) bug (1)
Pull Request Labels

Dependencies

pom.xml maven
  • junit:junit 4.13.2
  • org.ow2.asm:asm 9.6
  • org.ow2.asm:asm-tree 9.6
  • org.rascalmpl:rascal 0.41.0-RC11
  • org.rascalmpl:rascal-p2-dependencies-repackaged 0.6.0
.github/workflows/build.yaml actions
  • SWAT-engineering/maven-full-artifacts-action v1 composite
  • actions/cache v4 composite
  • actions/checkout v2 composite
  • actions/setup-java v2 composite
  • softprops/action-gh-release v1 composite
  • usethesource/releases-maven-action v1 composite