[wildfly-dev] WildFly's transaction subsystem needs a diet (too much Artemis!)

Tristan Tarrant ttarrant at redhat.com
Tue Sep 13 03:08:24 EDT 2016


Hi all,

ever since wildfly-core was conceived I've wanted to deliver an 
Infinispan Server distribution based on it using a feature-pack. 
Unfortunately this has not been possible because we depend on two 
subsystems which are not part of core: datasource and transactions.
Our current approach, therefore,  implements a feature pack based on the 
full wildfly. We then use some scripts to build a tree of module 
dependencies, we identify unused modules and we trim them from the final 
distribution.
Unfortunately this trimming is not effective as it could be because of 
the org.jboss.as.transactions module which pulls in a ton of 
nono-optional dependencies. You can find the dependency tree at the end 
of this e-mail.
In particular the culprit seems to be org.jboss.jts which depends on 
org.apache.activemq.artemis which in turn is a kitchen-sink of artemis-* 
dependencies. [1]

I guess Narayana is only really interested in Artemis' journal, so the 
laziness of the artemis module is particularly painful.

Can the artemis-journal/artemis-native jars be split out into their own 
independent module ? This might be harder than it seems as the journal 
classes seem to depend on artemis-server, so deeper surgery is needed.

Tristan

[1] 
https://github.com/wildfly/wildfly/blob/master/feature-pack/src/main/resources/modules/system/layers/base/org/jboss/jts/main/module.xml#L44


org.jboss.as.transactions
       org.jboss.jboss-transaction-spi
         javax.resource.api
       org.jboss.jts
         org.omg.api
           javax.orb.api
             org.wildfly.iiop-openjdk
               org.jboss.metadata.ejb
               org.jboss.jts.integration
             org.jboss.iiop-client
               javax.ejb.api
                 javax.xml.rpc.api
                   javax.xml.soap.api
                 javax.rmi.api
         org.apache.activemq.artemis
           com.google.guava
           javax.jms.api
           org.apache.commons.beanutils
           org.wildfly.extension.messaging-activemq
             org.apache.activemq.artemis.ra
             org.jboss.as.cli
               org.jboss.aesh
                 org.fusesource.jansi
               org.wildfly.embedded
             org.jboss.as.weld
               ch.qos.cal10n
               javax.persistence.api
               org.hibernate.validator.cdi
                 org.hibernate.validator
                   com.fasterxml.classmate
                   org.jboss.weld.core
                     org.jboss.weld.api
                     org.jboss.weld.spi
                   org.jsoup
               org.wildfly.extension.bean-validation
               org.jboss.as.ejb3
                 org.hibernate
                 org.wildfly.clustering.api
                 org.wildfly.clustering.ee.spi
                 org.wildfly.clustering.ejb.spi
                   org.jboss.ejb-client
                   org.wildfly.clustering.service
                 org.wildfly.clustering.marshalling.api
                 org.wildfly.clustering.marshalling.jboss
                 org.wildfly.clustering.spi
                   org.wildfly.clustering.ejb.infinispan
                     org.wildfly.clustering.ee.infinispan
                     org.wildfly.clustering.infinispan.spi
                     org.wildfly.clustering.server
                       org.wildfly.clustering.jgroups.spi
                         org.wildfly.clustering.jgroups.api
                       org.wildfly.clustering.singleton
                   org.wildfly.clustering.web.infinispan
                     net.jcip
                     org.wildfly.clustering.web.api
                     org.wildfly.clustering.web.spi
                 org.jboss.as.connector
                   org.jboss.ironjacamar.api
                   org.jboss.ironjacamar.impl
                   org.jboss.ironjacamar.jdbcadapters
                 org.jboss.ejb3
               org.jboss.as.webservices.server.integration
                 asm.asm
                 javax.jws.api
                 javax.wsdl4j.api
                 javax.xml.ws.api
                 org.jboss.as.webservices
                 com.sun.xml.messaging.saaj
                 org.apache.ws.security
                   org.apache.neethi
                   org.opensaml
                     org.bouncycastle
                 org.jboss.xts
                   org.jboss.narayana.compensations
                   org.jboss.narayana.txframework
               org.slf4j.ext
             org.hornetq.client
-- 
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat


More information about the wildfly-dev mailing list