WildFly main modules
WildFly main modules are all modules that are mentained by core WildFly team.
Extensions & Subsystems
Extensions can hold one or more subsystems.
Package name:
org.wildfly.extension.<extension-name>
Maven coordiates:
groupId
org.wildfly.extension.<extension-name>
artifactId
wildfly-<extension-name>
name
WildFly: <name of extension/subsystem>
Example
<groupId>org.wildfly</groupId> <artifactId>wildfly-undertow</artifactId> <name>WildFly: Undertow</name>
Subsystem support modules
Support modules themselves do not provide extension but rather support or are needed by extension module. They can be split in two categories, external dependencies and internal modules.
External dependencies
External modules that pack external dependencies as modules so they can be used in app server. Each module can consist from many jar dependencies so you get logicial grouping for set of dependencies as one module.
Module naming
Try to folow package names used or even maven groupId / artifactId. Just keep in mind that module:jar mapping can be 1:n. So you can have many maven deps used to form one module.
Example
Module Name org.hibernate
Module xml
<module xmlns="urn:jboss:module:1.3" name="org.hibernate"> <resources> <artifact name="${org.hibernate:hibernate-core}"/> <artifact name="${org.hibernate:hibernate-envers}"/> <artifact name="${org.hibernate:hibernate-entitymanager}"/> <artifact name="${org.hibernate:hibernate-infinispan}"/> <artifact name="${org.jipijapa:jipijapa-hibernate4-3}"/> </resources> <dependencies> .... </dependencies> </module>
Internal modules
Internal modules are part of WildFly codebase.
Package name
org.wildfly.<feature>
Maven coordinates:
groupId
org.wildfly.<feature-name>
artifactId
wildfly-<feature-name>
Name
WildFly: <feature-name>
example
<groupId>org.wildfly</groupId> <artifactId>wildfly-clustering-spi</artifactId> <name>WildFly: Clustering SPI</name>
Package name
org.wildfly.clustering.spi
Module name
org.wildfly.clustering.spi
Extras modules / features
Everything that is not mentained by core WildFly team must go under org.wildfly.extras Only thing must be honored is package name & groupId
Package name
org.wildfly.extras.<feature>
Maven coordinates:
groupId
org.wildfly.extras.<addon-name>
example
<groupId>org.wildfly.extras.jmx-console</groupId> <artifactId>jmx-console</artifactId> <name>WildFly JMX Console</name>
Package name
org.wildfly.extras.jmxconsole
Module name
org.wildfly.extras.jmx-console
Comments