[wildfly-dev] What's new in JBoss Modules 1.8

David Lloyd david.lloyd at redhat.com
Thu Apr 12 10:30:29 EDT 2018


JBoss Modules 1.8 is now part of WildFly Core, and it includes a few
major new features that you may want to be aware of:

• JDK module dependencies (MODULES-254, MODULES-314)
    ◦ This also works on Java 1.8, as initially discussed here:
http://lists.jboss.org/pipermail/wildfly-dev/2017-December/006180.html
    ◦ This also means that the following modules have been deprecated:
        ▪ "javax.api", in favor of various standard modules including
the now-implicit "java.base"
        ▪ "javax.xml.stream.api" and the JAXP portion of "javax.api"
in favor of "java.xml"
        ▪ "javax.sql.api" in favor of "java.sql"
        ▪ "sun.jdk" and "ibm.jdk" in favor of multiple standard modules
    ◦ For more information, see:
        ▪ https://github.com/wildfly/wildfly-proposals/pull/39
• Improved JAXP redirection strategy (MODULES-339)
    ◦ No longer uses system properties to establish the default implementation
    ◦ Implemented by way of adding additional services to the end of
each module's resource list
    ◦ This means the default implementation is local to the module
system class loaders and does not "leak out" to embedding environments

In addition, the following minor improvements are present:

• Automatic version detection (MODULES-343)
    ◦ If no version attribute is given in module.xml, the version is
detected via the JAR file manifest
    ◦ Versions are only advisory (for diagnostics) and do not play a
role in linkage or resolution
• Service declarations in module.xml (MODULES-349)
    ◦ Allows existing JARs to be supplemented with additional service
definitions
    ◦ Service definitions are treated as an additional (last) resource
root containing only service files
• Support for "data:" URLs (MODULES-340)
    ◦ See https://tools.ietf.org/html/rfc2397
    ◦ Can be returned by resource loaders for dynamic resource generation
• Functional class transformation API (MODULES-346)
    ◦ A new buffer-based functional interface is added and preferred
    ◦ Can be used to avoid a dependency on the "java.instrument"
module in the future
    ◦ A compatibility adapter class is also introduced
    ◦ APIs which accept the java.lang.instrument.ClassFileTransformer
interface are deprecated
• Ability to add security providers from the command line (MODULES-344)
    ◦ The "-add-provider" switch is introduced which accepts module or
module/class
• Add API to run any accessible "main" class within a module (MODULES-342)

The following deprecations were introduced:

• APIs which accept java.lang.instrument.ClassFileTransformer are
deprecated in favor of org.jboss.modules.ClassTransformer
(MODULES-346)
• Module index related command line switches and operations are
deprecated (MODULES-345)
• Resource root names are deprecated and are no longer used or
supported (though the APIs and XML attributes remain for
compatibility) (MODULES-352)
• "system" dependencies are deprecated (MODULES-254, MODULES-314)

-- 
- DML



More information about the wildfly-dev mailing list