[jira] [Commented] (ARTEMIS-2123) Paging not stopped if there are no consumers on one subscription

2018-10-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16649232#comment-16649232
 ] 

ASF GitHub Bot commented on ARTEMIS-2123:
-

Github user wy96f commented on a diff in the pull request:

https://github.com/apache/activemq-artemis/pull/2369#discussion_r224977706
  
--- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java
 ---
@@ -599,6 +600,29 @@ private long checkMinPage(Collection 
cursorList) {
 
}
 
+   private void deliverIfNecessary(Collection 
cursorList) {
+  long minPage = Long.MAX_VALUE;
+  PageSubscription slowSubscription = null;
+  int nonEmptyCursorNum = 0;
+
+  for (PageSubscription cursor : cursorList) {
+ long firstPage = cursor.getFirstPage();
+
+ // the cursor will return -1 if the cursor is empty
+ if (firstPage >= 0) {
+nonEmptyCursorNum++;
+if (firstPage < minPage) {
+   minPage = firstPage;
+   slowSubscription = cursor.getQueue().getMessageCount() == 0 
? cursor : null;
+}
+ }
+  }
+
+  if (nonEmptyCursorNum > 1 && slowSubscription != null) {
--- End diff --

> @clebertsuconic @wy96f
> Not sure but deliverIfNecessary could be written simlar to this one?
> 
> ```
>private void deliverIfNecessary(Collection 
cursorList, long minPage) {
>   for (PageSubscription cursor : cursorList) {
>  long firstPage = cursor.getFirstPage();
>  if (firstPage == minPage) {
> if (cursor.getQueue().getMessageCount() == 0) {
>cursor.getQueue().deliverAsync();
>break;
> }
>  }
>   }
>}
> ```
> As long as minPage is not Long.MAX_VALUE (it shouldn't be)...

@clebertsuconic @franz1981 Great, it's more precise. We can also judge 
whether cursorList.size() > 1 bcs for the queue or topic with only one 
subscription in which case cursorList.size() == 1 we don't need to call 
deliverAsync again.


> Paging not stopped if there are no consumers on one subscription
> 
>
> Key: ARTEMIS-2123
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2123
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.6.3
>Reporter: yangwei
>Priority: Major
>
> Reproduction steps:
>  # create a topic t and two subscriptions ta, tb
>  # send messages to ta and tb
>  # create ta consumers and receive all messages from ta
>  # close consumers
>  # only send message to tb
>  # create tb consumers and receive all message from tb
>  # topic not stopped paging



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (ARTEMIS-2123) Paging not stopped if there are no consumers on one subscription

2018-10-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16649228#comment-16649228
 ] 

ASF GitHub Bot commented on ARTEMIS-2123:
-

Github user wy96f commented on a diff in the pull request:

https://github.com/apache/activemq-artemis/pull/2369#discussion_r224977450
  
--- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java
 ---
@@ -599,6 +600,29 @@ private long checkMinPage(Collection 
cursorList) {
 
}
 
+   private void deliverIfNecessary(Collection 
cursorList) {
+  long minPage = Long.MAX_VALUE;
+  PageSubscription slowSubscription = null;
+  int nonEmptyCursorNum = 0;
+
+  for (PageSubscription cursor : cursorList) {
+ long firstPage = cursor.getFirstPage();
+
+ // the cursor will return -1 if the cursor is empty
+ if (firstPage >= 0) {
+nonEmptyCursorNum++;
+if (firstPage < minPage) {
+   minPage = firstPage;
+   slowSubscription = cursor.getQueue().getMessageCount() == 0 
? cursor : null;
+}
+ }
+  }
+
+  if (nonEmptyCursorNum > 1 && slowSubscription != null) {
--- End diff --

> this is saving a deliveryAsync call.. but I"m just wondering if it would 
be too costly to do the check on every queue?

All PageSubcriptions use the same executor and it will do many jobs such as 
PageSubscriptionImpl::cleanupEntries, DepageRunner, DeliverRunner, 
ExpiryScanner, PageCursorProviderImpl::scheduleCleanup, 
PageCursorProviderImpl::cleanup, etc. We'd better prevent these  extra needless 
deliverAsync calls.


> Paging not stopped if there are no consumers on one subscription
> 
>
> Key: ARTEMIS-2123
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2123
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.6.3
>Reporter: yangwei
>Priority: Major
>
> Reproduction steps:
>  # create a topic t and two subscriptions ta, tb
>  # send messages to ta and tb
>  # create ta consumers and receive all messages from ta
>  # close consumers
>  # only send message to tb
>  # create tb consumers and receive all message from tb
>  # topic not stopped paging



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (ARTEMIS-2123) Paging not stopped if there are no consumers on one subscription

2018-10-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16649198#comment-16649198
 ] 

ASF GitHub Bot commented on ARTEMIS-2123:
-

Github user wy96f commented on a diff in the pull request:

https://github.com/apache/activemq-artemis/pull/2369#discussion_r224976508
  
--- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java
 ---
@@ -599,6 +600,29 @@ private long checkMinPage(Collection 
cursorList) {
 
}
 
+   private void deliverIfNecessary(Collection 
cursorList) {
+  long minPage = Long.MAX_VALUE;
+  PageSubscription slowSubscription = null;
+  int nonEmptyCursorNum = 0;
+
+  for (PageSubscription cursor : cursorList) {
+ long firstPage = cursor.getFirstPage();
+
+ // the cursor will return -1 if the cursor is empty
+ if (firstPage >= 0) {
+nonEmptyCursorNum++;
+if (firstPage < minPage) {
+   minPage = firstPage;
+   slowSubscription = cursor.getQueue().getMessageCount() == 0 
? cursor : null;
+}
+ }
+  }
+
+  if (nonEmptyCursorNum > 1 && slowSubscription != null) {
+ slowSubscription.getQueue().deliverAsync();
--- End diff --

@clebertsuconic Thank you man. We're heavily using artemis in our company. 
It's a great product and thanks for your work. We are a team: shoukunhuai, me, 
shoukunhuai. We will keep on developing the code :)


> Paging not stopped if there are no consumers on one subscription
> 
>
> Key: ARTEMIS-2123
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2123
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.6.3
>Reporter: yangwei
>Priority: Major
>
> Reproduction steps:
>  # create a topic t and two subscriptions ta, tb
>  # send messages to ta and tb
>  # create ta consumers and receive all messages from ta
>  # close consumers
>  # only send message to tb
>  # create tb consumers and receive all message from tb
>  # topic not stopped paging



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (ARTEMIS-2123) Paging not stopped if there are no consumers on one subscription

2018-10-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/ARTEMIS-2123?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16649191#comment-16649191
 ] 

ASF GitHub Bot commented on ARTEMIS-2123:
-

Github user wy96f commented on a diff in the pull request:

https://github.com/apache/activemq-artemis/pull/2369#discussion_r224976264
  
--- Diff: 
artemis-server/src/main/java/org/apache/activemq/artemis/core/paging/cursor/impl/PageCursorProviderImpl.java
 ---
@@ -599,6 +600,29 @@ private long checkMinPage(Collection 
cursorList) {
 
}
 
+   private void deliverIfNecessary(Collection 
cursorList) {
+  long minPage = Long.MAX_VALUE;
+  PageSubscription slowSubscription = null;
+  int nonEmptyCursorNum = 0;
+
+  for (PageSubscription cursor : cursorList) {
+ long firstPage = cursor.getFirstPage();
+
+ // the cursor will return -1 if the cursor is empty
+ if (firstPage >= 0) {
+nonEmptyCursorNum++;
+if (firstPage < minPage) {
+   minPage = firstPage;
+   slowSubscription = cursor.getQueue().getMessageCount() == 0 
? cursor : null;
+}
+ }
+  }
+
+  if (nonEmptyCursorNum > 1 && slowSubscription != null) {
+ slowSubscription.getQueue().deliverAsync();
--- End diff --

> Just to understand the fix: given that QueueImpl::deliverAsync will 
trigger QueueImpl::checkDepage that will schedule an async task 
QueueImpl::DepageRunner how do you know that it will be finished time in order 
to have the PageSubscription completed when it will check later on the same 
cleanup call?
> From what I have understood it will be eventually completed on the 
cleanup that will follow a successfull DepageRunner::run...

Yes, that's right. A successful DepageRunner::run will trigger 
PageSubscription::processACK, then PageSubscription::cleanupEntries, and lastly 
PageCursorProvider::cleanup.


> Paging not stopped if there are no consumers on one subscription
> 
>
> Key: ARTEMIS-2123
> URL: https://issues.apache.org/jira/browse/ARTEMIS-2123
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.6.3
>Reporter: yangwei
>Priority: Major
>
> Reproduction steps:
>  # create a topic t and two subscriptions ta, tb
>  # send messages to ta and tb
>  # create ta consumers and receive all messages from ta
>  # close consumers
>  # only send message to tb
>  # create tb consumers and receive all message from tb
>  # topic not stopped paging



--
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

2018-10-13 Thread ASF GitHub Bot (JIRA)


[ 
https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16649115#comment-16649115
 ] 

ASF GitHub Bot commented on AMQ-7072:
-

GitHub user rmannibucau opened a pull request:

https://github.com/apache/activemq/pull/308

[AMQ-7072] moving to JSON-B API instead of jackson

Goal is to let users switch the impl on need + using johnzon as default
Issue was identified on TomEE where jackson is not desired in the 
distribution cause there is already johnzon and some 

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/rmannibucau/activemq 
AMQ-7072_jsonb-instead-of-jackson

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/activemq/pull/308.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #308


commit dabdf20b29567cb27505b15ad7c3d105ec8f2063
Author: Romain Manni-Bucau 
Date:   2018-10-13T20:40:06Z

AMQ-7072 moving to JSON-B API instead of jackson to let users switch the 
impl on need + using johnzon as default




> 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] [Updated] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B instead of jackson to support impl switch

2018-10-13 Thread Romain Manni-Bucau (JIRA)


 [ 
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] [Assigned] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B and import jackson in its distribution as an impl

2018-10-13 Thread JIRA


 [ 
https://issues.apache.org/jira/browse/AMQ-7072?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jean-Baptiste Onofré reassigned AMQ-7072:
-

Assignee: Jean-Baptiste Onofré

> 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
>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] [Created] (AMQ-7072) ActiveMQ shouldn't import jackson but use JSON-B and import jackson in its distribution as an impl

2018-10-13 Thread Romain Manni-Bucau (JIRA)
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)