Version 2

    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