The JcaExtension.writeWorkManagers method is not ensuring that ordering of xml elements follows the xsd order. Persisters should follow the xsd as the ensures consistent output.
There are two issues:
1) The 'default-work-manager' element will only go first if the name of the first wm in the model is 'default'. If the one with that name is 2nd or later, the element will be below some 'work-manager' elements.
2) The short-running-threads element will only be before long-running-threads if the child resources happen to be ordered that way. This one is easy to correct as the persister is using a for loop when it could simply be checking for the existence of the pool resources.
This kind of thing becomes more significant as we move to galleon for generating configs instead of hand coding them. The potential for resources getting added into the model in a different order than the xsd is higher.