Byte Buddy
javawriter
Our great sponsors
Byte Buddy | javawriter | |
---|---|---|
5 | 10 | |
5,998 | 10,681 | |
- | 0.5% | |
9.0 | 6.3 | |
13 days ago | 5 days ago | |
Java | Java | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Byte Buddy
-
Monkey-patching in Java
As seen above, the API exposes the user to low-level bytecode manipulation via byte arrays. It would be unwieldy to do it directly. Hence, real-life projects rely on bytecode manipulation libraries. ASM has been the traditional library for this, but it seems that Byte Buddy has superseded it. Note that Byte Buddy uses ASM but provides a higher-level abstraction.
-
Any news on the Classfile API?
Just a drive-by comment: ByteBuddy is worth a look https://bytebuddy.net/. It is built on top of ASM.
-
Proposed: A new CMake scripting language usable alongside existing one
> can you show an example of how you'd parse, say, a .java.in
The canonical way to do such a thing is through the java annotation processing api [1] and using a tool like java poet [2]. Before you did that, you'd probably decide if you wanted to instead use bytecode generation with a library like bytebuddy [3]
But, assuming for some reason, you wanted to torture yourself and actually consume a java.in file and apply a regex, then you'd probably pull out the "maven-replacer-plugin" [4] and configure that for the task at hand. (or use your favorite templating language plugin. There's a million of them).
Though, to be fair, this really isn't something that comes up in regular java programming due to the nature of the ecosystem. Anything you'd want to codegen likely already has a library and anything you didn't would receive (legitimate) push back.
[1] https://www.baeldung.com/java-annotation-processing-builder
-
is rust the only language to have procedural macros?
Have a look at byte buddy.
-
Byte Buddy on Android made possible
If you've ever used libraries like https://github.com/JakeWharton/hugo or https://hibernate.org/ (if you've ever done some backend development) and wondered how do they seem to add some code/logic into your app just by adding some annotation to some method, or if you ever wondered how mocking frameworks like Mockito can change a class behavior for example, then most likely you're interested in a programming technique that allows to modify existing code, usually known as Aspect oriented programming (also known in Java as Bytecode instrumentation) which, even though it might sound intimidating at first, some really cool tools such as Byte Buddy or AspectJ make it quite easy to accomplish.
javawriter
-
Supercharge Your Spring Boot Services with Multiple Data Sources! Introducing spring-multi-data-source!
javapoet (for generating code in Java): square/javapoet: A Java API for generating .java source files. (github.com)
-
Supercharge Your Spring Boot Services with Multiple Data Sources! Introudcing spring-multi-data-source!
Resources: 1. Spring Boot Official Documentation on configuring multiple data sources: Spring Boot Reference Documentation 2. javapoet (for generating code in Java): square/javapoet: A Java API for generating .java source files. (github.com) 3. Guide to Annotation Processing in Java: Java Annotation Processing and Creating a Builder | Baeldung
-
Any library you would like to recommend to others as it helps you a lot? For me, mapstruct is one of them. Hopefully I would hear some other nice libraries I never try.
Javapoet. This helped me a lot, because i wrote two generators, one for one employer, who don't like dynamic generators, so the first was to generate mappers like mapstruct does; from model to pojos and viceversa. The second one was a static testing pojo factory generator; this last one i made public (it's pretty basic and now we have projects like instancio and podam) its name is mother-factory.
- Generare de cod pentru Java
- Any news on the Classfile API?
-
Proposed: A new CMake scripting language usable alongside existing one
> can you show an example of how you'd parse, say, a .java.in
The canonical way to do such a thing is through the java annotation processing api [1] and using a tool like java poet [2]. Before you did that, you'd probably decide if you wanted to instead use bytecode generation with a library like bytebuddy [3]
But, assuming for some reason, you wanted to torture yourself and actually consume a java.in file and apply a regex, then you'd probably pull out the "maven-replacer-plugin" [4] and configure that for the task at hand. (or use your favorite templating language plugin. There's a million of them).
Though, to be fair, this really isn't something that comes up in regular java programming due to the nature of the ecosystem. Anything you'd want to codegen likely already has a library and anything you didn't would receive (legitimate) push back.
[1] https://www.baeldung.com/java-annotation-processing-builder
-
Scaffolding multiple java files
I’ve used a maven archetype before with velocitemplate. That solution was iffy so we then migrated to using https://github.com/square/javapoet to generate the java source and write it to the desired files. I think we also used the google formatter library so the files would be formatted after generating.
-
20+ Trending and Popular Java Open Source Project
JavaPoet
- May be a stupid question: Why are computer programs that modify themselves so uncommon? I can't really think of a use case, but does the phenomenon have a name?
What are some alternatives?
Javassist - Java bytecode engineering toolkit
FreeBuilder - Automatic generation of the Builder pattern for Java
Byteman - Byteman Project main repo
Joda-Beans - Java library to provide an API for beans and properties.
easydeviceinfo - :iphone: [Android Library] Get device information in a super easy way.
SDMLib
joda-time-android - Joda-Time library with Android specialization
parceler - :package: Android Parcelables made easy through code generation.
timber - A logger with a small, extensible API which provides utility on top of Android's normal Log class.
NetworkParser - Framework for serialization to Json, XML, Byte and Excel, therefore an oviparous wool milk sow J
StatusBarUtil - A util for setting status bar style on Android App.
ParcelablePlease - Annotation Processor for generating Parcelable code