Version 2

    This page aims at collecting misc tips, idea, etc. that are likely to be useful when adding a new subsystem integration on AS 7, even if only to save some time debugging and looking for the reason of issues; feel free to contribute also adding new categories below.

     

    Modules and classloading

    As a general suggestion, consider enabling TRACE logs for org.jboss.modules whenever facing ClassNotFoundException. The modules classloading logging still needs to be optimized/reviewed, hence you might miss the actual root cause of problems if the logging is not verbose enought.

    Service API

    The services attribute of the module element allows for enabling import of META-INF/services/... declarations in dependency modules. That's useful for instance when doing something like classLoader.getResourceAsStream("META-INF/service/foo") and expecting all the META-INF/services/.. declarations in the modules contributing to defining the classloader to be considered, not only those in the main module the classloader comes from.

     

    e.g.

    <module xmlns="urn:jboss:module:1.0" name="org.jboss.as.webservices">
    
        <resources>
            <!-- Insert resources here -->
        </resources>
    
        <dependencies>
       ...
            <module name="org.jboss.ws.common" />
            <module name="org.jboss.ws.cxf.jbossws-cxf-factories" services="import"/>
       ...
        </dependencies>
    </module>