The dependency on javax.transaction.api enforces provisioning of it. wildflyee.api dependencies are all optional but javax.transaction.api is a required dependency of some "datasources" JBoss Modules. So would be provisioned in a datasources usage context.FYI: the version 2.x of the wildfly-datasources-galleon-pack, depends on WF 26.x. A 3.x Alpha version will depend on WF 27 Alpha5. In this release, we will remove the javax.transaction.api dependencies.
Do we know that none of the drivers need this dependency? I know of at least one driver (DB2) that actually uses JTA, or at least incorporates it in bytecode that Graal dead code removal doesn't eliminate:
Brian, looking at the set of dependencies, I am wandering if javaee.api should be replaced by wildflyee.api? javaee.api is just an alias to wildflyee.api.Hmm. I didn't notice that. That dependency takes this conversation in a whole new direction, as it basically means all the EE APIs that are provisioned are exposed to the driver module. So just removing javax.transaction.api basically amounts to removing redundant code with no functional effect.
Today the target of an alias is provisioned along with the alias. WFGP-233 would allow the reverse, bring the alias if the target is provisioned.
It's fine to replace javaee.api with wildflyee.api. In fact given https://issues.redhat.com/browse/WFGP-233 it seems necessary, unless there is something I'm not seeing that guarantees javaee.api is always provisioned.
_______________________________________________
Thank-you.JF
On 9/15/22 6:08 PM, Brian Stansberry wrote:
Great; thanks Martin!
On Thu, Sep 15, 2022 at 6:14 AM Martin Simka <msimka@redhat.com> wrote:
I have run our datasource test suite with driver module without `javax.transaction.api` dependency (DB2, MariaDB, MS SQL Server, MySQL, Oracle, PostgreSQL, EDB, Sybase) and there are no issues. It uses a manually added module with JDBC driver, not a galleon pack, but I assume it is an equal setup.
Documentation might need some updates too [1].
On Wed, Sep 14, 2022 at 6:03 PM Brian Stansberry <brian.stansberry@redhat.com> wrote:
_______________________________________________I've noticed that the module.xml files for the various driver modules in wildfly-datasources-galleon-pack, e.g. [1], include a dependency on the 'javax.transaction.api' module. I wonder if this is needed and if there's a good way to check if not.
The javax.transaction.xa package is required by JDBC, but that package comes from Java SE and is not exposed by our 'javax.transaction.api' module. Our module exposes the Jakarta Transactions API, which, even in its EE 8 javax namespace form did not include javax.transaction.xa. Use of the Jakarta Transactions API is not part of the JDBC spec, so it's not a given that a 'javax.transaction.api' module dep is needed.
I suppose it's possible that one or more of the drivers we support in wildfly-datasources-galleon-pack uses JTA internally, or did in some release, in which case removing the module.xml dep would break things. Note though that use of EE 8 Jakarta Transactions wouldn't work anyway for WF Preview or standard WildFly 27 and later, as those server versions do not expose jakarta.* namespace JTA.Best regards,
Brian
wildfly-dev mailing list -- wildfly-dev@lists.jboss.org
To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
--
Brian StansberryPrincipal Architect, Red Hat JBoss EAPHe/Him/His
_______________________________________________ wildfly-dev mailing list -- wildfly-dev@lists.jboss.org To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org %(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
wildfly-dev mailing list -- wildfly-dev@lists.jboss.org
To unsubscribe send an email to wildfly-dev-leave@lists.jboss.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s
--
Brian StansberryPrincipal Architect, Red Hat JBoss EAPHe/Him/His