Moved project package from org.eclipse.moquette to io.moquette

This commit is contained in:
andsel
2015-11-20 21:30:59 +01:00
parent f438ef7f49
commit 371c740321
175 changed files with 629 additions and 669 deletions
@@ -13,15 +13,15 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.interception;
package io.moquette.interception;
import org.eclipse.moquette.interception.messages.InterceptConnectMessage;
import org.eclipse.moquette.interception.messages.InterceptDisconnectMessage;
import org.eclipse.moquette.interception.messages.InterceptPublishMessage;
import org.eclipse.moquette.interception.messages.InterceptSubscribeMessage;
import org.eclipse.moquette.interception.messages.InterceptUnsubscribeMessage;
import org.eclipse.moquette.proto.messages.*;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.proto.messages.AbstractMessage;
import io.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.interception.messages.InterceptConnectMessage;
import io.moquette.interception.messages.InterceptDisconnectMessage;
import io.moquette.interception.messages.InterceptPublishMessage;
import io.moquette.interception.messages.InterceptSubscribeMessage;
import io.moquette.interception.messages.InterceptUnsubscribeMessage;
/**
* This interface is used to inject code for intercepting broker events.
@@ -13,11 +13,11 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.interception;
package io.moquette.interception;
import org.eclipse.moquette.proto.messages.ConnectMessage;
import org.eclipse.moquette.proto.messages.PublishMessage;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.proto.messages.ConnectMessage;
import io.moquette.proto.messages.PublishMessage;
import io.moquette.spi.impl.subscriptions.Subscription;
/**
* This interface is to be used internally by the broker components.
@@ -1,6 +1,6 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
import org.eclipse.moquette.proto.messages.AbstractMessage;
import io.moquette.proto.messages.AbstractMessage;
/**
* @author Wagner Macedo
@@ -1,6 +1,6 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
import org.eclipse.moquette.proto.messages.ConnectMessage;
import io.moquette.proto.messages.ConnectMessage;
/**
* @author Wagner Macedo
@@ -1,4 +1,4 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
/**
* @author Wagner Macedo
@@ -1,6 +1,6 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
import org.eclipse.moquette.proto.messages.PublishMessage;
import io.moquette.proto.messages.PublishMessage;
import java.nio.ByteBuffer;
@@ -1,7 +1,7 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
import org.eclipse.moquette.proto.messages.AbstractMessage;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.proto.messages.AbstractMessage;
import io.moquette.spi.impl.subscriptions.Subscription;
/**
* @author Wagner Macedo
@@ -1,4 +1,4 @@
package org.eclipse.moquette.interception.messages;
package io.moquette.interception.messages;
/**
* @author Wagner Macedo
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server;
package io.moquette.server;
/**
* Value object to maintain the information of single connection, like ClientID, IoSession,
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server;
package io.moquette.server;
/**
* Server constants keeper
@@ -13,14 +13,14 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server;
package io.moquette.server;
import org.eclipse.moquette.server.config.FilesystemConfig;
import org.eclipse.moquette.server.config.IConfig;
import org.eclipse.moquette.server.config.MemoryConfig;
import org.eclipse.moquette.server.netty.NettyAcceptor;
import org.eclipse.moquette.spi.impl.ProtocolProcessor;
import org.eclipse.moquette.spi.impl.SimpleMessaging;
import io.moquette.server.config.MemoryConfig;
import io.moquette.spi.impl.SimpleMessaging;
import io.moquette.server.config.FilesystemConfig;
import io.moquette.server.config.IConfig;
import io.moquette.server.netty.NettyAcceptor;
import io.moquette.spi.impl.ProtocolProcessor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -28,7 +28,6 @@ import java.io.File;
import java.io.IOException;
import java.util.Properties;
import static org.eclipse.moquette.commons.Constants.PERSISTENT_STORE_PROPERTY_NAME;
/**
* Launch a configured version of the server.
* @author andrea
@@ -92,7 +91,7 @@ public class Server {
if (handlerProp != null) {
config.setProperty("intercept.handler", handlerProp);
}
LOG.info("Persistent store file: " + config.getProperty(PERSISTENT_STORE_PROPERTY_NAME));
LOG.info("Persistent store file: " + config.getProperty(io.moquette.commons.Constants.PERSISTENT_STORE_PROPERTY_NAME));
final ProtocolProcessor processor = SimpleMessaging.getInstance().init(config);
m_acceptor = new NettyAcceptor();
@@ -13,14 +13,12 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server;
package io.moquette.server;
import java.io.IOException;
import org.eclipse.moquette.server.config.IConfig;
import org.eclipse.moquette.spi.IMessaging;
import org.eclipse.moquette.spi.impl.ProtocolProcessor;
import org.eclipse.moquette.spi.impl.SimpleMessaging;
import io.moquette.server.config.IConfig;
import io.moquette.spi.impl.ProtocolProcessor;
/**
*
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server;
package io.moquette.server;
import io.netty.util.AttributeKey;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.config;
package io.moquette.server.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,8 +13,9 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.config;
package io.moquette.server.config;
import io.moquette.commons.Constants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -22,8 +23,6 @@ import java.io.*;
import java.text.ParseException;
import java.util.Properties;
import static org.eclipse.moquette.commons.Constants.*;
/**
* Mosquitto configuration parser.
*
@@ -43,14 +42,14 @@ class ConfigurationParser {
}
private void createDefaults() {
m_properties.put(PORT_PROPERTY_NAME, Integer.toString(PORT));
m_properties.put(HOST_PROPERTY_NAME, HOST);
m_properties.put(WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(WEBSOCKET_PORT));
m_properties.put(PASSWORD_FILE_PROPERTY_NAME, "");
m_properties.put(PERSISTENT_STORE_PROPERTY_NAME, DEFAULT_PERSISTENT_PATH);
m_properties.put(ALLOW_ANONYMOUS_PROPERTY_NAME, true);
m_properties.put(AUTHENTICATOR_CLASS_NAME, "");
m_properties.put(AUTHORIZATOR_CLASS_NAME, "");
m_properties.put(Constants.PORT_PROPERTY_NAME, Integer.toString(Constants.PORT));
m_properties.put(Constants.HOST_PROPERTY_NAME, Constants.HOST);
m_properties.put(Constants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(Constants.WEBSOCKET_PORT));
m_properties.put(Constants.PASSWORD_FILE_PROPERTY_NAME, "");
m_properties.put(Constants.PERSISTENT_STORE_PROPERTY_NAME, Constants.DEFAULT_PERSISTENT_PATH);
m_properties.put(Constants.ALLOW_ANONYMOUS_PROPERTY_NAME, true);
m_properties.put(Constants.AUTHENTICATOR_CLASS_NAME, "");
m_properties.put(Constants.AUTHORIZATOR_CLASS_NAME, "");
}
/**
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.config;
package io.moquette.server.config;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.config;
package io.moquette.server.config;
/**
* Base interface for all configuration implementations (filesystem, memory or classpath)
@@ -13,15 +13,13 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.config;
package io.moquette.server.config;
import io.moquette.commons.Constants;
import java.util.Map;
import java.util.Properties;
import static org.eclipse.moquette.commons.Constants.*;
import static org.eclipse.moquette.commons.Constants.AUTHENTICATOR_CLASS_NAME;
import static org.eclipse.moquette.commons.Constants.AUTHORIZATOR_CLASS_NAME;
/**
* Configuration backed by memory.
*
@@ -39,14 +37,14 @@ public class MemoryConfig implements IConfig {
}
private void createDefaults() {
m_properties.put(PORT_PROPERTY_NAME, Integer.toString(PORT));
m_properties.put(HOST_PROPERTY_NAME, HOST);
m_properties.put(WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(WEBSOCKET_PORT));
m_properties.put(PASSWORD_FILE_PROPERTY_NAME, "");
m_properties.put(PERSISTENT_STORE_PROPERTY_NAME, DEFAULT_PERSISTENT_PATH);
m_properties.put(ALLOW_ANONYMOUS_PROPERTY_NAME, true);
m_properties.put(AUTHENTICATOR_CLASS_NAME, "");
m_properties.put(AUTHORIZATOR_CLASS_NAME, "");
m_properties.put(Constants.PORT_PROPERTY_NAME, Integer.toString(Constants.PORT));
m_properties.put(Constants.HOST_PROPERTY_NAME, Constants.HOST);
m_properties.put(Constants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(Constants.WEBSOCKET_PORT));
m_properties.put(Constants.PASSWORD_FILE_PROPERTY_NAME, "");
m_properties.put(Constants.PERSISTENT_STORE_PROPERTY_NAME, Constants.DEFAULT_PERSISTENT_PATH);
m_properties.put(Constants.ALLOW_ANONYMOUS_PROPERTY_NAME, true);
m_properties.put(Constants.AUTHENTICATOR_CLASS_NAME, "");
m_properties.put(Constants.AUTHORIZATOR_CLASS_NAME, "");
}
@Override
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty;
package io.moquette.server.netty;
import io.netty.channel.ChannelDuplexHandler;
import io.netty.channel.ChannelHandler.Sharable;
@@ -13,8 +13,12 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty;
package io.moquette.server.netty;
import io.moquette.commons.Constants;
import io.moquette.parser.netty.MQTTDecoder;
import io.moquette.server.config.IConfig;
import io.moquette.server.netty.metrics.*;
import io.netty.bootstrap.ServerBootstrap;
import io.netty.buffer.ByteBuf;
import io.netty.channel.*;
@@ -31,13 +35,9 @@ import io.netty.handler.codec.http.websocketx.WebSocketServerProtocolHandler;
import io.netty.handler.ssl.SslHandler;
import io.netty.handler.timeout.IdleStateHandler;
import io.netty.util.concurrent.Future;
import org.eclipse.moquette.commons.Constants;
import org.eclipse.moquette.parser.netty.MQTTDecoder;
import org.eclipse.moquette.parser.netty.MQTTEncoder;
import org.eclipse.moquette.server.ServerAcceptor;
import org.eclipse.moquette.server.config.IConfig;
import org.eclipse.moquette.server.netty.metrics.*;
import org.eclipse.moquette.spi.impl.ProtocolProcessor;
import io.moquette.parser.netty.MQTTEncoder;
import io.moquette.server.ServerAcceptor;
import io.moquette.spi.impl.ProtocolProcessor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,14 +13,14 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty;
package io.moquette.server.netty;
import io.moquette.server.Constants;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.timeout.IdleStateHandler;
import io.netty.util.Attribute;
import io.netty.util.AttributeKey;
import org.eclipse.moquette.server.Constants;
import org.eclipse.moquette.server.ServerChannel;
import io.moquette.server.ServerChannel;
/**
*
@@ -13,19 +13,18 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty;
package io.moquette.server.netty;
import io.moquette.proto.Utils;
import io.moquette.proto.messages.*;
import io.moquette.spi.impl.ProtocolProcessor;
import static io.moquette.proto.messages.AbstractMessage.*;
import io.netty.channel.ChannelHandler.Sharable;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelInboundHandlerAdapter;
import io.netty.handler.codec.CorruptedFrameException;
import org.eclipse.moquette.proto.messages.*;
import org.eclipse.moquette.proto.Utils;
import static org.eclipse.moquette.proto.messages.AbstractMessage.*;
import org.eclipse.moquette.spi.impl.ProtocolProcessor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty;
package io.moquette.server.netty;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.timeout.IdleStateHandler;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
public class BytesMetrics {
private long m_readBytes = 0;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
import java.util.concurrent.atomic.AtomicLong;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelDuplexHandler;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
public class MessageMetrics {
private long m_messagesRead = 0;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
import java.util.concurrent.atomic.AtomicLong;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.server.netty.metrics;
package io.moquette.server.netty.metrics;
import io.netty.channel.ChannelDuplexHandler;
import io.netty.channel.ChannelHandlerContext;
@@ -13,11 +13,11 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi;
package io.moquette.spi;
import org.eclipse.moquette.proto.messages.AbstractMessage;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import org.eclipse.moquette.spi.impl.subscriptions.SubscriptionsStore;
import io.moquette.proto.messages.AbstractMessage;
import io.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.spi.impl.subscriptions.SubscriptionsStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi;
package io.moquette.spi;
/**
*/
@@ -13,11 +13,11 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi;
package io.moquette.spi;
import java.io.Serializable;
import java.nio.ByteBuffer;
import org.eclipse.moquette.proto.messages.AbstractMessage;
import io.moquette.proto.messages.AbstractMessage;
import java.util.Collection;
import java.util.List;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi;
package io.moquette.spi;
/**
* Callback interface used to be notified of some events from the input event queue.
@@ -13,13 +13,13 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi;
package io.moquette.spi;
import java.util.Collection;
import java.util.List;
import java.util.Set;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.spi.impl.subscriptions.Subscription;
/**
* Store used to handle the persistence of the subscriptions tree.
@@ -13,14 +13,14 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl;
package io.moquette.spi.impl;
import org.eclipse.moquette.interception.InterceptHandler;
import org.eclipse.moquette.interception.Interceptor;
import org.eclipse.moquette.interception.messages.*;
import org.eclipse.moquette.proto.messages.ConnectMessage;
import org.eclipse.moquette.proto.messages.PublishMessage;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.interception.InterceptHandler;
import io.moquette.interception.Interceptor;
import io.moquette.interception.messages.*;
import io.moquette.proto.messages.ConnectMessage;
import io.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.proto.messages.PublishMessage;
import java.util.List;
import java.util.concurrent.ExecutorService;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl;
package io.moquette.spi.impl;
import java.nio.ByteBuffer;
@@ -13,39 +13,39 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl;
package io.moquette.spi.impl;
import java.nio.ByteBuffer;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import org.eclipse.moquette.server.netty.NettyChannel;
import org.eclipse.moquette.spi.ClientSession;
import org.eclipse.moquette.spi.IMatchingCondition;
import org.eclipse.moquette.spi.IMessagesStore;
import org.eclipse.moquette.spi.IMessagesStore.*;
import org.eclipse.moquette.spi.ISessionsStore;
import org.eclipse.moquette.spi.impl.security.IAuthorizator;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import org.eclipse.moquette.spi.impl.subscriptions.SubscriptionsStore;
import static org.eclipse.moquette.parser.netty.Utils.VERSION_3_1;
import static org.eclipse.moquette.parser.netty.Utils.VERSION_3_1_1;
import org.eclipse.moquette.proto.messages.AbstractMessage;
import org.eclipse.moquette.proto.messages.AbstractMessage.QOSType;
import org.eclipse.moquette.proto.messages.ConnAckMessage;
import org.eclipse.moquette.proto.messages.ConnectMessage;
import org.eclipse.moquette.proto.messages.PubAckMessage;
import org.eclipse.moquette.proto.messages.PubCompMessage;
import org.eclipse.moquette.proto.messages.PubRecMessage;
import org.eclipse.moquette.proto.messages.PubRelMessage;
import org.eclipse.moquette.proto.messages.PublishMessage;
import org.eclipse.moquette.proto.messages.SubAckMessage;
import org.eclipse.moquette.proto.messages.SubscribeMessage;
import org.eclipse.moquette.proto.messages.UnsubAckMessage;
import org.eclipse.moquette.proto.messages.UnsubscribeMessage;
import org.eclipse.moquette.server.ConnectionDescriptor;
import org.eclipse.moquette.spi.impl.security.IAuthenticator;
import org.eclipse.moquette.server.ServerChannel;
import io.moquette.server.ConnectionDescriptor;
import io.moquette.server.ServerChannel;
import io.moquette.server.netty.NettyChannel;
import io.moquette.spi.ClientSession;
import io.moquette.spi.IMatchingCondition;
import io.moquette.spi.IMessagesStore;
import io.moquette.spi.ISessionsStore;
import io.moquette.spi.impl.security.IAuthenticator;
import io.moquette.spi.impl.security.IAuthorizator;
import io.moquette.spi.impl.subscriptions.SubscriptionsStore;
import io.moquette.spi.impl.subscriptions.Subscription;
import static io.moquette.parser.netty.Utils.VERSION_3_1;
import static io.moquette.parser.netty.Utils.VERSION_3_1_1;
import io.moquette.proto.messages.AbstractMessage;
import io.moquette.proto.messages.AbstractMessage.QOSType;
import io.moquette.proto.messages.ConnAckMessage;
import io.moquette.proto.messages.ConnectMessage;
import io.moquette.proto.messages.PubAckMessage;
import io.moquette.proto.messages.PubCompMessage;
import io.moquette.proto.messages.PubRecMessage;
import io.moquette.proto.messages.PubRelMessage;
import io.moquette.proto.messages.PublishMessage;
import io.moquette.proto.messages.SubAckMessage;
import io.moquette.proto.messages.SubscribeMessage;
import io.moquette.proto.messages.UnsubAckMessage;
import io.moquette.proto.messages.UnsubscribeMessage;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -244,14 +244,14 @@ public class ProtocolProcessor {
* */
private void republishStoredInSession(ClientSession clientSession) {
LOG.trace("republishStoredInSession for client <{}>", clientSession);
List<StoredMessage> publishedEvents = clientSession.storedMessages();
List<IMessagesStore.StoredMessage> publishedEvents = clientSession.storedMessages();
if (publishedEvents.isEmpty()) {
LOG.info("No stored messages for client <{}>", clientSession.clientID);
return;
}
LOG.info("republishing stored messages to client <{}>", clientSession.clientID);
for (StoredMessage pubEvt : publishedEvents) {
for (IMessagesStore.StoredMessage pubEvt : publishedEvents) {
//TODO put in flight zone
directSend(clientSession, pubEvt.getTopic(), pubEvt.getQos(),
pubEvt.getMessage(), false, pubEvt.getMessageID());
@@ -267,15 +267,15 @@ public class ProtocolProcessor {
targetSession.inFlightAcknowledged(messageID);
}
private static StoredMessage asStoredMessage(PublishMessage msg) {
StoredMessage stored = new StoredMessage(msg.getPayload().array(), msg.getQos(), msg.getTopicName());
private static IMessagesStore.StoredMessage asStoredMessage(PublishMessage msg) {
IMessagesStore.StoredMessage stored = new IMessagesStore.StoredMessage(msg.getPayload().array(), msg.getQos(), msg.getTopicName());
stored.setRetained(msg.isRetainFlag());
stored.setMessageID(msg.getMessageID());
return stored;
}
private static StoredMessage asStoredMessage(WillMessage will) {
StoredMessage pub = new StoredMessage(will.getPayload().array(), will.getQos(), will.getTopic());
private static IMessagesStore.StoredMessage asStoredMessage(WillMessage will) {
IMessagesStore.StoredMessage pub = new IMessagesStore.StoredMessage(will.getPayload().array(), will.getQos(), will.getTopic());
pub.setRetained(will.isRetained());
return pub;
}
@@ -296,7 +296,7 @@ public class ProtocolProcessor {
LOG.info("PUBLISH from clientID <{}> on topic <{}> with QoS {}", clientID, topic, qos);
String guid = null;
StoredMessage toStoreMsg = asStoredMessage(msg);
IMessagesStore.StoredMessage toStoreMsg = asStoredMessage(msg);
toStoreMsg.setClientID(clientID);
if (qos == AbstractMessage.QOSType.MOST_ONE) { //QoS0
forward2Subscribers(toStoreMsg);
@@ -341,7 +341,7 @@ public class ProtocolProcessor {
messageId = m_messagesStore.nextPacketID(clientID);
}
StoredMessage tobeStored = asStoredMessage(will);
IMessagesStore.StoredMessage tobeStored = asStoredMessage(will);
tobeStored.setClientID(clientID);
tobeStored.setMessageID(messageId);
forward2Subscribers(tobeStored);
@@ -352,7 +352,7 @@ public class ProtocolProcessor {
* Flood the subscribers with the message to notify. MessageID is optional and should only used for QoS 1 and 2
* */
//TODO rename to route2Subscribers
void forward2Subscribers(StoredMessage pubEvt) {
void forward2Subscribers(IMessagesStore.StoredMessage pubEvt) {
final String topic = pubEvt.getTopic();
final AbstractMessage.QOSType publishingQos = pubEvt.getQos();
final ByteBuffer origMessage = pubEvt.getMessage();
@@ -475,7 +475,7 @@ public class ProtocolProcessor {
int messageID = msg.getMessageID();
LOG.debug("PUB --PUBREL--> SRV processPubRel invoked for clientID {} ad messageID {}", clientID, messageID);
ClientSession targetSession = m_sessionsStore.sessionForClient(clientID);
StoredMessage evt = targetSession.storedMessage(messageID);
IMessagesStore.StoredMessage evt = targetSession.storedMessage(messageID);
forward2Subscribers(evt);
if (evt.isRetained()) {
@@ -13,16 +13,17 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl;
package io.moquette.spi.impl;
import org.eclipse.moquette.commons.Constants;
import org.eclipse.moquette.interception.InterceptHandler;
import org.eclipse.moquette.server.config.IConfig;
import org.eclipse.moquette.spi.IMessagesStore;
import org.eclipse.moquette.spi.ISessionsStore;
import org.eclipse.moquette.spi.impl.security.*;
import org.eclipse.moquette.spi.impl.subscriptions.SubscriptionsStore;
import org.eclipse.moquette.spi.persistence.MapDBPersistentStore;
import io.moquette.spi.IMessagesStore;
import io.moquette.commons.Constants;
import io.moquette.interception.InterceptHandler;
import io.moquette.server.config.IConfig;
import io.moquette.spi.ISessionsStore;
import io.moquette.spi.impl.security.*;
import io.moquette.spi.impl.subscriptions.SubscriptionsStore;
import io.moquette.spi.persistence.MapDBPersistentStore;
import static io.moquette.commons.Constants.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -32,7 +33,6 @@ import java.lang.reflect.Method;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import static org.eclipse.moquette.commons.Constants.*;
/**
*
@@ -1,4 +1,4 @@
package org.eclipse.moquette.spi.impl;
package io.moquette.spi.impl;
import java.util.Map;
@@ -13,18 +13,13 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission;
/**
* Parses the acl configuration file.
@@ -1,4 +1,4 @@
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
/**
* Created by andrea on 8/23/14.
@@ -13,9 +13,9 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission.READWRITE;
import static io.moquette.spi.impl.security.Authorization.Permission.READWRITE;
/**
* Carries the read/write authorization to topics for the users.
@@ -13,19 +13,15 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
import org.eclipse.moquette.spi.impl.subscriptions.SubscriptionsStore;
import io.moquette.spi.impl.subscriptions.SubscriptionsStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.text.ParseException;
import java.util.*;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission.READ;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission.READWRITE;
import static org.eclipse.moquette.spi.impl.security.Authorization.Permission.WRITE;
/**
* Used by the ACLFileParser to push all authorizations it finds.
* ACLAuthorizator uses it in read mode to check it topics matches the ACLs.
@@ -113,12 +109,12 @@ class AuthorizationsCollector implements IAuthorizator {
@Override
public boolean canWrite(String topic, String user, String client) {
return canDoOperation(topic, WRITE, user, client);
return canDoOperation(topic, Authorization.Permission.WRITE, user, client);
}
@Override
public boolean canRead(String topic, String user, String client) {
return canDoOperation(topic, READ, user, client);
return canDoOperation(topic, Authorization.Permission.READ, user, client);
}
private boolean canDoOperation(String topic, Authorization.Permission permission, String username, String client) {
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
/**
* @author andrea
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
import org.apache.commons.codec.binary.Hex;
import org.slf4j.Logger;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
/**
* username and password checker
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
/**
* ACL checker.
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.security;
package io.moquette.spi.impl.security;
/**
* @author andrea
@@ -13,10 +13,10 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.subscriptions;
package io.moquette.spi.impl.subscriptions;
import java.io.Serializable;
import org.eclipse.moquette.proto.messages.AbstractMessage.QOSType;
import io.moquette.proto.messages.AbstractMessage.QOSType;
/**
* Maintain the information about which Topic a certain ClientID is subscribed
@@ -13,15 +13,14 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.subscriptions;
package io.moquette.spi.impl.subscriptions;
import java.text.ParseException;
import java.util.*;
import java.util.concurrent.LinkedBlockingDeque;
import java.util.concurrent.atomic.AtomicReference;
import org.eclipse.moquette.spi.ClientSession;
import org.eclipse.moquette.spi.ISessionsStore;
import io.moquette.spi.ISessionsStore;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.subscriptions;
package io.moquette.spi.impl.subscriptions;
/**
* Internal use only class.
@@ -13,7 +13,7 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.impl.subscriptions;
package io.moquette.spi.impl.subscriptions;
import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
@@ -13,10 +13,10 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.persistence;
package io.moquette.spi.persistence;
import org.eclipse.moquette.spi.IMatchingCondition;
import org.eclipse.moquette.spi.IMessagesStore;
import io.moquette.spi.IMatchingCondition;
import io.moquette.spi.IMessagesStore;
import org.mapdb.DB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -24,8 +24,6 @@ import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.concurrent.ConcurrentMap;
import static org.eclipse.moquette.spi.persistence.MapDBSessionsStore.messageId2GuidsMapName;
/**
* IMessagesStore implementation backed by MapDB.
*
@@ -87,7 +85,7 @@ class MapDBMessagesStore implements IMessagesStore {
String guid = UUID.randomUUID().toString();
evt.setGuid(guid);
m_persistentMessageStore.put(guid, evt);
ConcurrentMap<Integer, String> messageIdToGuid = m_db.getHashMap(messageId2GuidsMapName(evt.getClientID()));
ConcurrentMap<Integer, String> messageIdToGuid = m_db.getHashMap(MapDBSessionsStore.messageId2GuidsMapName(evt.getClientID()));
messageIdToGuid.put(evt.getMessageID(), guid);
return guid;
}
@@ -103,7 +101,7 @@ class MapDBMessagesStore implements IMessagesStore {
@Override
public void dropMessagesInSession(String clientID) {
m_db.getHashMap(messageId2GuidsMapName(clientID)).clear();
m_db.getHashMap(MapDBSessionsStore.messageId2GuidsMapName(clientID)).clear();
m_persistentMessageStore.remove(clientID);
}
@@ -14,11 +14,11 @@
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.persistence;
package io.moquette.spi.persistence;
import org.eclipse.moquette.proto.MQTTException;
import org.eclipse.moquette.spi.IMessagesStore;
import org.eclipse.moquette.spi.ISessionsStore;
import io.moquette.spi.IMessagesStore;
import io.moquette.spi.ISessionsStore;
import io.moquette.proto.MQTTException;
import org.mapdb.DB;
import org.mapdb.DBMaker;
import org.slf4j.Logger;
@@ -13,13 +13,14 @@
*
* You may elect to redistribute this code under either of these licenses.
*/
package org.eclipse.moquette.spi.persistence;
package io.moquette.spi.persistence;
import org.eclipse.moquette.spi.ClientSession;
import org.eclipse.moquette.spi.IMessagesStore;
import org.eclipse.moquette.spi.ISessionsStore;
import org.eclipse.moquette.spi.impl.subscriptions.Subscription;
import org.eclipse.moquette.spi.persistence.MapDBPersistentStore.PersistentSession;
import io.moquette.spi.ClientSession;
import io.moquette.spi.IMessagesStore;
import io.moquette.spi.ISessionsStore;
import io.moquette.spi.impl.Utils;
import io.moquette.spi.impl.subscriptions.Subscription;
import io.moquette.spi.persistence.MapDBPersistentStore.PersistentSession;
import org.mapdb.DB;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -27,8 +28,6 @@ import org.slf4j.LoggerFactory;
import java.util.*;
import java.util.concurrent.ConcurrentMap;
import static org.eclipse.moquette.spi.impl.Utils.defaultGet;
/**
* ISessionsStore implementation backed by MapDB.
*
@@ -221,33 +220,33 @@ class MapDBSessionsStore implements ISessionsStore {
@Override
public void bindToDeliver(String guid, String clientID) {
List<String> guids = defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
List<String> guids = Utils.defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
guids.add(guid);
m_enqueuedStore.put(clientID, guids);
}
@Override
public Collection<String> enqueued(String clientID) {
return defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
return Utils.defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
}
@Override
public void removeEnqueued(String clientID, String guid) {
List<String> guids = defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
List<String> guids = Utils.defaultGet(m_enqueuedStore, clientID, new ArrayList<String>());
guids.remove(guid);
m_enqueuedStore.put(clientID, guids);
}
@Override
public void secondPhaseAcknowledged(String clientID, int messageID) {
Set<Integer> messageIDs = defaultGet(m_secondPhaseStore, clientID, new HashSet<Integer>());
Set<Integer> messageIDs = Utils.defaultGet(m_secondPhaseStore, clientID, new HashSet<Integer>());
messageIDs.remove(messageID);
m_secondPhaseStore.put(clientID, messageIDs);
}
@Override
public void secondPhaseAckWaiting(String clientID, int messageID) {
Set<Integer> messageIDs = defaultGet(m_secondPhaseStore, clientID, new HashSet<Integer>());
Set<Integer> messageIDs = Utils.defaultGet(m_secondPhaseStore, clientID, new HashSet<Integer>());
messageIDs.add(messageID);
m_secondPhaseStore.put(clientID, messageIDs);
}