dapper | moditect | |
---|---|---|
5 | 10 | |
4 | 530 | |
- | 1.5% | |
3.6 | 7.7 | |
over 1 year ago | about 1 month 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.
dapper
-
Dagger clone with a module info
So I put in the hard work and created dapper, a trimmed-down copy of version 2.37, the last pure-Java version of dagger. I hope it can help with jpms adoption. I also hope I can roughly keep it in sync with a quite active upstream.
-
Forking google
You're welcome to try this and make a pull request. Please try with an unassigned issue here.
-
Minecraft 1.18 Pre-Release 2: Minecraft 1.18 will require Java 17
Oh, really? What's stopping you? Here's a dagger clone that's fully Java17 compatible. Here's a Java 17 compatible guava clone.
moditect
-
Java Modules in Real Life
And then you have to use moditect to generate a module-info.java and this is again because the annotation processor will pick up the provides Processor with YourAnnotationProcessor.
-
Modularization (modular-info.java), maven, and testing misery
Maybe you've somehow missed https://maven.apache.org/plugins/maven-jlink-plugin/ https://github.com/moditect/moditect https://github.com/beryx/badass-jlink-plugin https://github.com/sormuras/testing-in-the-modular-world
-
JRE & JDK implementation mess
Yes, you are right. jlink does not work with automatic modules. But using that plugin https://github.com/moditect/moditect you can easily transform almost any java library into a named module. It is a shame there are libraries under development, that have not been adapted to the java modular system.
- Forking google
-
Minvio - a simple Java graphical app framework.
FWIW, I've had a lot more issues with reflective access when using GraalVM. Reflection is mainly a problem with modules if you forget to 'open' your modules which is easy to fix in many cases. There's also moditect if the library author still doesn't want to learn how to include a module-info in the legacy compatible jar.
-
javafx:jlink and itext to create self contained jar.
Thanks. I don't think iText has a modularized jar. Would it be possible to inject the modules into my jar, as per: https://stackoverflow.com/questions/47222226/how-to-inject-module-declaration-into-jar . Or maybe use moditect?
-
Persism 1.0.1 released - A zero ceremony ORM for Java
Or apply the https://github.com/moditect/moditect plugin and keep the build in JDK8. Let the plugin create the module descriptors without configuring JDK toolchains.
-
Java Modules - are they common and should we use them?
You can use the https://github.com/moditect/moditect maven plugin to add the module-info to the third-party jars
-
JPMS Migration Playground
The next solution, which is the one I'm writing about. Is to modularize foo's jar, this is easily accomplished using the moditect plugin. But it can be tricky since I don't have, nor do I need, bar, and I prefer doing most of the work in build time and not manually.
-
Distribution of JVM desktop applications
It's possible to add this information during one's build even though the procedure is error-prone and boring. The description on how to achieve this deserves a post on its own. For more information, please check this Oracle magazine article. Suffice to say here that it makes heavy use of the Moditect Maven plugin.
What are some alternatives?
avaje-inject - Dependency injection via APT (source code generation) ala "Server-Side Dagger DI"
os-maven-plugin - A Maven plugin that sets various useful properties detected from ${os.name} and ${os.arch} properties.
maven-jpackage-template - Sample project illustrating building nice, small cross-platform JavaFX or Swing desktop apps with native installers while still using the standard Maven dependency system.
badass-jlink-plugin - Create a custom runtime image of your modular application
Guava - Google core libraries for Java
packr - Packages your JAR, assets and a JVM for distribution on Windows, Linux and Mac OS X
auto-value
piranha - Piranha - a modern cloud runtime
UniJ - Universal facade of JDK 9+ API, focused on Collection factory methods
Permazen - Language-Natural Persistence Layer for Java
guava - modular guava
Feather - Lightweight dependency injection for Java and Android (JSR-330)