Junie Rules for GuicedEE Services
This rules file provides guidance for consuming and applying the JPMS modular libraries produced by the GuicedEE Services project. It defines how Junie should use these artifacts instead of their original counterparts.
GuicedEE Services creates Java Platform Module System (JPMS) compatible versions of popular libraries by:
Shading the original libraries using Maven Shade Plugin
Adding proper module-info.java descriptors
Ensuring compatibility with the module system
Providing consistent groupId naming conventions
The project transforms original libraries into JPMS-compatible versions with the following pattern:
Original Coordinates
GuicedEE Coordinates
Module Name
Notes
com.fazecast:jSerialComm
com.guicedee.modules.services:jserialcomm
io.jserialcomm
Removed as of 2.11.2 - now properly modularized
org.javassist:javassist
com.guicedee.modules.services:javassist
javassist
io.cloudevents:cloudevents-core
com.guicedee.modules.services:cloudevents
io.cloudevents
org.testcontainers:testcontainers
com.guicedee.modules.services:testcontainers
org.testcontainers
org.hibernate:hibernate-core
com.guicedee.modules.services:hibernate-core
org.hibernate.core
For most libraries, use the GuicedEE modular version instead of the original:
Original library (not recommended for most libraries):
<dependency >
<groupId >org.some.library</groupId >
<artifactId >library-name</artifactId >
<version >x.y.z</version >
</dependency >
GuicedEE modular version (recommended for most libraries):
<dependency >
<groupId >com.guicedee.modules.services</groupId >
<artifactId >library-name</artifactId >
<version >2.0.2-SNAPSHOT</version >
</dependency >
Note for jSerialComm : As of version 2.11.2, jSerialComm is properly modularized, so use the original library directly:
<dependency >
<groupId >com.fazecast</groupId >
<artifactId >jSerialComm</artifactId >
<version >2.11.2</version >
</dependency >
For most libraries, use the GuicedEE module name:
// For most libraries, use the GuicedEE module name
module your .module {
requires org .some .library .module ;
}
Note for jSerialComm : As of version 2.11.2, jSerialComm is properly modularized, so use its module directly:
// For jSerialComm 2.11.2+, use the original module
module your .module {
requires com .fazecast .jSerialComm ;
}
Service Libraries (com.guicedee.modules.services)
These are shaded versions of third-party libraries with added module-info.java descriptors:
CXF : apache-cxf, apache-cxf-rest, apache-cxf-rt-security, apache-cxf-rt-transports-http, apache-cxf-rest-openapi
Original Coordinates
GuicedEE Coordinates
Module Name
org.apache.cxf:cxf-core
com.guicedee.modules.services:apache-cxf
org.apache.cxf
org.apache.cxf:cxf-rt-rs-client
com.guicedee.modules.services:apache-cxf-rest
org.apache.cxf.rest
org.apache.cxf:cxf-rt-security
com.guicedee.modules.services:apache-cxf-rt-security
org.apache.cxf.rt.security
org.apache.cxf:cxf-rt-transports-http
com.guicedee.modules.services:apache-cxf-rt-transports-http
org.apache.cxf.rt.transports.http
org.apache.cxf:cxf-rt-rs-service-description-openapi-v3
com.guicedee.modules.services:apache-cxf-rest-openapi
org.apache.cxf.rest.openapi
Commons : commons-beanutils, commons-collections, commons-csv, commons-fileupload, commons-math
Original Coordinates
GuicedEE Coordinates
Module Name
commons-beanutils:commons-beanutils
com.guicedee.modules.services:commons-beanutils
org.apache.commons.beanutils
org.apache.commons:commons-collections4
com.guicedee.modules.services:commons-collections
org.apache.commons.collections
org.apache.commons:commons-csv
com.guicedee.modules.services:commons-csv
org.apache.commons.csv
commons-fileupload:commons-fileupload
com.guicedee.modules.services:commons-fileupload
org.apache.commons.fileupload
org.apache.commons:commons-math3
com.guicedee.modules.services:commons-math
org.apache.commons.math
POI : apache-poi, apache-poi-ooxml
Original Coordinates
GuicedEE Coordinates
Module Name
org.apache.poi:poi
com.guicedee.modules.services:apache-poi
org.apache.poi
org.apache.poi:poi-ooxml
com.guicedee.modules.services:apache-poi-ooxml
org.apache.poi.ooxml
Database Drivers : postgresql, mssql-jdbc, msal4j
Original Coordinates
GuicedEE Coordinates
Module Name
org.postgresql:postgresql
com.guicedee.modules.services:postgresql
org.postgresql
com.microsoft.sqlserver:mssql-jdbc
com.guicedee.modules.services:mssql-jdbc
com.microsoft.sqlserver.jdbc
com.microsoft.azure:msal4j
com.guicedee.modules.services:msal4j
com.microsoft.azure.msal4j
Core : aop, guava, guice-assistedinject, guice-core, guice-grapher, guice-jmx, guice-jndi, guice-persist, guice-servlet
Original Coordinates
GuicedEE Coordinates
Module Name
com.google.inject.extensions:guice-assistedinject
com.guicedee.modules.services:guice-assistedinject
com.google.inject.assistedinject
com.google.inject:guice
com.guicedee.modules.services:guice-core
com.google.inject
com.google.inject.extensions:guice-grapher
com.guicedee.modules.services:guice-grapher
com.google.inject.grapher
com.google.inject.extensions:guice-jmx
com.guicedee.modules.services:guice-jmx
com.google.inject.jmx
com.google.inject.extensions:guice-jndi
com.guicedee.modules.services:guice-jndi
com.google.inject.jndi
com.google.inject.extensions:guice-persist
com.guicedee.modules.services:guice-persist
com.google.inject.persist
com.google.inject.extensions:guice-servlet
com.guicedee.modules.services:guice-servlet
com.google.inject.servlet
com.google.guava:guava
com.guicedee.modules.services:guava
com.google.common
org.aopalliance:aopalliance
com.guicedee.modules.services:aop
org.aopalliance
ORM : hibernate-core, hibernate-jcache, hibernate-reactive, hibernate-validator
Original Coordinates
GuicedEE Coordinates
Module Name
org.hibernate:hibernate-core
com.guicedee.modules.services:hibernate-core
org.hibernate.core
org.hibernate:hibernate-jcache
com.guicedee.modules.services:hibernate-jcache
org.hibernate.jcache
org.hibernate.reactive:hibernate-reactive-core
com.guicedee.modules.services:hibernate-reactive
org.hibernate.reactive
org.hibernate.validator:hibernate-validator
com.guicedee.modules.services:hibernate-validator
org.hibernate.validator
Logging : jboss-logmanager
Original Coordinates
GuicedEE Coordinates
Module Name
org.jboss.logmanager:jboss-logmanager
com.guicedee.modules.services:jboss-logmanager
org.jboss.logmanager
Caching : cache-annotations-ri-common, cache-annotations-ri-guice, cache-api, hazelcast, hazelcast-hibernate
Original Coordinates
GuicedEE Coordinates
Module Name
org.jsr107.ri:cache-annotations-ri-common
com.guicedee.modules.services:cache-annotations-ri-common
org.jsr107.ri.annotations.common
org.jsr107.ri:cache-annotations-ri-guice
com.guicedee.modules.services:cache-annotations-ri-guice
org.jsr107.ri.annotations.guice
javax.cache:cache-api
com.guicedee.modules.services:cache-api
javax.cache
com.hazelcast:hazelcast
com.guicedee.modules.services:hazelcast
com.hazelcast
com.hazelcast:hazelcast-hibernate53
com.guicedee.modules.services:hazelcast-hibernate
com.hazelcast.hibernate
Native Interface : jna-platform, nrjavaserial
Original Coordinates
GuicedEE Coordinates
Module Name
net.java.dev.jna:jna-platform
com.guicedee.modules.services:jna-platform
com.sun.jna.platform
com.neuronrobotics:nrjavaserial
com.guicedee.modules.services:nrjavaserial
com.neuronrobotics.nrjavaserial
Security : jakarta-security-jacc
Original Coordinates
GuicedEE Coordinates
Module Name
jakarta.security.jacc:jakarta.security.jacc-api
com.guicedee.modules.services:jakarta-security-jacc
jakarta.security.jacc
Transaction Management : BitronixTransactionManager
Original Coordinates
GuicedEE Coordinates
Module Name
org.codehaus.btm:btm
com.guicedee.modules.services:btm
org.codehaus.btm
Utility Libraries : bcrypt, jandex, javassist, json, kafka-client, mapstruct, scram, uadetector-core, uadetector-resources
Original Coordinates
GuicedEE Coordinates
Module Name
Notes
at.favre.lib:bcrypt
com.guicedee.modules.services:bcrypt
at.favre.lib.bcrypt
com.fazecast:jSerialComm
com.guicedee.modules.services:jserialcomm
io.jserialcomm
Removed as of 2.11.2 - now properly modularized as com.fazecast.jSerialComm
org.jboss:jandex
com.guicedee.modules.services:jandex
org.jboss.jandex
org.javassist:javassist
com.guicedee.modules.services:javassist
javassist
org.json:json
com.guicedee.modules.services:json
org.json
org.mapstruct:mapstruct
com.guicedee.modules.services:mapstruct
org.mapstruct
com.ongres.scram:client
com.guicedee.modules.services:scram
com.ongres.scram.client
net.sf.uadetector:uadetector-core
com.guicedee.modules.services:uadetector-core
net.sf.uadetector.core
net.sf.uadetector:uadetector-resources
com.guicedee.modules.services:uadetector-resources
net.sf.uadetector.resources
Integration Libraries : cloudevents, ibm-mq, rabbitmq-client
Original Coordinates
GuicedEE Coordinates
Module Name
io.cloudevents:cloudevents-core
com.guicedee.modules.services:cloudevents
io.cloudevents
com.ibm.mq:com.ibm.mq.allclient
com.guicedee.modules.services:ibm-mq
com.ibm.mq
com.rabbitmq:amqp-client
com.guicedee.modules.services:rabbitmq-client
com.rabbitmq.client
org.apache.kafka:kafka-client
com.guicedee.modules.services:kafka-client
org.apache.kafka.clients
Testing Libraries : testcontainers
Original Coordinates
GuicedEE Coordinates
Module Name
org.testcontainers:testcontainers
com.guicedee.modules.services:testcontainers
org.testcontainers
Document Processing : openpdf, swagger
Original Coordinates
GuicedEE Coordinates
Module Name
com.github.librepdf:openpdf
com.guicedee.modules.services:openpdf
com.lowagie.text
io.swagger:swagger-core
com.guicedee.modules.services:swagger
io.swagger
Configuration : config-core, metrics-core
Original Coordinates
GuicedEE Coordinates
Module Name
org.eclipse.microprofile.config:microprofile-config-api
com.guicedee.modules.services:config-core
org.eclipse.microprofile.config
org.eclipse.microprofile.metrics:microprofile-metrics-api
com.guicedee.modules.services:metrics-core
org.eclipse.microprofile.metrics
Data Formats : ExcelRepresentation, JsonRepresentation, XmlRepresentation
Original Coordinates
GuicedEE Coordinates
Module Name
com.guicedee.modules.services:excel-representation
com.guicedee.modules.services:ExcelRepresentation
com.guicedee.modules.services.excelrepresentation
com.guicedee.modules.services:json-representation
com.guicedee.modules.services:JsonRepresentation
com.guicedee.modules.services.jsonrepresentation
com.guicedee.modules.services:xml-representation
com.guicedee.modules.services:XmlRepresentation
com.guicedee.modules.services.xmlrepresentation
Reactive : vertx-mutiny, vertx-pg-client, vertx-rabbitmq, vertx-cassandra
Original Coordinates
GuicedEE Coordinates
Module Name
io.smallrye.reactive:smallrye-mutiny-vertx-core
com.guicedee.modules.services:vertx-mutiny
io.smallrye.mutiny.vertx.core
io.vertx:vertx-pg-client
com.guicedee.modules.services:vertx-pg-client
io.vertx.pgclient
io.vertx:vertx-rabbitmq-client
com.guicedee.modules.services:vertx-rabbitmq
io.vertx.rabbitmq
io.vertx:vertx-cassandra-client
com.guicedee.modules.services:vertx-cassandra
io.vertx.cassandra.client
The project provides proper JPMS modules through:
Excluded Components : com.guicedee:guice-inject-client should not be used with Junie.
Note: guice-inject-client provides the interfaces and SPIs for GuicedEE to develop libraries that are loosely coupled.
It contains core interfaces like IGuiceModule, IGuiceProvider, IGuicePreStartup, IGuicePostStartup, etc.
These interfaces enable the plugin architecture and dependency injection framework of GuicedEE.
All libraries maintain the same package structure as their original counterparts
The shaded artifacts include all transitive dependencies
Version alignment is managed through the guicedee-bom
Module names typically match the main package of the original library
When using these modular libraries, you might encounter the following issues:
Module not found : Ensure you're using the correct module name in your requires statement
Package not accessible : Check that the package is properly exported in the module-info.java
Version conflicts : Use the guicedee-bom to manage version alignment