dropwizard with additional integration modules. An attempt to get dropwizard closer to spring-boot (considering guice ideology differences).
# General Java
- Generics resolver
- Java generics resolution at runtime. Initially was writtem for guice-persist-orient to support its dao layer (similar to spring-data). Now it is used in guicey for configuration class introspection (to support direct values injection).
- Yaml config updater
- CLI tool (with native binaries) for yaml files merging, preserving comments and white spaces. Contains dropwizard integration module (for dropwizard config updates)
- Spock-junit5
- JUnit 5 extensions support for spockframework 2. So any existing junit 5 extension could be used in spock 2. Avoids need to maintain different testing libraries for junit and spock.
# Guice
- Guice ext annotations
- Adds support for JSR-250 (@PostContruct and @PreDestroy) annotations. Provides class generator module to allow using abstract classes as guice beans (all calls must be handled with AOP). Initially was developed for guice-persist-orient to power its spring-data like repositories. Now used in guicey JDBI module (for interface repositories)
- Guice validator
- Runtime validation for guice bean method parameters and return value, annotated with javax(jakarta).validation annotations (e.g. hibernate-validator). With this module, it would be enough to put, for example, @NotNull annotation on method parameters to dynamically check values for nullness during method call.
# Music
- Wind Of Buri player
- Ideal music for work (especially coding). I did this site to have a structured search for this wonderful music and easily find related albums. Site was developed with angular-dart (with bulma) and being completely static (no backend). Music played directly from promodj site, where "wind of buri" publish its music
# Gradle plugins
- Quality plugin
- Static analysis tools (PMD, checkstyle, spotbugs, codenarc) gradle integration. The main goal of this plugin is to print all detected violations directly into console, which greatly improves static tools usage comfort.
- Java lib plugin
- Java (and groovy) projects configuration boilerplate. Makes gradle more "maven" (in sense of simplicity, some behaviours and for multi-module projects).
- Pom plugin
- Plugin simplifies maven-publish plugin usage and corrects generated POM to behave more like "maven": for example, more logically map gradle configurations into maven scopes. Fixes java-platform plugin behaviour for BOMs. Allow to vanish used BOMs from generated POM (to simplify dependencies resolution for projects, using this POM)
- Github info plugin
- Removes github-related configuration boilerplate: most links in the generated POM could be easily generated with github user name (these links required for maven central publication).
- Mkdocs plugin
- Generates multi-version project documentation with python mkdocs tool (see example). Mkdocs is very easy to use with gorgeous result. Even asciidoctor-based antora is not as great (antora use nodejs)
- Python plugin
- General python support for gradle project. Plugin requires only global python installation (or could use docker container with python) and, using it, could run python scrips or modules directly from gradle. Project-specific pip dependencies management is also implemented. Plugin was developed for mkdocs plugin (as separate plugin so later some other useful python modules could be converted to gradle plugin)
- TeaVM plugin
- TeaVM integration: java (kotlin, scala) bytecode to javascript transpiler (like GWT, but no sources needed and works much faster). Plugin was developed while there was no official gradle plugin, but is still useful due to better development support.
- Prod frontend plugin
- Optimize static website resources for projects not using nodejs. It would download all CDN links, make sure css and js are minified, apply anti-cache hashes, etc. As an example, this simple site use it too
# Project generators
- Java project generator
- Generates new java (possibly, multi-module) project with configured maven central publication, quality tools, etc. Project assumed to be published on github. Using it for every new project. Could also update existing project
- Gradle plugin generator
- Same as java-lib but for gradle plugin (and also assumes github publication). Using it for every new gradle plugin.
# OrientDB
Probably retired modules. OrientDB was bought by SAP (indirectly) and put into maintenance mode. Original founder (with part of dev team) "forked" it (massive rewrite, many parts simply dropped like objects-mapping support and, more importantly, dropped its binary protocol, moved to pure http) into ArcadeDB, partially compatible with OrientDB (so modules below can't be used with ArcadeDB). Monitoring situation (one retired, another too young)
- Dropwizard OrientDB embedded server
- Embeds OrientDB (opensource graph/object/document database) server into dropwizard application
- Guice persist orient
- Guice support for OrientDB (guice-persist style). Also provides spring-data like repositories implementation
# Blog
Sometimes I'm writing into my blog, but not very often. And, even less often, on habr