Transaction subsystem dependencies

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Transaction subsystem dependencies

Tristan Tarrant
Hi all,

I'm reworking the Infinispan Server package so that it is built around
WildFly Core as I want to keep it as lean as possible.
I need to pull in a couple of additional subsystems from WildFly proper
and one of them is causing some head-scratching: the transactions
subsystem. It has a bunch of hard dependencies on a ton of modules which
really sound optional. Examples:

- the IIOP stuff
- Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
- HornetQ

None of the above are really needed by Infinispan Server. I guess I
could apply manual surgery to the module.xml file to remove stuff I
think is unnecessary and let my testsuite verify if I'm being too
aggressive, but I was wondering whether it would be better for the
upstream project to be a bit more careful with the dependencies.

Thanks for any suggestions

Tristan
--
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Michael Musgrove
On 29/05/15 13:22, Tristan Tarrant wrote:

> Hi all,
>
> I'm reworking the Infinispan Server package so that it is built around
> WildFly Core as I want to keep it as lean as possible.
> I need to pull in a couple of additional subsystems from WildFly proper
> and one of them is causing some head-scratching: the transactions
> subsystem. It has a bunch of hard dependencies on a ton of modules which
> really sound optional. Examples:
>
> - the IIOP stuff
> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
> - HornetQ

We need IIOP for JTS support (we use the same jars for JTA and JTS so we
need it regardless of whether you enable JTS) .

We need  hornetq to leverage their fast journal (for our transaction logs).

I agree that Naryana compensations should not be required by the
subsystem and this seems to be bringing in the bulk of the extra
dependencies. I will look into why we need to include it in the subsystem.

Do you have more examples or do you agree that if we addressed the need
for compensations in the subsystem then that would be good enough.

Mike

>
> None of the above are really needed by Infinispan Server. I guess I
> could apply manual surgery to the module.xml file to remove stuff I
> think is unnecessary and let my testsuite verify if I'm being too
> aggressive, but I was wondering whether it would be better for the
> upstream project to be a bit more careful with the dependencies.
>
> Thanks for any suggestions
>
> Tristan


--
Michael Musgrove
Red Hat UK Ltd, Transactions Team
e: [hidden email]
t: +44 191 243 0870

Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham (US), Charles Peters (US), Matt Parson (US), Michael O'Neill(Ireland)

_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Tristan Tarrant


On 29/05/2015 15:14, Michael Musgrove wrote:

> On 29/05/15 13:22, Tristan Tarrant wrote:
>> Hi all,
>>
>> I'm reworking the Infinispan Server package so that it is built around
>> WildFly Core as I want to keep it as lean as possible.
>> I need to pull in a couple of additional subsystems from WildFly proper
>> and one of them is causing some head-scratching: the transactions
>> subsystem. It has a bunch of hard dependencies on a ton of modules which
>> really sound optional. Examples:
>>
>> - the IIOP stuff
>> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
>> - HornetQ
>
> We need IIOP for JTS support (we use the same jars for JTA and JTS so we
> need it regardless of whether you enable JTS) .
>
> We need  hornetq to leverage their fast journal (for our transaction logs).
>
> I agree that Naryana compensations should not be required by the
> subsystem and this seems to be bringing in the bulk of the extra
> dependencies. I will look into why we need to include it in the subsystem.
>
> Do you have more examples or do you agree that if we addressed the need
> for compensations in the subsystem then that would be good enough.

Thanks for explaining the others, but yes, if anything can be made
optional, I'm all for it.

Tristan

--
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Michael Musgrove
On 29/05/15 14:21, Tristan Tarrant wrote:

>
>
> On 29/05/2015 15:14, Michael Musgrove wrote:
>> On 29/05/15 13:22, Tristan Tarrant wrote:
>>> Hi all,
>>>
>>> I'm reworking the Infinispan Server package so that it is built around
>>> WildFly Core as I want to keep it as lean as possible.
>>> I need to pull in a couple of additional subsystems from WildFly proper
>>> and one of them is causing some head-scratching: the transactions
>>> subsystem. It has a bunch of hard dependencies on a ton of modules
>>> which
>>> really sound optional. Examples:
>>>
>>> - the IIOP stuff
>>> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
>>> - HornetQ
>>
>> We need IIOP for JTS support (we use the same jars for JTA and JTS so we
>> need it regardless of whether you enable JTS) .
>>
>> We need  hornetq to leverage their fast journal (for our transaction
>> logs).
>>
>> I agree that Naryana compensations should not be required by the
>> subsystem and this seems to be bringing in the bulk of the extra
>> dependencies. I will look into why we need to include it in the
>> subsystem.
>>
>> Do you have more examples or do you agree that if we addressed the need
>> for compensations in the subsystem then that would be good enough.
>
> Thanks for explaining the others, but yes, if anything can be made
> optional, I'm all for it.

You can track our progress via the forum post I just made:
https://developer.jboss.org/message/932005#932005

Mike

>
> Tristan
>


--
Michael Musgrove
Red Hat UK Ltd, Transactions Team
e: [hidden email]
t: +44 191 243 0870

Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham (US), Charles Peters (US), Matt Parson (US), Michael O'Neill(Ireland)

_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Andrig Miller
In reply to this post by Tristan Tarrant


----- Original Message -----

> From: "Tristan Tarrant" <[hidden email]>
> To: "WildFly Dev" <[hidden email]>
> Sent: Friday, May 29, 2015 6:22:39 AM
> Subject: [wildfly-dev] Transaction subsystem dependencies
>
> Hi all,
>
> I'm reworking the Infinispan Server package so that it is built
> around
> WildFly Core as I want to keep it as lean as possible.
> I need to pull in a couple of additional subsystems from WildFly
> proper
> and one of them is causing some head-scratching: the transactions
> subsystem. It has a bunch of hard dependencies on a ton of modules
> which
> really sound optional. Examples:
>
> - the IIOP stuff
> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
> - HornetQ
>

The HornetQ dependency is for using the HornetQ journal as the transaction journal.  For transactions, you definitely want that for performance reasons.

Andy

> None of the above are really needed by Infinispan Server. I guess I
> could apply manual surgery to the module.xml file to remove stuff I
> think is unnecessary and let my testsuite verify if I'm being too
> aggressive, but I was wondering whether it would be better for the
> upstream project to be a bit more careful with the dependencies.
>
> Thanks for any suggestions
>
> Tristan
> --
> Tristan Tarrant
> Infinispan Lead
> JBoss, a division of Red Hat
> _______________________________________________
> wildfly-dev mailing list
> [hidden email]
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Tristan Tarrant
Couldn't this depend on org.hornetq:hornetq-journal only ? Depending on
the whole hornetq module means we're pulling in all of the JMS
functionality and APIs as well

Tristan

On 29/05/2015 15:42, Andrig T. Miller wrote:

>
>
> ----- Original Message -----
>> From: "Tristan Tarrant" <[hidden email]>
>> To: "WildFly Dev" <[hidden email]>
>> Sent: Friday, May 29, 2015 6:22:39 AM
>> Subject: [wildfly-dev] Transaction subsystem dependencies
>>
>> Hi all,
>>
>> I'm reworking the Infinispan Server package so that it is built
>> around
>> WildFly Core as I want to keep it as lean as possible.
>> I need to pull in a couple of additional subsystems from WildFly
>> proper
>> and one of them is causing some head-scratching: the transactions
>> subsystem. It has a bunch of hard dependencies on a ton of modules
>> which
>> really sound optional. Examples:
>>
>> - the IIOP stuff
>> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
>> - HornetQ
>>
>
> The HornetQ dependency is for using the HornetQ journal as the transaction journal.  For transactions, you definitely want that for performance reasons.
>
> Andy
>
>> None of the above are really needed by Infinispan Server. I guess I
>> could apply manual surgery to the module.xml file to remove stuff I
>> think is unnecessary and let my testsuite verify if I'm being too
>> aggressive, but I was wondering whether it would be better for the
>> upstream project to be a bit more careful with the dependencies.
>>
>> Thanks for any suggestions
>>
>> Tristan
>> --
>> Tristan Tarrant
>> Infinispan Lead
>> JBoss, a division of Red Hat
>> _______________________________________________
>> wildfly-dev mailing list
>> [hidden email]
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>
>
>

--
Tristan Tarrant
Infinispan Lead
JBoss, a division of Red Hat
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Andrig Miller
I believe it could.  If memory serves me correctly, when the transaction team added this, the HornetQ team had not yet split out the journal.

Andy

----- Original Message -----

> From: "Tristan Tarrant" <[hidden email]>
> To: "Andrig T. Miller" <[hidden email]>
> Cc: "WildFly Dev" <[hidden email]>
> Sent: Friday, May 29, 2015 8:11:09 AM
> Subject: Re: [wildfly-dev] Transaction subsystem dependencies
>
> Couldn't this depend on org.hornetq:hornetq-journal only ? Depending
> on
> the whole hornetq module means we're pulling in all of the JMS
> functionality and APIs as well
>
> Tristan
>
> On 29/05/2015 15:42, Andrig T. Miller wrote:
> >
> >
> > ----- Original Message -----
> >> From: "Tristan Tarrant" <[hidden email]>
> >> To: "WildFly Dev" <[hidden email]>
> >> Sent: Friday, May 29, 2015 6:22:39 AM
> >> Subject: [wildfly-dev] Transaction subsystem dependencies
> >>
> >> Hi all,
> >>
> >> I'm reworking the Infinispan Server package so that it is built
> >> around
> >> WildFly Core as I want to keep it as lean as possible.
> >> I need to pull in a couple of additional subsystems from WildFly
> >> proper
> >> and one of them is causing some head-scratching: the transactions
> >> subsystem. It has a bunch of hard dependencies on a ton of modules
> >> which
> >> really sound optional. Examples:
> >>
> >> - the IIOP stuff
> >> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
> >> - HornetQ
> >>
> >
> > The HornetQ dependency is for using the HornetQ journal as the
> > transaction journal.  For transactions, you definitely want that
> > for performance reasons.
> >
> > Andy
> >
> >> None of the above are really needed by Infinispan Server. I guess
> >> I
> >> could apply manual surgery to the module.xml file to remove stuff
> >> I
> >> think is unnecessary and let my testsuite verify if I'm being too
> >> aggressive, but I was wondering whether it would be better for the
> >> upstream project to be a bit more careful with the dependencies.
> >>
> >> Thanks for any suggestions
> >>
> >> Tristan
> >> --
> >> Tristan Tarrant
> >> Infinispan Lead
> >> JBoss, a division of Red Hat
> >> _______________________________________________
> >> wildfly-dev mailing list
> >> [hidden email]
> >> https://lists.jboss.org/mailman/listinfo/wildfly-dev
> >>
> >
> >
>
> --
> Tristan Tarrant
> Infinispan Lead
> JBoss, a division of Red Hat
>
_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Michael Musgrove
Thanks,

I have added JBTM-2424 to get the dependency moved to hornetq-journal
(instead of hornetq-core).

Mike

> I believe it could.  If memory serves me correctly, when the transaction team added this, the HornetQ team had not yet split out the journal.
>
> Andy
>
> ----- Original Message -----
>> From: "Tristan Tarrant" <[hidden email]>
>> To: "Andrig T. Miller" <[hidden email]>
>> Cc: "WildFly Dev" <[hidden email]>
>> Sent: Friday, May 29, 2015 8:11:09 AM
>> Subject: Re: [wildfly-dev] Transaction subsystem dependencies
>>
>> Couldn't this depend on org.hornetq:hornetq-journal only ? Depending
>> on
>> the whole hornetq module means we're pulling in all of the JMS
>> functionality and APIs as well
>>
>> Tristan
>>
>> On 29/05/2015 15:42, Andrig T. Miller wrote:
>>>
>>> ----- Original Message -----
>>>> From: "Tristan Tarrant" <[hidden email]>
>>>> To: "WildFly Dev" <[hidden email]>
>>>> Sent: Friday, May 29, 2015 6:22:39 AM
>>>> Subject: [wildfly-dev] Transaction subsystem dependencies
>>>>
>>>> Hi all,
>>>>
>>>> I'm reworking the Infinispan Server package so that it is built
>>>> around
>>>> WildFly Core as I want to keep it as lean as possible.
>>>> I need to pull in a couple of additional subsystems from WildFly
>>>> proper
>>>> and one of them is causing some head-scratching: the transactions
>>>> subsystem. It has a bunch of hard dependencies on a ton of modules
>>>> which
>>>> really sound optional. Examples:
>>>>
>>>> - the IIOP stuff
>>>> - Narayana compensations (JAX-WS, JAX-RS, Servlet API, Weld)
>>>> - HornetQ
>>>>
>>> The HornetQ dependency is for using the HornetQ journal as the
>>> transaction journal.  For transactions, you definitely want that
>>> for performance reasons.
>>>
>>> Andy
>>>
>>>> None of the above are really needed by Infinispan Server. I guess
>>>> I
>>>> could apply manual surgery to the module.xml file to remove stuff
>>>> I
>>>> think is unnecessary and let my testsuite verify if I'm being too
>>>> aggressive, but I was wondering whether it would be better for the
>>>> upstream project to be a bit more careful with the dependencies.
>>>>
>>>> Thanks for any suggestions
>>>>
>>>> Tristan
>>>> --
>>>> Tristan Tarrant
>>>> Infinispan Lead
>>>> JBoss, a division of Red Hat
>>>> _______________________________________________
>>>> wildfly-dev mailing list
>>>> [hidden email]
>>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>>
>>>
>> --
>> Tristan Tarrant
>> Infinispan Lead
>> JBoss, a division of Red Hat
>>
> _______________________________________________
> wildfly-dev mailing list
> [hidden email]
> https://lists.jboss.org/mailman/listinfo/wildfly-dev


--
Michael Musgrove
Red Hat UK Ltd, Transactions Team
e: [hidden email]
t: +44 191 243 0870

Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham (US), Charles Peters (US), Matt Parson (US), Michael O'Neill(Ireland)

_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev
Reply | Threaded
Open this post in threaded view
|

Re: Transaction subsystem dependencies

Jeff Mesnil

> On 29 May 2015, at 17:12, Michael Musgrove <[hidden email]> wrote:
>
> Thanks,
>
> I have added JBTM-2424 to get the dependency moved to hornetq-journal
> (instead of hornetq-core).

Maybe you should move away from the hornetq-journal module and use instead the org.apache.activemq:artemis-journal instead.
HornetQ code has been donated to Apache ActiveMQ and is now in maintenance mode only.

I’ll soon submit a PR to replace HornetQ by ActiveMQ Artemis[1]. You’ll then be able to use its journal artifact afterwards. One related task is to clean up the HornetQ dependencies in WildFly modules. Ideally, I don’t want to keep any HornetQ dependency that could be replaced by an equivalent dependency to Artemis.

jeff

[1] https://issues.jboss.org/browse/WFLY-4584
--
Jeff Mesnil
JBoss, a division of Red Hat
http://jmesnil.net/


_______________________________________________
wildfly-dev mailing list
[hidden email]
https://lists.jboss.org/mailman/listinfo/wildfly-dev