[jira] [Commented] (AMQ-7309) Add JMS 2.0 support
[ https://issues.apache.org/jira/browse/AMQ-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17347604#comment-17347604 ] Romain Manni-Bucau commented on AMQ-7309: - Up, can tomee be imported, think minimum delivery is to provide JMScontext feature which covers JMS 2 API. Then adding a shade to have jakarta classified (as maven classifier) artifact is another trivial action to do to be jakarta friendly then I guess AMQ 5 can finally be JMS 2 friendly enough for all users so: 1. import tomee code to have a JMS2 API compliance 2. provide jakarta artifact (likely with some bom for consumers) and done AMQ6 is not a replacement of AMQ5 and both have pros and cons so I guess AMQ5 JMS2 support is a must have for next release. Can it happen since most of the work is actually done, just have to be imported? > Add JMS 2.0 support > --- > > Key: AMQ-7309 > URL: https://issues.apache.org/jira/browse/AMQ-7309 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker, JMS client >Reporter: Jean-Baptiste Onofré >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.17.0 > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (AMQ-7309) Add JMS 2.0 support
[ https://issues.apache.org/jira/browse/AMQ-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348580#comment-17348580 ] Romain Manni-Bucau commented on AMQ-7309: - [~cshannon] it is more than fine to fully implement all JMS 2 method too and happy if you take the lead on that but the effort of this ticket was only to provide the JMSContext convenient methods to users for ActiveMQ 5 and not force users to use yet another broker (which is not an option in prod). The TomEE option works generally more than enough and relies on 1.1 method so guess for next minor it is the option to take which will provide 1.1 compat and some 2.0 capabilities. Don't get me wrong, I'm happy to get more but if you -1 you must also provide a solution to users and not just say "" ;). Since there is an agreement on the community about having this I think it is the way to go until you agree to go with the full JMS 2 impl which is your proposal if I read it right? > Add JMS 2.0 support > --- > > Key: AMQ-7309 > URL: https://issues.apache.org/jira/browse/AMQ-7309 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker, JMS client >Reporter: Jean-Baptiste Onofré >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.17.0 > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (AMQ-7309) Add JMS 2.0 support
[ https://issues.apache.org/jira/browse/AMQ-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17348649#comment-17348649 ] Romain Manni-Bucau commented on AMQ-7309: - [~cshannon] still means you can implement 90% of what is used from JMS 2 in AMQ 5 and catch up after. Also keep in mind the thread you mention is a new one where some people try to prevent it from happening but there are multiple thread from the last *6* years agreeing on doing it, just do a quick search over the apache discussion channel (including the list indeed) so, yes there is an agreement no new relevant point make AMQ5 moving to JMS 2 can prevent. You want to do it by step, we can, but until you have a reason to block AMQ5 dev I guess it has to move foward. > Add JMS 2.0 support > --- > > Key: AMQ-7309 > URL: https://issues.apache.org/jira/browse/AMQ-7309 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker, JMS client >Reporter: Jean-Baptiste Onofré >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.17.0 > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (AMQ-7309) Add JMS 2.0 support
[ https://issues.apache.org/jira/browse/AMQ-7309?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17127689#comment-17127689 ] Romain Manni-Bucau commented on AMQ-7309: - Up, any news about that? investment for a minimal viable impl is quite low (tomee impl was less than 2 days AFAIK and is fully "importable" with very few tweaks - like the txmgr config which is different). For instance Payara also supports JMS 2 on top of AMQ ([https://blog.payara.fish/connect-payara-micro-to-external-jms-broker]) so it can be finally time to make it available for all users and not just some app server ones, in particular with the number of brokers out there with some AMQ specific wire formats. > Add JMS 2.0 support > --- > > Key: AMQ-7309 > URL: https://issues.apache.org/jira/browse/AMQ-7309 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker, JMS client >Reporter: Jean-Baptiste Onofré >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.17.0 > > -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Commented] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17142114#comment-17142114 ] Romain Manni-Bucau commented on AMQ-7072: - Up, any hope to be able to run without jackson in a coming release even if default impl sticks to jackson (or better to jackson as jsonb or AMQJson impl)? > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.17.0 > > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian Jira (v8.3.4#803005)
[jira] [Created] (AMQ-6051) ActiveMQConnection leaking thread when resources are not well closed
Romain Manni-Bucau created AMQ-6051: --- Summary: ActiveMQConnection leaking thread when resources are not well closed Key: AMQ-6051 URL: https://issues.apache.org/jira/browse/AMQ-6051 Project: ActiveMQ Issue Type: Bug Affects Versions: 5.12.0 Reporter: Romain Manni-Bucau ActiveMQConnection starts a session task thread but doesnt close it if close() is called and the broker doesnt respond {code} try { if (isConnectionInfoSentToBroker) { // If we announced ourselves to the broker.. Try to let the broker // know that the connection is being shutdown. RemoveInfo removeCommand = info.createRemoveCommand(); removeCommand.setLastDeliveredSequenceId(lastDeliveredSequenceId); try { doSyncSendPacket(removeCommand, closeTimeout); } catch (JMSException e) { if (e.getCause() instanceof RequestTimedOutIOException) { // expected } else { throw e; } } doAsyncSendPacket(new ShutdownInfo()); } } finally { // ensure we clean up this connection anyway even if previous send fail // which can happen if we lost the connection with the broker started.set(false); // TODO if we move the TaskRunnerFactory to the connection // factory // then we may need to call // factory.onConnectionClose(this); if (sessionTaskRunner != null) { sessionTaskRunner.shutdown(); } closed.set(true); closing.set(false); } {code} solves it tested on 5.12.0 but 5.12.x has the same code so I guess it has the same issue -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (AMQ-6051) ActiveMQConnection leaking thread when resources are not well closed
[ https://issues.apache.org/jira/browse/AMQ-6051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15012299#comment-15012299 ] Romain Manni-Bucau commented on AMQ-6051: - created https://github.com/apache/activemq/pull/157 > ActiveMQConnection leaking thread when resources are not well closed > > > Key: AMQ-6051 > URL: https://issues.apache.org/jira/browse/AMQ-6051 > Project: ActiveMQ > Issue Type: Bug >Affects Versions: 5.12.0 >Reporter: Romain Manni-Bucau > > ActiveMQConnection starts a session task thread but doesnt close it if > close() is called and the broker doesnt respond > {code} > try { > if (isConnectionInfoSentToBroker) { > // If we announced ourselves to the broker.. Try > to let the broker > // know that the connection is being shutdown. > RemoveInfo removeCommand = > info.createRemoveCommand(); > > removeCommand.setLastDeliveredSequenceId(lastDeliveredSequenceId); > try { > doSyncSendPacket(removeCommand, closeTimeout); > } catch (JMSException e) { > if (e.getCause() instanceof > RequestTimedOutIOException) { > // expected > } else { > throw e; > } > } > doAsyncSendPacket(new ShutdownInfo()); > } > } finally { > // ensure we clean up this connection anyway even if > previous send fail > // which can happen if we lost the connection with > the broker > started.set(false); > // TODO if we move the TaskRunnerFactory to the > connection > // factory > // then we may need to call > // factory.onConnectionClose(this); > if (sessionTaskRunner != null) { > sessionTaskRunner.shutdown(); > } > closed.set(true); > closing.set(false); > } > {code} > solves it > tested on 5.12.0 but 5.12.x has the same code so I guess it has the same issue -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Created] (ARTEMIS-1020) org.apache.artemis.client.cdi.extension.ArtemisExtension doesnt discover configurations
Romain Manni-Bucau created ARTEMIS-1020: --- Summary: org.apache.artemis.client.cdi.extension.ArtemisExtension doesnt discover configurations Key: ARTEMIS-1020 URL: https://issues.apache.org/jira/browse/ARTEMIS-1020 Project: ActiveMQ Artemis Issue Type: Bug Affects Versions: 1.5.3 Reporter: Romain Manni-Bucau Using producers on openwebbeans client or server configurations are not found and it leads to an ambiguous resolution. I think ProcessBean should be observed instead of ProcessAnnotatedType to capture the actual beans since the PAT event doesnt guarantee the bean will be at runtime. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ARTEMIS-1020) org.apache.artemis.client.cdi.extension.ArtemisExtension doesnt discover configurations
[ https://issues.apache.org/jira/browse/ARTEMIS-1020?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15897682#comment-15897682 ] Romain Manni-Bucau commented on ARTEMIS-1020: - have a producer method in my test but same applies to plain beans or producer fields since they can be vetoed. > org.apache.artemis.client.cdi.extension.ArtemisExtension doesnt discover > configurations > --- > > Key: ARTEMIS-1020 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1020 > Project: ActiveMQ Artemis > Issue Type: Bug >Affects Versions: 1.5.3 >Reporter: Romain Manni-Bucau >Assignee: John D. Ament > > Using producers on openwebbeans client or server configurations are not found > and it leads to an ambiguous resolution. I think ProcessBean should be > observed instead of ProcessAnnotatedType to capture the actual beans since > the PAT event doesnt guarantee the bean will be at runtime. -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (ARTEMIS-1070) provide some transaction manager locator OOTB
Romain Manni-Bucau created ARTEMIS-1070: --- Summary: provide some transaction manager locator OOTB Key: ARTEMIS-1070 URL: https://issues.apache.org/jira/browse/ARTEMIS-1070 Project: ActiveMQ Artemis Issue Type: Improvement Affects Versions: 2.0.0 Reporter: Romain Manni-Bucau If you want to use a tx mgr with artemis you need to write a locator for it. Would be great to support it OOTB for well known server. For openejb it looks like {code} import org.apache.activemq.artemis.service.extensions.transactions.TransactionManagerLocator; import org.apache.openejb.OpenEJB; import javax.transaction.TransactionManager; public class OpenEJBTransactionManagerLocator implements TransactionManagerLocator { @Override public TransactionManager getTransactionManager() { return OpenEJB.getTransactionManager(); } } {code} But it is also accessible through JNDI which would fit ost of servers. OpenJPA has a good class to lookup the transaction manager (see https://github.com/apache/openjpa/blob/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ee/AutomaticManagedRuntime.java#L55) maybe it can be used as a starting point to get impl automatic and just a flag to activate the tx mgr usage or not. wdyt? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ARTEMIS-1070) provide some transaction manager locator OOTB
[ https://issues.apache.org/jira/browse/ARTEMIS-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15942468#comment-15942468 ] Romain Manni-Bucau commented on ARTEMIS-1070: - I have just deployed the ra in tomee - have a blog post scheduled for tomorrow about it. Will be on IRC also if easier in ~8h. > provide some transaction manager locator OOTB > - > > Key: ARTEMIS-1070 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1070 > Project: ActiveMQ Artemis > Issue Type: Improvement >Affects Versions: 2.0.0 >Reporter: Romain Manni-Bucau > > If you want to use a tx mgr with artemis you need to write a locator for it. > Would be great to support it OOTB for well known server. > For openejb it looks like > {code} > import > org.apache.activemq.artemis.service.extensions.transactions.TransactionManagerLocator; > import org.apache.openejb.OpenEJB; > import javax.transaction.TransactionManager; > public class OpenEJBTransactionManagerLocator implements > TransactionManagerLocator { > @Override > public TransactionManager getTransactionManager() { > return OpenEJB.getTransactionManager(); > } > } > {code} > But it is also accessible through JNDI which would fit ost of servers. > OpenJPA has a good class to lookup the transaction manager (see > https://github.com/apache/openjpa/blob/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ee/AutomaticManagedRuntime.java#L55) > maybe it can be used as a starting point to get impl automatic and just a > flag to activate the tx mgr usage or not. > wdyt? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Commented] (ARTEMIS-1070) provide some transaction manager locator OOTB
[ https://issues.apache.org/jira/browse/ARTEMIS-1070?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15944675#comment-15944675 ] Romain Manni-Bucau commented on ARTEMIS-1070: - will be https://blog-rmannibucau.rhcloud.com/#/post/apache-tomee-artemis in a couple of hours, Summary is https://gist.github.com/rmannibucau/3e8daa87c9d6be606c492d4a136b443e > provide some transaction manager locator OOTB > - > > Key: ARTEMIS-1070 > URL: https://issues.apache.org/jira/browse/ARTEMIS-1070 > Project: ActiveMQ Artemis > Issue Type: Improvement >Affects Versions: 2.0.0 >Reporter: Romain Manni-Bucau > > If you want to use a tx mgr with artemis you need to write a locator for it. > Would be great to support it OOTB for well known server. > For openejb it looks like > {code} > import > org.apache.activemq.artemis.service.extensions.transactions.TransactionManagerLocator; > import org.apache.openejb.OpenEJB; > import javax.transaction.TransactionManager; > public class OpenEJBTransactionManagerLocator implements > TransactionManagerLocator { > @Override > public TransactionManager getTransactionManager() { > return OpenEJB.getTransactionManager(); > } > } > {code} > But it is also accessible through JNDI which would fit ost of servers. > OpenJPA has a good class to lookup the transaction manager (see > https://github.com/apache/openjpa/blob/trunk/openjpa-kernel/src/main/java/org/apache/openjpa/ee/AutomaticManagedRuntime.java#L55) > maybe it can be used as a starting point to get impl automatic and just a > flag to activate the tx mgr usage or not. > wdyt? -- This message was sent by Atlassian JIRA (v6.3.15#6346)
[jira] [Created] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B and import jackson in its distribution as an impl
Romain Manni-Bucau created AMQ-7072: --- Summary: ActiveMQ shouldn't import jackson but use JSON-B and import jackson in its distribution as an impl Key: AMQ-7072 URL: https://issues.apache.org/jira/browse/AMQ-7072 Project: ActiveMQ Issue Type: Improvement Reporter: Romain Manni-Bucau The regression we hit at the moment is that activemq enforces TomEE to import jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B spec is out and implemented by both I guess it can be the way to solve that issue. The most blocking thing is ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java - which can already not create a mapper if json is empty ;) - but here is the list of code location which would be neat to fix: {code} ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.annotation.JsonInclude; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.DeserializationFeature; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.ObjectMapper; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.DeserializationConfig; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.SerializationFeature; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.annotation.JsonDeserialize; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.databind.annotation.JsonSerialize; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import com.fasterxml.jackson.annotation.JsonProperty; ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import com.fasterxml.jackson.annotation.JsonProperty; ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import com.fasterxml.jackson.databind.ObjectMapper; ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import com.fasterxml.jackson.annotation.JsonIgnoreProperties; ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import com.fasterxml.jackson.annotation.JsonIgnoreProperties; ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import com.fasterxml.jackson.annotation.JsonIgnoreProperties; ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import com.fasterxml.jackson.annotation.JsonIgnoreProperties; ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import com.fasterxml.jackson.annotation.JsonIgnoreProperties; {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Updated] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Romain Manni-Bucau updated AMQ-7072: Summary: ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch (was: ActiveMQ shouldn't import jackson but use JSON-B and import jackson in its distribution as an impl ) > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16650139#comment-16650139 ] Romain Manni-Bucau commented on AMQ-7072: - [~cshannon] it is not only a single use case actually but N > 1 since you can have it as a user too. High level the goal is to reduce the implementation surfacing ActiveMQ and just relies on portable API. https://mvnrepository.com/artifact/io.devcon5/jackson-jsonb-provider/1.1 is usable for jackson. In terms of default impl, aligning our stack on an apache one is likely saner than relying on external vendors (for our own ecosystem) - "eat your own dogfood" ;). > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.16.0 > > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16650273#comment-16650273 ] Romain Manni-Bucau commented on AMQ-7072: - [~cshannon] well JSON-B was not there years ago or java 8 base was not in AMQ project, now it is the case AMQ should pay its debt and move forward, this is what this ticket is about > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.16.0 > > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16650335#comment-16650335 ] Romain Manni-Bucau commented on AMQ-7072: - Hmm, I don't get the rational here, if you review the adherence it is only about "ignore unknown properties" and "rename this field as xxx" so the switch is safe. Do you expect any internals dependency? > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.16.0 > > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch
[ https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16650374#comment-16650374 ] Romain Manni-Bucau commented on AMQ-7072: - [~cshannon] the point is not about aligning the impl on tomee but more about using apache impl instead of jackson which was pretty alone when imported in AMQ. This is why it is johnzon and not yasson typically. On the "users might then be using Jackson for other Json serialization that is pulled in by ActiveMQ through maven" which is a correct point you can also notice that this is not intended and not an API exposed by API but it is *leaked* by AMQ so all good to not pull it anymore. If a user relies on jackson in its app he should have added it directly in its pom and not rely on transitive deps which is a very bad practise - several validation maven plugins fail the build on such practises. > ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to > support impl switch > -- > > Key: AMQ-7072 > URL: https://issues.apache.org/jira/browse/AMQ-7072 > Project: ActiveMQ > Issue Type: Improvement >Reporter: Romain Manni-Bucau >Assignee: Jean-Baptiste Onofré >Priority: Major > Fix For: 5.16.0 > > > The regression we hit at the moment is that activemq enforces TomEE to import > jackson whereas it wants to keep johnzon as JSON mapper impl. Since JSON-B > spec is out and implemented by both I guess it can be the way to solve that > issue. > The most blocking thing is > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java > - which can already not create a mapper if json is empty ;) - but here is > the list of code location which would be neat to fix: > {code} > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonInclude; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.DeserializationConfig; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.SerializationFeature; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonDeserialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.databind.annotation.JsonSerialize; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Partitioning.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-partition/src/main/java/org/apache/activemq/partition/dto/Target.java:import > com.fasterxml.jackson.annotation.JsonProperty; > ./activemq-broker/src/main/java/org/apache/activemq/broker/jmx/DestinationsViewFilter.java:import > com.fasterxml.jackson.databind.ObjectMapper; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogWrite.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/WalAck.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/LogDelete.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Transfer.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > ./activemq-leveldb-store/src/main/java/org/apache/activemq/leveldb/replicated/dto/Login.java:import > com.fasterxml.jackson.annotation.JsonIgnoreProperties; > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)