[jira] [Commented] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram commented on ARTEMIS-3913:
-

I'm still not clear on what you're trying to do. Are you trying to modify the 
broker so that you can perform some kind of special validation of MQTT client 
ID values from a broker plugin and if that validation fails the client is 
disconnected with a specific reason code?

For what it's worth, screenshots of code isn't as helpful as actual code. Even 
better is a Maven project or something in a Git repository that can be executed 
to reproduce exactly what you're seeing.

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
> Attachments: image-2022-08-02-08-23-52-965.png, 
> image-2022-08-02-08-24-39-288.png, image-2022-08-02-08-31-01-074.png, 
> image-2022-08-02-08-42-24-117.png, image-2022-08-02-08-43-39-442.png, 
> image-2022-08-02-08-45-11-459.png, image-2022-08-02-08-54-34-267.png
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:54 AM:


public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

...

}

!image-2022-08-02-08-54-34-267.png!

 

!image-2022-08-02-08-23-52-965.png!

!image-2022-08-02-08-24-39-288.png!

 

public class MQTTProtocolHandler extends ChannelInboundHandlerAdapter

{  ... ... }

!image-2022-08-02-08-45-11-459.png!

when i use wireshark capture log 

!image-2022-08-02-08-31-01-074.png!

 

 

 


was (Author: JIRAUSER293605):
my ArtemisBorkderPlugin code 
{quote}public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, 
Serializable {{quote}
{quote}...{quote}
{quote}@Override
public void beforeCreateSession(String name, String username, int 
minLargeMessageSize,
RemotingConnection connection, boolean autoCommitSends, boolean autoCommitAcks, 
boolean preAcknowledge,
boolean xa, String defaultAddress, SessionCallback callback, boolean 
autoCreateQueues, OperationContext context,
Map prefixes) throws ActiveMQException {
if(debug) {
log.info("beforeCreateSession {},{},{},{},{}", connection.getClientID(), 
connection.getRemoteAddress(), connection.getID(), name, username);
}
String connId = connection.getID().toString();
if(deviceAuthEnabled && !authConnectTables.containsKey(connId)) {
// Debug.print(log);
authConnectTables.put(connId,0);
doConnectValidation(connection);
}
}{quote}
{quote}private void doConnectValidation(RemotingConnection connection) throws 
ActiveMQException{
Boolean success = false;
String error = "";
boolean invalid = false;
int locked = 0;
int eft = 0;
String clientId = connection.getClientID();
String connId = connection.getID().toString();
String clientIp = connection.getRemoteAddress().toString();
clientIp = formatClientIP(clientIp);
try{
/**
* 设备授权校验
*/
boolean invalidClientId = invalidClientId(clientId);
if(invalidClientId){//licId@mac
/**
* 无效的ClientId
*/
invalid = true;
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,非授权设备",clientId));
}
/**
* 连接用户校验
* 有效的ClientId格式
*/
if(!isService(clientId)){
String[] clientIdElements = clientId.split(CLIENT_SPLITOR);
String licId = clientIdElements[0];
String devId = clientIdElements[1];

/**
* 开启设备授权
*/
if(deviceAuthEnabled){
/**
* 新设备
*/
if(!authDeviceTables.containsKey(clientId)){

/**
* 验证设备
*/
DeviceAuth auth = validate(licId,devId);
/**
* 新设备
*/
if(ObjectUtil.isNotEmpty(auth)){

/**
* 设备第一次
*/
if(ObjectUtil.isEmpty(auth.getDevId())){
String lockerSql = deviceAuthLockerSQL;
/**
* 防止一个licId被多台设备使用
*/
locked = deviceJdbcTemplate.update(lockerSql, new Object[]\{devId, licId});
if(locked==0){
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,不能在多台设备上使用",licId));
}
auth.setDevId(devId);
authDeviceTables.put(clientId,auth);
}
}
}
}

/**
* 更新设备状态【连接】
*/
if(deviceStatusSyncabled){
String sql = connectUpdateSQL;
String brokerIp = IPUntil.getLocalIp();
eft = deviceJdbcTemplate.update(sql, new Object[]\{connId,clientIp, 
brokerIp,licId});
}
}
success = true;
}
catch(ActiveMQException ex){
error = ex.getMessage();
throw ex;
}
finally{
String prefix = "连接异常";
if(success){
prefix = "连接成功";
log.info("{} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId,locked,eft);
}
else{
if(invalid) {
log.debug("{} {} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId,locked,eft, error);
}
else{
log.info("{} {} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId, locked,eft,error);
}
}
}
}{quote}
{quote}/**
* @param licId yekerId
* @param devId cpusn or mac_address
*/
private DeviceAuth validate(String licId,String devId) throws ActiveMQException 
{
/**
* YekerId@CPU_SN;保证一个YekerId只被一台设备使用
*/
String sql = deviceAuthCheckSQL;
List deviceAuths = deviceJdbcTemplate.query(sql, new 
Object[]\{licId}, new RowMapperResultSetExtractor(new 
BeanPropertyRowMapper(DeviceAuth.class)));
if (deviceAuths == null || ObjectUtil.isEmpty(deviceAuths)) {
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,非授权设备",licId));
}
DeviceAuth auth = deviceAuths.get(0);
if (ObjectUtil.isNotEmpty(auth.getDevId())
&& !auth.getDevId().equalsIgnoreCase(devId)) {
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,不能在多台设备上使用",licId));
}
return auth;
}{quote}
{quote}..{quote}
!image-2022-08-02-08-23-52-965.png!

!image-2022-08-02-08-24-39-288.png!

 

public class MQTTProtocolHandler extends ChannelInboundHandlerAdapter

{  ... ... }

!image-2022-08-02-08-45-11-459.png!

when i use wireshark capture log 

!image-2022-08-02-08-31-01-074.png!

 

 

 

> MQTTReasonCodes byte loss of precision,must int type
> 
>
>

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:49 AM:


my ArtemisBorkderPlugin code 
{quote}public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, 
Serializable {{quote}
{quote}...{quote}
{quote}@Override
public void beforeCreateSession(String name, String username, int 
minLargeMessageSize,
RemotingConnection connection, boolean autoCommitSends, boolean autoCommitAcks, 
boolean preAcknowledge,
boolean xa, String defaultAddress, SessionCallback callback, boolean 
autoCreateQueues, OperationContext context,
Map prefixes) throws ActiveMQException {
if(debug) {
log.info("beforeCreateSession {},{},{},{},{}", connection.getClientID(), 
connection.getRemoteAddress(), connection.getID(), name, username);
}
String connId = connection.getID().toString();
if(deviceAuthEnabled && !authConnectTables.containsKey(connId)) {
// Debug.print(log);
authConnectTables.put(connId,0);
doConnectValidation(connection);
}
}{quote}
{quote}private void doConnectValidation(RemotingConnection connection) throws 
ActiveMQException{
Boolean success = false;
String error = "";
boolean invalid = false;
int locked = 0;
int eft = 0;
String clientId = connection.getClientID();
String connId = connection.getID().toString();
String clientIp = connection.getRemoteAddress().toString();
clientIp = formatClientIP(clientIp);
try{
/**
* 设备授权校验
*/
boolean invalidClientId = invalidClientId(clientId);
if(invalidClientId){//licId@mac
/**
* 无效的ClientId
*/
invalid = true;
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,非授权设备",clientId));
}
/**
* 连接用户校验
* 有效的ClientId格式
*/
if(!isService(clientId)){
String[] clientIdElements = clientId.split(CLIENT_SPLITOR);
String licId = clientIdElements[0];
String devId = clientIdElements[1];

/**
* 开启设备授权
*/
if(deviceAuthEnabled){
/**
* 新设备
*/
if(!authDeviceTables.containsKey(clientId)){

/**
* 验证设备
*/
DeviceAuth auth = validate(licId,devId);
/**
* 新设备
*/
if(ObjectUtil.isNotEmpty(auth)){

/**
* 设备第一次
*/
if(ObjectUtil.isEmpty(auth.getDevId())){
String lockerSql = deviceAuthLockerSQL;
/**
* 防止一个licId被多台设备使用
*/
locked = deviceJdbcTemplate.update(lockerSql, new Object[]\{devId, licId});
if(locked==0){
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,不能在多台设备上使用",licId));
}
auth.setDevId(devId);
authDeviceTables.put(clientId,auth);
}
}
}
}

/**
* 更新设备状态【连接】
*/
if(deviceStatusSyncabled){
String sql = connectUpdateSQL;
String brokerIp = IPUntil.getLocalIp();
eft = deviceJdbcTemplate.update(sql, new Object[]\{connId,clientIp, 
brokerIp,licId});
}
}
success = true;
}
catch(ActiveMQException ex){
error = ex.getMessage();
throw ex;
}
finally{
String prefix = "连接异常";
if(success){
prefix = "连接成功";
log.info("{} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId,locked,eft);
}
else{
if(invalid) {
log.debug("{} {} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId,locked,eft, error);
}
else{
log.info("{} {} {} {} {} {} {}", prefix, formatClientId(clientId), 
clientIp,connId, locked,eft,error);
}
}
}
}{quote}
{quote}/**
* @param licId yekerId
* @param devId cpusn or mac_address
*/
private DeviceAuth validate(String licId,String devId) throws ActiveMQException 
{
/**
* YekerId@CPU_SN;保证一个YekerId只被一台设备使用
*/
String sql = deviceAuthCheckSQL;
List deviceAuths = deviceJdbcTemplate.query(sql, new 
Object[]\{licId}, new RowMapperResultSetExtractor(new 
BeanPropertyRowMapper(DeviceAuth.class)));
if (deviceAuths == null || ObjectUtil.isEmpty(deviceAuths)) {
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,非授权设备",licId));
}
DeviceAuth auth = deviceAuths.get(0);
if (ObjectUtil.isNotEmpty(auth.getDevId())
&& !auth.getDevId().equalsIgnoreCase(devId)) {
throw new 
MQTTRuntimesException(MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID,String.format("%s,不能在多台设备上使用",licId));
}
return auth;
}{quote}
{quote}..{quote}
!image-2022-08-02-08-23-52-965.png!

!image-2022-08-02-08-24-39-288.png!

 

public class MQTTProtocolHandler extends ChannelInboundHandlerAdapter

{  ... ... }

!image-2022-08-02-08-45-11-459.png!

when i use wireshark capture log 

!image-2022-08-02-08-31-01-074.png!

 

 

 


was (Author: JIRAUSER293605):
my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:45 AM:


my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
 * 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
 * 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
 * client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
 * 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
 * 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
 * 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
 * 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;

private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled)

{ accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword); }

this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");

this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled)

{ deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword); }

this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");

log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
 * @param name
 * @param username
 * @param minLargeMessageSize
 * @param 

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:43 AM:


my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
 * 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
 * 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
 * client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
 * 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
 * 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
 * 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
 * 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;

private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled)

{ accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword); }

this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");

this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled)

{ deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword); }

this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");

log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
 * @param name
 * @param username
 * @param minLargeMessageSize
 * @param 

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:42 AM:


my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
 * 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
 * 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
 * client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
 * 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
 * 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
 * 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
 * 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;

private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled)

{ accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword); }

this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");

this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled)

{ deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword); }

this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");

log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
 * @param name
 * @param username
 * @param minLargeMessageSize
 * @param 

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:40 AM:


my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
 * 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
 * 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
 * client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
 * 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
 * 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
 * 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
 * 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;

private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled)

{ accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword); }

this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");

this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled)

{ deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword); }

this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");

log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
 * @param name
 * @param username
 * @param minLargeMessageSize
 * @param 

[jira] [Comment Edited] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu edited comment on ARTEMIS-3913 at 8/2/22 12:33 AM:


my ArtemisBorkderPlugin code 

 

```

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
 * 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
 * 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
 * client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
 * 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
 * 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
 * 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
 * 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;

private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled)

{ accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword); }

this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");

this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled)

{ deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword); }

this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");

log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
 * @param name
 * @param username
 * @param minLargeMessageSize
 * @param 

[jira] [Commented] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu commented on ARTEMIS-3913:
---

my ArtemisBorkderPlugin code 

 

```

package com.yeker.iot.broker.plugin.impl;

import cn.hutool.core.util.ObjectUtil;
import com.yeker.iot.broker.plugin.impl.model.Account;
import com.yeker.iot.broker.plugin.impl.model.DeviceAuth;
import com.yeker.sdk.comm.util.IPUntil;
import org.apache.activemq.artemis.api.core.*;
import org.apache.activemq.artemis.core.persistence.OperationContext;
import org.apache.activemq.artemis.core.postoffice.RoutingStatus;
import org.apache.activemq.artemis.core.protocol.mqtt.MQTTReasonCodes;
import 
org.apache.activemq.artemis.core.protocol.mqtt.exceptions.MQTTRuntimesException;
import org.apache.activemq.artemis.core.server.ActiveMQServer;
import org.apache.activemq.artemis.core.server.ServerSession;
import org.apache.activemq.artemis.core.server.plugin.ActiveMQServerPlugin;
import org.apache.activemq.artemis.core.transaction.Transaction;
import org.apache.activemq.artemis.spi.core.protocol.RemotingConnection;
import org.apache.activemq.artemis.spi.core.protocol.SessionCallback;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapperResultSetExtractor;

import java.io.Serializable;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class ArtemisBrokerPlugin implements ActiveMQServerPlugin, Serializable {

private Logger log = LoggerFactory.getLogger(ArtemisBrokerPlugin.class);
/**
* 遗言topic前缀
*/
private static final String MISSING_TOPIC_PREFIX = "msg.req.lwt";
/**
* 服务端clientId前缀
*/
private static final String SERVICE_CLIENT_ID_PREFIX = "service-";
/**
* client id 分隔符
*/
private static final String CLIENT_SPLITOR = "@";

/**
* 账号数据库信息
*/
private String accountDriver;
private String accountUrl;
private String accountUsername;
private String accountPassword;
private JdbcTemplate accountJdbcTemplate;

/**
* 授权认证
*/
private boolean accountAuthEnabled = false;
private String accountAuthQuerySQL;

/**
* 设备数据库信息
*/
private String deviceDriver;
private String deviceUrl;
private String deviceUsername;
private String devicePassword;
private JdbcTemplate deviceJdbcTemplate;
/**
* 设备授权
*/
private boolean deviceAuthEnabled = false;
private String deviceAuthCheckSQL;
private String deviceAuthLockerSQL;


private boolean deviceStatusSyncabled = false;
private String connectUpdateSQL;
private String disconnectUpdateSQL;
private String lwtUpdateSQL;

private String resetUpdateSQL;

private Map authConnectTables = new ConcurrentHashMap<>();
private Map authDeviceTables = new ConcurrentHashMap<>();

private boolean debug = false;

@Override
public void init(Map properties) {

this.accountDriver = properties.get("accountDriver");
this.accountUrl = properties.get("accountUrl");
this.accountUsername = properties.get("accountUsername");
this.accountPassword = properties.get("accountPassword");

this.accountAuthEnabled = Boolean.valueOf(properties.get("accountAuthEnabled"));
if(this.accountAuthEnabled){
accountJdbcTemplate = 
build(accountDriver,accountUrl,accountUsername,accountPassword);
}
this.accountAuthQuerySQL = properties.get("accountAuthQuerySQL");


this.deviceDriver = properties.get("deviceDriver");
this.deviceUrl = properties.get("deviceUrl");
this.deviceUsername = properties.get("deviceUsername");
this.devicePassword = properties.get("devicePassword");

this.deviceAuthEnabled = Boolean.valueOf(properties.get("deviceAuthEnabled"));
if(this.deviceAuthEnabled){
deviceJdbcTemplate = 
build(deviceDriver,deviceUrl,deviceUsername,devicePassword);
}
this.deviceAuthCheckSQL = properties.get("deviceAuthCheckSQL");
this.deviceAuthLockerSQL = properties.get("deviceAuthLockerSQL");

this.deviceStatusSyncabled = 
Boolean.valueOf(properties.get("deviceStatusSyncabled"));
this.connectUpdateSQL = properties.get("connectUpdateSQL");
this.disconnectUpdateSQL = properties.get("disconnectUpdateSQL");
this.lwtUpdateSQL = properties.get("lwtUpdateSQL");

this.resetUpdateSQL = properties.get("resetUpdateSQL");



log.info("init :[{}] ",properties);
log.info("AccountAuthEnabled :[{}] ", accountAuthEnabled);
log.info("DeviceAuthEnabled :[{}] ", deviceAuthEnabled);
log.info("DeviceStatusSyncabled :[{}] ", deviceStatusSyncabled);
log.info("{} 插件初始化",this.getClass().getSimpleName());
}

@Override
public void afterCreateConnection(RemotingConnection connection) throws 
ActiveMQException {
if(debug){
log.info("afterCreateConnection 
{},{},{}",connection.getClientID(),connection.getRemoteAddress(),connection.getID());
}
}

/**
*
* @param name
* @param username
* @param minLargeMessageSize
* @param connection
* @param 

[jira] [Updated] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu updated ARTEMIS-3913:
--
Attachment: image-2022-08-02-08-31-01-074.png

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
> Attachments: image-2022-08-02-08-23-52-965.png, 
> image-2022-08-02-08-24-39-288.png, image-2022-08-02-08-31-01-074.png
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu updated ARTEMIS-3913:
--
Attachment: image-2022-08-02-08-24-39-288.png

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
> Attachments: image-2022-08-02-08-23-52-965.png, 
> image-2022-08-02-08-24-39-288.png
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)


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

gongping.zhu updated ARTEMIS-3913:
--
Attachment: image-2022-08-02-08-23-52-965.png

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
> Attachments: image-2022-08-02-08-23-52-965.png
>
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (ARTEMIS-3916) Fix OpenWire selector with JMSMessageID

2022-08-01 Thread Justin Bertram (Jira)
Justin Bertram created ARTEMIS-3916:
---

 Summary: Fix OpenWire selector with JMSMessageID
 Key: ARTEMIS-3916
 URL: https://issues.apache.org/jira/browse/ARTEMIS-3916
 Project: ActiveMQ Artemis
  Issue Type: Bug
Reporter: Justin Bertram
Assignee: Justin Bertram






--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3915) Support Proxy protocol (HAProxy) on Artemis acceptors

2022-08-01 Thread Jira


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

João Santos updated ARTEMIS-3915:
-
Priority: Minor  (was: Major)

> Support Proxy protocol (HAProxy) on Artemis acceptors
> -
>
> Key: ARTEMIS-3915
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3915
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>  Components: Broker
>Reporter: João Santos
>Priority: Minor
>
> [HAProxy|http://www.haproxy.org/] is a widely known and used TCP Load 
> Balancer and especially useful for an ActiveMQ Artemis clustered environment.
> Although possible to functionally implement with both products current 
> features, Artemis does not support the PROXY protocol, which prevents it's 
> broker nodes from inferring the real remote client IP address when behind an 
> HAProxy instance.
> Since Netty sockets implementation already seems to support this protocol 
> (discussed w/ [~jbertram] on DEV mailing list), it shouldn't be a big leap to 
> adding support for the protocol on Artemis acceptors, thus improving the 
> deployment of the use case at hand.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3915) Support Proxy protocol (HAProxy) on Artemis acceptors

2022-08-01 Thread Jira


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

João Santos updated ARTEMIS-3915:
-
Description: 
[HAProxy|http://www.haproxy.org/] is a widely known and used TCP Load Balancer 
and especially useful for an ActiveMQ Artemis clustered environment.

Although possible to functionally implement with both products current 
features, Artemis does not support the PROXY protocol, which prevents it's 
broker nodes from inferring the real remote client IP address when behind an 
HAProxy instance.

Since Netty sockets implementation already seems to support this protocol 
(discussed w/ [~jbertram] on DEV mailing list), it shouldn't be a big leap to 
adding support for the protocol on Artemis acceptors, thus improving the 
deployment of the use case at hand.

  was:
[HAProxy|http://www.haproxy.org/] is a widely known and used TCP Load Balancer 
and especially useful for an ActiveMQ Artemis clustered environment.

Although possible to functionally implement with both products current 
features, Artemis does not support the PROXY protocol, which prevents it's 
nodes from inferring the real remote client IP address when behind an HAProxy 
instance.

Since Netty sockets implementation already seems to support this protocol 
(discussed w/ [~jbertram] on DEV mailing list), it shouldn't be a big leap to 
adding support for the protocol on Artemis acceptors, thus improving the 
deployment of the use case at hand.


> Support Proxy protocol (HAProxy) on Artemis acceptors
> -
>
> Key: ARTEMIS-3915
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3915
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>  Components: Broker
>Reporter: João Santos
>Priority: Major
>
> [HAProxy|http://www.haproxy.org/] is a widely known and used TCP Load 
> Balancer and especially useful for an ActiveMQ Artemis clustered environment.
> Although possible to functionally implement with both products current 
> features, Artemis does not support the PROXY protocol, which prevents it's 
> broker nodes from inferring the real remote client IP address when behind an 
> HAProxy instance.
> Since Netty sockets implementation already seems to support this protocol 
> (discussed w/ [~jbertram] on DEV mailing list), it shouldn't be a big leap to 
> adding support for the protocol on Artemis acceptors, thus improving the 
> deployment of the use case at hand.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (ARTEMIS-3915) Support Proxy protocol (HAProxy) on Artemis acceptors

2022-08-01 Thread Jira
João Santos created ARTEMIS-3915:


 Summary: Support Proxy protocol (HAProxy) on Artemis acceptors
 Key: ARTEMIS-3915
 URL: https://issues.apache.org/jira/browse/ARTEMIS-3915
 Project: ActiveMQ Artemis
  Issue Type: Improvement
  Components: Broker
Reporter: João Santos


[HAProxy|http://www.haproxy.org/] is a widely known and used TCP Load Balancer 
and especially useful for an ActiveMQ Artemis clustered environment.

Although possible to functionally implement with both products current 
features, Artemis does not support the PROXY protocol, which prevents it's 
nodes from inferring the real remote client IP address when behind an HAProxy 
instance.

Since Netty sockets implementation already seems to support this protocol 
(discussed w/ [~jbertram] on DEV mailing list), it shouldn't be a big leap to 
adding support for the protocol on Artemis acceptors, thus improving the 
deployment of the use case at hand.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (AMQ-8975) Add config option to send Max Connections exceeded exception to client

2022-08-01 Thread Matt Pavlovich (Jira)


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

Matt Pavlovich updated AMQ-8975:

Fix Version/s: 5.18.0

> Add config option to send Max Connections exceeded exception to client
> --
>
> Key: AMQ-8975
> URL: https://issues.apache.org/jira/browse/AMQ-8975
> Project: ActiveMQ
>  Issue Type: New Feature
>Reporter: Matt Pavlovich
>Assignee: Matt Pavlovich
>Priority: Major
> Fix For: 5.18.0
>
>
> Currently, when max connections is exceeded, the client side gets closed 
> without receiving a well-formed message. This change would improve 
> client-side visibility to the max connections exceeded scenario.
> Implementation notes:
> 1. Add config flag to enable (default: false to keep current behavior)
> 2. Send down a ConnectionError command to client
> 3. Add unit tests



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ARTEMIS-3914) Document Client Classpath using automation

2022-08-01 Thread ASF subversion and git services (Jira)


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

ASF subversion and git services commented on ARTEMIS-3914:
--

Commit 0cd203c32de2c7913c46764dbf319510f3723b60 in activemq-artemis's branch 
refs/heads/main from Clebert Suconic
[ https://gitbox.apache.org/repos/asf?p=activemq-artemis.git;h=0cd203c32d ]

ARTEMIS-3914 Document client classpath automated


> Document Client Classpath using automation
> --
>
> Key: ARTEMIS-3914
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3914
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Reporter: Clebert Suconic
>Priority: Major
> Fix For: 2.25.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> We should generate the client classPath doc straight from the pom.
> a Maven Plugin should be written to generate such doc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (ARTEMIS-3914) Document Client Classpath using automation

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3914?focusedWorklogId=796998=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796998
 ]

ASF GitHub Bot logged work on ARTEMIS-3914:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 19:13
Start Date: 01/Aug/22 19:13
Worklog Time Spent: 10m 
  Work Description: clebertsuconic merged PR #4162:
URL: https://github.com/apache/activemq-artemis/pull/4162




Issue Time Tracking
---

Worklog Id: (was: 796998)
Time Spent: 0.5h  (was: 20m)

> Document Client Classpath using automation
> --
>
> Key: ARTEMIS-3914
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3914
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Reporter: Clebert Suconic
>Priority: Major
> Fix For: 2.25.0
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> We should generate the client classPath doc straight from the pom.
> a Maven Plugin should be written to generate such doc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (ARTEMIS-3914) Document Client Classpath using automation

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3914?focusedWorklogId=796997=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796997
 ]

ASF GitHub Bot logged work on ARTEMIS-3914:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 19:12
Start Date: 01/Aug/22 19:12
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on PR #4162:
URL: 
https://github.com/apache/activemq-artemis/pull/4162#issuecomment-1201605569

   I am merging this change... feel free to send more changes to the docs if 
anyone sees any issues.




Issue Time Tracking
---

Worklog Id: (was: 796997)
Time Spent: 20m  (was: 10m)

> Document Client Classpath using automation
> --
>
> Key: ARTEMIS-3914
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3914
> Project: ActiveMQ Artemis
>  Issue Type: Improvement
>Reporter: Clebert Suconic
>Priority: Major
> Fix For: 2.25.0
>
>  Time Spent: 20m
>  Remaining Estimate: 0h
>
> We should generate the client classPath doc straight from the pom.
> a Maven Plugin should be written to generate such doc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AMQ-8975) Add config option to send Max Connections exceeded exception to client

2022-08-01 Thread Jira


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

Lucas Tétreault commented on AMQ-8975:
--

I think this would address this issue as well: 
https://issues.apache.org/jira/browse/AMQ-8255

 

[~mattrpav] have you already started on this? 

> Add config option to send Max Connections exceeded exception to client
> --
>
> Key: AMQ-8975
> URL: https://issues.apache.org/jira/browse/AMQ-8975
> Project: ActiveMQ
>  Issue Type: New Feature
>Reporter: Matt Pavlovich
>Assignee: Matt Pavlovich
>Priority: Major
>
> Currently, when max connections is exceeded, the client side gets closed 
> without receiving a well-formed message. This change would improve 
> client-side visibility to the max connections exceeded scenario.
> Implementation notes:
> 1. Add config flag to enable (default: false to keep current behavior)
> 2. Send down a ConnectionError command to client
> 3. Add unit tests



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (AMQ-9014) ACTIVEMQ does not start

2022-08-01 Thread Leonardo Reis (Jira)


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

Leonardo Reis updated AMQ-9014:
---
Environment: 
I'm using: 

*System Oper RedHat Enterprise Linux 9 x64 Gui without any recourse

*Java jdk 8u333 linux-x64

*Activemq: 5.15.13 

*OJDBC8.jar

  was:
I'm using: 

*System Oper RedHat Enterprise Linux 9 x64 Gui minimal

*Java jdk 8u333 linux-x64

*Activemq: 5.15.13 

*OJDBC8.jar


> ACTIVEMQ does not start
> ---
>
> Key: AMQ-9014
> URL: https://issues.apache.org/jira/browse/AMQ-9014
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: JDBC
>Affects Versions: 5.15.13
> Environment: I'm using: 
> *System Oper RedHat Enterprise Linux 9 x64 Gui without any recourse
> *Java jdk 8u333 linux-x64
> *Activemq: 5.15.13 
> *OJDBC8.jar
>Reporter: Leonardo Reis
>Priority: Critical
> Attachments: Untitled-3 .xml
>
>
> My ACTIVEMQ does not start, when I use the command: (./activemq start 
> xbean:/opt/apache-activemq-5.15.13/conf/activemq-security.xml) and 
> credentials-enc.properties this happens (log):
>  
> start of log 2022-07-29 15:07:55,076 | INFO | Refreshing 
> org.apache.activemq.xbean.XBeanBrokerFactory$1@15bb5034: startup date [Fri 
> Jul 29 15:07:55 BRT 2022]; root of context hierarchy | 
> org.apache.activemq.xbean.XBeanBrokerFactory$1 | main end of log
>  
> Only this is displayed. Attached file activemq-security.xml



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (AMQ-9014) ACTIVEMQ does not start

2022-08-01 Thread Leonardo Reis (Jira)
Leonardo Reis created AMQ-9014:
--

 Summary: ACTIVEMQ does not start
 Key: AMQ-9014
 URL: https://issues.apache.org/jira/browse/AMQ-9014
 Project: ActiveMQ
  Issue Type: Bug
  Components: JDBC
Affects Versions: 5.15.13
 Environment: I'm using: 

*System Oper RedHat Enterprise Linux 9 x64 Gui minimal

*Java jdk 8u333 linux-x64

*Activemq: 5.15.13 

*OJDBC8.jar
Reporter: Leonardo Reis
 Attachments: Untitled-3 .xml

My ACTIVEMQ does not start, when I use the command: (./activemq start 
xbean:/opt/apache-activemq-5.15.13/conf/activemq-security.xml) and 
credentials-enc.properties this happens (log):

 

start of log 2022-07-29 15:07:55,076 | INFO | Refreshing 
org.apache.activemq.xbean.XBeanBrokerFactory$1@15bb5034: startup date [Fri Jul 
29 15:07:55 BRT 2022]; root of context hierarchy | 
org.apache.activemq.xbean.XBeanBrokerFactory$1 | main end of log

 

Only this is displayed. Attached file activemq-security.xml



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (AMQ-8984) Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram edited comment on AMQ-8984 at 8/1/22 5:12 PM:
-

>From what I can tell CVE-2015-3208 is completely bogus.

First, it's being reported against {{org.apache.activemq/activemq-broker}} 
(i.e. ActiveMQ "Classic") when the related code is in the code-base of ActiveMQ 
Artemis. These two code-bases are independent. CVEs in one don't necessary 
impact the other. Lucas already pointed out this basic fact, of course, but 
there's more...

Second, the code in question was *never released*. The problematic code was 
added during the process of donating the HornetQ code-base to ActiveMQ and then 
the problem was resolved before that code was released as ActiveMQ Artemis 1.0.

Third, the status of the referenced issue at Red Hat is {{CLOSED WONTFIX}}.

I don't know how this actually became a CVE, but it's invalid in my opinion. 
I'll see if it's possible it can just be removed from the database.


was (Author: jbertram):
>From what I can tell CVE-2015-3208 is completely bogus.

First, it's being reported against {{org.apache.activemq/activemq-broker}} 
(i.e. ActiveMQ "Classic") when the related code is in the code-base of ActiveMQ 
Artemis. Lucas already pointed this out, of course, but there's more...

Second, the code in question was *never released*. The problematic code was 
added during the process of donating the HornetQ code-base to ActiveMQ and then 
the problem was resolved before that code was released as ActiveMQ Artemis 1.0.

Third, the status of the referenced issue at Red Hat is {{CLOSED WONTFIX}}.

I don't know how this actually became a CVE, but it's invalid in my opinion. 
I'll see if it's possible it can just be removed from the database.

> Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org
> 
>
> Key: AMQ-8984
> URL: https://issues.apache.org/jira/browse/AMQ-8984
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.16.3, 5.16.4, 5.16.5
>Reporter: Sven-Jørgen Karlsen
>Assignee: Jean-Baptiste Onofré
>Priority: Minor
>
> I get CVE-2015-3208 reported against activemq-broker 5.16.3-5 when running 
> maven-enforcer-plugin with the banVulnerable rule. The vulnerability can also 
> be seen on ossindex.org: 
> [https://ossindex.sonatype.org/vulnerability/CVE-2015-3208?component-type=maven=org.apache.activemq%2Factivemq-broker_source=ossindex-client_medium=integration_content=1.8.1]
>  
> It looks rather dated, is it some kind of fault in Sonatype's database? I 
> have seen several odd occurrences of old vulnerabilities in ossindex.org the 
> last month or so, after the "breaking changes" being working on in the OSS 
> Index data.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Resolved] (AMQ-8984) Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram resolved AMQ-8984.
-
Resolution: Information Provided

> Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org
> 
>
> Key: AMQ-8984
> URL: https://issues.apache.org/jira/browse/AMQ-8984
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.16.3, 5.16.4, 5.16.5
>Reporter: Sven-Jørgen Karlsen
>Assignee: Jean-Baptiste Onofré
>Priority: Minor
>
> I get CVE-2015-3208 reported against activemq-broker 5.16.3-5 when running 
> maven-enforcer-plugin with the banVulnerable rule. The vulnerability can also 
> be seen on ossindex.org: 
> [https://ossindex.sonatype.org/vulnerability/CVE-2015-3208?component-type=maven=org.apache.activemq%2Factivemq-broker_source=ossindex-client_medium=integration_content=1.8.1]
>  
> It looks rather dated, is it some kind of fault in Sonatype's database? I 
> have seen several odd occurrences of old vulnerabilities in ossindex.org the 
> last month or so, after the "breaking changes" being working on in the OSS 
> Index data.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AMQ-8984) Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram commented on AMQ-8984:
-

>From what I can tell CVE-2015-3208 is completely bogus.

First, it's being reported against {{org.apache.activemq/activemq-broker}} 
(i.e. ActiveMQ "Classic") when the related code is in the code-base of ActiveMQ 
Artemis. Lucas already pointed this out, of course, but there's more...

Second, the code in question was *never released*. The problematic code was 
added during the process of donating the HornetQ code-base to ActiveMQ and then 
the problem was resolved before that code was released as ActiveMQ Artemis 1.0.

Third, the status of the referenced issue at Red Hat is {{CLOSED WONTFIX}}.

I don't know how this actually became a CVE, but it's invalid in my opinion. 
I'll see if it's possible it can just be removed from the database.

> Fix or challenge CVE-2015-3208 reported by ossindex.sonatype.org
> 
>
> Key: AMQ-8984
> URL: https://issues.apache.org/jira/browse/AMQ-8984
> Project: ActiveMQ
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 5.16.3, 5.16.4, 5.16.5
>Reporter: Sven-Jørgen Karlsen
>Assignee: Jean-Baptiste Onofré
>Priority: Minor
>
> I get CVE-2015-3208 reported against activemq-broker 5.16.3-5 when running 
> maven-enforcer-plugin with the banVulnerable rule. The vulnerability can also 
> be seen on ossindex.org: 
> [https://ossindex.sonatype.org/vulnerability/CVE-2015-3208?component-type=maven=org.apache.activemq%2Factivemq-broker_source=ossindex-client_medium=integration_content=1.8.1]
>  
> It looks rather dated, is it some kind of fault in Sonatype's database? I 
> have seen several odd occurrences of old vulnerabilities in ossindex.org the 
> last month or so, after the "breaking changes" being working on in the OSS 
> Index data.
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796962=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796962
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 17:05
Start Date: 01/Aug/22 17:05
Worklog Time Spent: 10m 
  Work Description: lucastetreault opened a new pull request, #871:
URL: https://github.com/apache/activemq/pull/871

   As per discussion here: https://github.com/apache/activemq/pull/870




Issue Time Tracking
---

Worklog Id: (was: 796962)
Time Spent: 1.5h  (was: 1h 20m)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796961=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796961
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 17:04
Start Date: 01/Aug/22 17:04
Worklog Time Spent: 10m 
  Work Description: lucastetreault commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201473992

   I'll open another PR but I'll need input on how to test the resin-web.xml 
change :) 




Issue Time Tracking
---

Worklog Id: (was: 796961)
Time Spent: 1h 20m  (was: 1h 10m)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 1h 20m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796959=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796959
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 17:01
Start Date: 01/Aug/22 17:01
Worklog Time Spent: 10m 
  Work Description: lucastetreault commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201470213

   > Other xalan references need to be cleaned up and XPath unit tests validated
   > 
   > 
./activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java 
./activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java
   
   So I'm not entirely sure what to do with these...
   
   activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator 
is actually identical to 
activemq-broker/src/main/java/org/apache/activemq/filter/JAXPXPathEvaluator and 
neither of them use Xalan. I guess we can delete XalanXPathEvaluator and change 
the reference to it in XPathExpression to use JAXPXPathEvaluator. 
   
   The SelectorParserTest is the only test I can find using XPathExpression and 
it passes with these changes. 
   
   > > xalan reference missed:
   > > 
https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml
   > 
   > I'm guessing but that TransformerFactory setting can probably just be 
removed. That would likely mean that the JDK built-in transformer is used 
(unless another JAXP compliant transformer was on the classpath, eg Saxon).
   
   I don't know anything about resin. How can I test this? 
   




Issue Time Tracking
---

Worklog Id: (was: 796959)
Time Spent: 1h 10m  (was: 1h)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 1h 10m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram commented on ARTEMIS-3913:
-

Can you elaborate on the problem you're seeing? Could you attach code to 
reproduce the problem?

Without additional details to understand the problem I will be forced to close 
this issue.

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (ARTEMIS-3910) Artemis 插件开发时,客户端鉴权失败后,不能返回 MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram closed ARTEMIS-3910.
---
Resolution: Invalid

Descriptions of issues need to be in English.

> Artemis 插件开发时,客户端鉴权失败后,不能返回 MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID
> ---
>
> Key: ARTEMIS-3910
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3910
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: MQTT
>Affects Versions: 2.23.1
>Reporter: gongping.zhu
>Priority: Major
>
> 插件接口只抛出ActiveMQException,但是
> ActiveMQExceptionType有没有定义,无效客户端Id的错误码,同时
> MQTTProtocolHandler在执行act的时候,没有区分错误原因,统一返回了断开连接的code给到客户端;
>  
> 期望在插件验证后直接给到自己想要的错误码给到客户端



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram updated ARTEMIS-3913:

Component/s: (was: ActiveMQ-Artemis-Native)

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Assignee: Clebert Suconic
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Assigned] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram reassigned ARTEMIS-3913:
---

Assignee: (was: Clebert Suconic)

> MQTTReasonCodes byte loss of precision,must int type
> 
>
> Key: ARTEMIS-3913
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>Reporter: gongping.zhu
>Priority: Major
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

2022-08-01 Thread Clebert Suconic (Jira)


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

Clebert Suconic commented on ARTEMIS-3850:
--

[~cshannon]Just did, let me know if the description I updated is not 
understandable... 

> Eliminate Soft Cache in paging, and add reading options
> ---
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 11h
>  Remaining Estimate: 0h
>
> Paging was written a few years ago, and it was using SoftCache from the JDK.
> SoftCache exists with the promise that it would eliminate entries when the 
> memory is low.
> As a result, when actually SoftCache is removed, the JVM is already pegged 
> and nothing really work when it gets to that point.
> So, historically we then added a max-size to the PageCache and treated it as 
> a regular HashMap, and in case it ever released instance, we would read the 
> page back.
> That introduced an issue that the messages would have to read back when the 
> cursor moved. a partial reading was introduced but still generated a lot of 
> pressure in IO depending on how things happened.
> So, to simplify things, we are now reading the current file and just 
> distributing messages to queues. and messages will just be regular messages 
> after read from paging. A lot of things simplified.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Updated] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

2022-08-01 Thread Clebert Suconic (Jira)


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

Clebert Suconic updated ARTEMIS-3850:
-
Description: 
Paging was written a few years ago, and it was using SoftCache from the JDK.

SoftCache exists with the promise that it would eliminate entries when the 
memory is low.

As a result, when actually SoftCache is removed, the JVM is already pegged and 
nothing really work when it gets to that point.


So, historically we then added a max-size to the PageCache and treated it as a 
regular HashMap, and in case it ever released instance, we would read the page 
back.

That introduced an issue that the messages would have to read back when the 
cursor moved. a partial reading was introduced but still generated a lot of 
pressure in IO depending on how things happened.


So, to simplify things, we are now reading the current file and just 
distributing messages to queues. and messages will just be regular messages 
after read from paging. A lot of things simplified.

> Eliminate Soft Cache in paging, and add reading options
> ---
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 11h
>  Remaining Estimate: 0h
>
> Paging was written a few years ago, and it was using SoftCache from the JDK.
> SoftCache exists with the promise that it would eliminate entries when the 
> memory is low.
> As a result, when actually SoftCache is removed, the JVM is already pegged 
> and nothing really work when it gets to that point.
> So, historically we then added a max-size to the PageCache and treated it as 
> a regular HashMap, and in case it ever released instance, we would read the 
> page back.
> That introduced an issue that the messages would have to read back when the 
> cursor moved. a partial reading was introduced but still generated a lot of 
> pressure in IO depending on how things happened.
> So, to simplify things, we are now reading the current file and just 
> distributing messages to queues. and messages will just be regular messages 
> after read from paging. A lot of things simplified.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Closed] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

2022-08-01 Thread Clebert Suconic (Jira)


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

Clebert Suconic closed ARTEMIS-3850.

Resolution: Fixed

> Eliminate Soft Cache in paging, and add reading options
> ---
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 11h
>  Remaining Estimate: 0h
>
> Paging was written a few years ago, and it was using SoftCache from the JDK.
> SoftCache exists with the promise that it would eliminate entries when the 
> memory is low.
> As a result, when actually SoftCache is removed, the JVM is already pegged 
> and nothing really work when it gets to that point.
> So, historically we then added a max-size to the PageCache and treated it as 
> a regular HashMap, and in case it ever released instance, we would read the 
> page back.
> That introduced an issue that the messages would have to read back when the 
> cursor moved. a partial reading was introduced but still generated a lot of 
> pressure in IO depending on how things happened.
> So, to simplify things, we are now reading the current file and just 
> distributing messages to queues. and messages will just be regular messages 
> after read from paging. A lot of things simplified.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Reopened] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

2022-08-01 Thread Clebert Suconic (Jira)


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

Clebert Suconic reopened ARTEMIS-3850:
--

> Eliminate Soft Cache in paging, and add reading options
> ---
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 11h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ARTEMIS-3850) Eliminate Soft Cache in paging, and add reading options

2022-08-01 Thread Christopher L. Shannon (Jira)


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

Christopher L. Shannon commented on ARTEMIS-3850:
-

[~clebertsuconic] - As I said in the vote thread can you add some information 
as to why this change was made and the benefit? This seems to be a large change 
and there's no detail anywhere to describe why it was done which is not great.

> Eliminate Soft Cache in paging, and add reading options
> ---
>
> Key: ARTEMIS-3850
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3850
> Project: ActiveMQ Artemis
>  Issue Type: New Feature
>Affects Versions: 2.22.0
>Reporter: Clebert Suconic
>Assignee: Clebert Suconic
>Priority: Major
> Fix For: 2.24.0
>
>  Time Spent: 11h
>  Remaining Estimate: 0h
>




--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (ARTEMIS-3911) when develop Artemis pulgin,after client id auth failed ,sever can not response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram edited comment on ARTEMIS-3911 at 8/1/22 3:42 PM:
-

Can you elaborate on the problem you're seeing? Could you attach code to 
reproduce the problem?

Without additional details to understand the problem I will be forced to close 
this issue.


was (Author: jbertram):
Can you elaborate on the problem you're seeing? Could you attach code to 
reproduce the problem?

> when develop Artemis pulgin,after client id auth failed ,sever can not 
> response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client
> -
>
> Key: ARTEMIS-3911
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3911
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.23.1
>Reporter: gongping.zhu
>Priority: Major
>
> when develop Artemis pulgin,after client id auth failed ,sever can not 
> response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (ARTEMIS-3911) when develop Artemis pulgin,after client id auth failed ,sever can not response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client

2022-08-01 Thread Justin Bertram (Jira)


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

Justin Bertram commented on ARTEMIS-3911:
-

Can you elaborate on the problem you're seeing? Could you attach code to 
reproduce the problem?

> when develop Artemis pulgin,after client id auth failed ,sever can not 
> response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client
> -
>
> Key: ARTEMIS-3911
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3911
> Project: ActiveMQ Artemis
>  Issue Type: Bug
>  Components: Broker
>Affects Versions: 2.23.1
>Reporter: gongping.zhu
>Priority: Major
>
> when develop Artemis pulgin,after client id auth failed ,sever can not 
> response MQTTReasonCodes.CLIENT_IDENTIFIER_NOT_VALID reason to the mqtt client



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (ARTEMIS-3914) Document Client Classpath using automation

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/ARTEMIS-3914?focusedWorklogId=796929=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796929
 ]

ASF GitHub Bot logged work on ARTEMIS-3914:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 14:52
Start Date: 01/Aug/22 14:52
Worklog Time Spent: 10m 
  Work Description: clebertsuconic commented on PR #4162:
URL: 
https://github.com/apache/activemq-artemis/pull/4162#issuecomment-1201308812

   This is generating a table:
   
   
   ```
   File | observation | package
   ---|---|---
   
[artemis-commons-2.25.0-SNAPSHOT.jar](https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-commons/2.25.0-SNAPSHOT)|
  |org.apache.activemq:artemis-commons
   
[artemis-core-client-2.25.0-SNAPSHOT.jar](https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-core-client/2.25.0-SNAPSHOT)|
  |org.apache.activemq:artemis-core-client
   
[artemis-jakarta-client-2.25.0-SNAPSHOT.jar](https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-jakarta-client/2.25.0-SNAPSHOT)|
  |org.apache.activemq:artemis-jakarta-client
   
[artemis-selector-2.25.0-SNAPSHOT.jar](https://repo.maven.apache.org/maven2/org/apache/activemq/artemis-selector/2.25.0-SNAPSHOT)|
  |org.apache.activemq:artemis-selector
   
[commons-beanutils-1.9.4.jar](https://repo.maven.apache.org/maven2/commons-beanutils/commons-beanutils/1.9.4)|
  |commons-beanutils:commons-beanutils
   
[commons-collections-3.2.2.jar](https://repo.maven.apache.org/maven2/commons-collections/commons-collections/3.2.2)|
  |commons-collections:commons-collections
   
[commons-logging-1.2.jar](https://repo.maven.apache.org/maven2/commons-logging/commons-logging/1.2)|
  |commons-logging:commons-logging
   
[netty-buffer-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-buffer/4.1.77.Final)|
  |io.netty:netty-buffer
   
[netty-codec-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-codec/4.1.77.Final)|
  |io.netty:netty-codec
   
[netty-codec-http-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-codec-http/4.1.77.Final)|
  |io.netty:netty-codec-http
   
[netty-codec-socks-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-codec-socks/4.1.77.Final)|
  |io.netty:netty-codec-socks
   
[netty-common-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-common/4.1.77.Final)|
  |io.netty:netty-common
   
[netty-handler-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-handler/4.1.77.Final)|
  |io.netty:netty-handler
   
[netty-handler-proxy-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-handler-proxy/4.1.77.Final)|
  |io.netty:netty-handler-proxy
   
[netty-resolver-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-resolver/4.1.77.Final)|
  |io.netty:netty-resolver
   
[netty-transport-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport/4.1.77.Final)|
  |io.netty:netty-transport
   
[netty-transport-classes-epoll-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-epoll/4.1.77.Final)|
  |io.netty:netty-transport-classes-epoll
   
[netty-transport-classes-kqueue-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport-classes-kqueue/4.1.77.Final)|
  |io.netty:netty-transport-classes-kqueue
   
[netty-transport-native-epoll-4.1.77.Final-linux-x86_64.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-epoll/4.1.77.Final)|
 only if you want epoll on Linux 
|io.netty:netty-transport-native-epoll:linux-x86_64
   
[netty-transport-native-kqueue-4.1.77.Final-osx-x86_64.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-kqueue/4.1.77.Final)|
 only if you want kqueue on MacOS 
|io.netty:netty-transport-native-kqueue:osx-x86_64
   
[netty-transport-native-unix-common-4.1.77.Final.jar](https://repo.maven.apache.org/maven2/io/netty/netty-transport-native-unix-common/4.1.77.Final)|
  |io.netty:netty-transport-native-unix-common
   
[jakarta.jms-api-3.1.0.jar](https://repo.maven.apache.org/maven2/jakarta/jms/jakarta/jms-api/3.1.0)|
  |jakarta.jms:jakarta.jms-api
   
[jboss-logging-3.5.0.Final.jar](https://repo.maven.apache.org/maven2/org/jboss/logging/jboss-logging/3.5.0.Final)|
  |org.jboss.logging:jboss-logging
   
[jgroups-5.2.0.Final.jar](https://repo.maven.apache.org/maven2/org/jgroups/jgroups/5.2.0.Final)|
 only if you want JGroups discovery from the clients |org.jgroups:jgroups
   ```




Issue Time Tracking
---

Worklog Id: (was: 796929)
Remaining Estimate: 0h
Time Spent: 10m

> Document Client Classpath using automation
> --
>
> Key: ARTEMIS-3914
> URL: https://issues.apache.org/jira/browse/ARTEMIS-3914
> 

[jira] [Created] (ARTEMIS-3914) Document Client Classpath using automation

2022-08-01 Thread Clebert Suconic (Jira)
Clebert Suconic created ARTEMIS-3914:


 Summary: Document Client Classpath using automation
 Key: ARTEMIS-3914
 URL: https://issues.apache.org/jira/browse/ARTEMIS-3914
 Project: ActiveMQ Artemis
  Issue Type: Improvement
Reporter: Clebert Suconic
 Fix For: 2.25.0


We should generate the client classPath doc straight from the pom.

a Maven Plugin should be written to generate such doc.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796919=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796919
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 14:32
Start Date: 01/Aug/22 14:32
Worklog Time Spent: 10m 
  Work Description: jbonofre commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201285745

   Good catch. I will do a new pass. Thanks !




Issue Time Tracking
---

Worklog Id: (was: 796919)
Time Spent: 1h  (was: 50m)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 1h
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Reopened] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread Matt Pavlovich (Jira)


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

Matt Pavlovich reopened AMQ-9005:
-
  Assignee: (was: Jean-Baptiste Onofré)

Not all xalan references picked up

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796917=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796917
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 14:28
Start Date: 01/Aug/22 14:28
Worklog Time Spent: 10m 
  Work Description: mattrpav commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201281358

   Other xalan references need to be cleaned up and XPath unit tests validated
   
   
./activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java
   
./activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java




Issue Time Tracking
---

Worklog Id: (was: 796917)
Time Spent: 50m  (was: 40m)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Assignee: Jean-Baptiste Onofré
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Comment Edited] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread Matt Pavlovich (Jira)


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

Matt Pavlovich edited comment on AMQ-9005 at 8/1/22 2:28 PM:
-

[~tetlucas] more references here:

https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml

Other xalan references need to be cleaned up and XPath unit tests validated

./activemq-client/src/main/java/org/apache/activemq/filter/XPathExpression.java
./activemq-broker/src/main/java/org/apache/activemq/filter/XalanXPathEvaluator.java


was (Author: mattrpav):
[~tetlucas] one more reference here:

https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Assignee: Jean-Baptiste Onofré
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 50m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796913=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796913
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 14:27
Start Date: 01/Aug/22 14:27
Worklog Time Spent: 10m 
  Work Description: pjfanning commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201279751

   > xalan reference missed:
   > 
   > 
https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml
   
   I'm guessing but that TransformerFactory setting can probably just be 
removed. That would likely mean that the JDK built-in transformer is used 
(unless another JAXP compliant transformer was on the classpath, eg Saxon).




Issue Time Tracking
---

Worklog Id: (was: 796913)
Time Spent: 40m  (was: 0.5h)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Assignee: Jean-Baptiste Onofré
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 40m
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Commented] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread Matt Pavlovich (Jira)


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

Matt Pavlovich commented on AMQ-9005:
-

[~tetlucas] one more reference here:

https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Assignee: Jean-Baptiste Onofré
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Work logged] (AMQ-9005) remove xalan dependency due to it being end of life

2022-08-01 Thread ASF GitHub Bot (Jira)


 [ 
https://issues.apache.org/jira/browse/AMQ-9005?focusedWorklogId=796910=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-796910
 ]

ASF GitHub Bot logged work on AMQ-9005:
---

Author: ASF GitHub Bot
Created on: 01/Aug/22 14:22
Start Date: 01/Aug/22 14:22
Worklog Time Spent: 10m 
  Work Description: mattrpav commented on PR #870:
URL: https://github.com/apache/activemq/pull/870#issuecomment-1201274483

   xalan reference missed:
   
   
https://github.com/apache/activemq/blob/main/assembly/src/release/examples/conf/resin-web.xml




Issue Time Tracking
---

Worklog Id: (was: 796910)
Time Spent: 0.5h  (was: 20m)

> remove xalan dependency due to it being end of life
> ---
>
> Key: AMQ-9005
> URL: https://issues.apache.org/jira/browse/AMQ-9005
> Project: ActiveMQ
>  Issue Type: Improvement
>Reporter: PJ Fanning
>Assignee: Jean-Baptiste Onofré
>Priority: Major
> Fix For: 5.18.0, 5.17.2
>
>  Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Xalan is no longer supported.
> https://lists.apache.org/thread/s8kjny5270ssfcp46v0fl39lk98987w7
> It is better to use JAXP TransformerFactory than using xalan directly. If you 
> add xalan dependency just to ensure that you have a JAXP compliant 
> transformer on the classpath, this is unnecessary - the Java runtime has a 
> built-in implementation.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)


[jira] [Created] (ARTEMIS-3913) MQTTReasonCodes byte loss of precision,must int type

2022-08-01 Thread gongping.zhu (Jira)
gongping.zhu created ARTEMIS-3913:
-

 Summary: MQTTReasonCodes byte loss of precision,must int type
 Key: ARTEMIS-3913
 URL: https://issues.apache.org/jira/browse/ARTEMIS-3913
 Project: ActiveMQ Artemis
  Issue Type: Bug
  Components: ActiveMQ-Artemis-Native
Reporter: gongping.zhu
Assignee: Clebert Suconic






--
This message was sent by Atlassian Jira
(v8.20.10#820010)