From 5029da8763f54fecb979ab063f2857050b804248 Mon Sep 17 00:00:00 2001 From: andsel Date: Mon, 25 Apr 2016 11:51:57 +0200 Subject: [PATCH] Removed WebSocket port from default configuration, end moved defaults config from ConfigParser to Config container. Fixes isse #150 --- .../server/config/ClasspathConfig.java | 3 ++- .../server/config/ConfigurationParser.java | 16 ++----------- .../server/config/FilesystemConfig.java | 5 ++-- .../io/moquette/server/config/IConfig.java | 21 ++++++++++++---- .../moquette/server/config/MemoryConfig.java | 24 +++++++++---------- .../ServerIntegrationWebSocketTest.java | 1 + .../config/ConfigurationParserTest.java | 17 ++++++++----- 7 files changed, 48 insertions(+), 39 deletions(-) diff --git a/broker/src/main/java/io/moquette/server/config/ClasspathConfig.java b/broker/src/main/java/io/moquette/server/config/ClasspathConfig.java index b36ac4c4..e0547d30 100644 --- a/broker/src/main/java/io/moquette/server/config/ClasspathConfig.java +++ b/broker/src/main/java/io/moquette/server/config/ClasspathConfig.java @@ -29,7 +29,7 @@ import java.util.Properties; * * @author andrea */ -public class ClasspathConfig implements IConfig { +public class ClasspathConfig extends IConfig { private static final Logger LOG = LoggerFactory.getLogger(ClasspathConfig.class); @@ -43,6 +43,7 @@ public class ClasspathConfig implements IConfig { } Reader configReader = new InputStreamReader(is); ConfigurationParser confParser = new ConfigurationParser(); + assignDefaults(); try { confParser.parse(configReader); } catch (ParseException pex) { diff --git a/broker/src/main/java/io/moquette/server/config/ConfigurationParser.java b/broker/src/main/java/io/moquette/server/config/ConfigurationParser.java index 094c68a5..cc15e658 100644 --- a/broker/src/main/java/io/moquette/server/config/ConfigurationParser.java +++ b/broker/src/main/java/io/moquette/server/config/ConfigurationParser.java @@ -37,21 +37,9 @@ class ConfigurationParser { private Properties m_properties = new Properties(); - ConfigurationParser() { - createDefaults(); - } +// ConfigurationParser() { +// } - private void createDefaults() { - m_properties.put(BrokerConstants.PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.PORT)); - m_properties.put(BrokerConstants.HOST_PROPERTY_NAME, BrokerConstants.HOST); - m_properties.put(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.WEBSOCKET_PORT)); - m_properties.put(BrokerConstants.PASSWORD_FILE_PROPERTY_NAME, ""); - m_properties.put(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, BrokerConstants.DEFAULT_PERSISTENT_PATH); - m_properties.put(BrokerConstants.ALLOW_ANONYMOUS_PROPERTY_NAME, true); - m_properties.put(BrokerConstants.AUTHENTICATOR_CLASS_NAME, ""); - m_properties.put(BrokerConstants.AUTHORIZATOR_CLASS_NAME, ""); - } - /** * Parse the configuration from file. */ diff --git a/broker/src/main/java/io/moquette/server/config/FilesystemConfig.java b/broker/src/main/java/io/moquette/server/config/FilesystemConfig.java index dfead22b..ffb0dcda 100644 --- a/broker/src/main/java/io/moquette/server/config/FilesystemConfig.java +++ b/broker/src/main/java/io/moquette/server/config/FilesystemConfig.java @@ -27,13 +27,14 @@ import java.util.Properties; * * @author andrea */ -public class FilesystemConfig implements IConfig { +public class FilesystemConfig extends IConfig { private static final Logger LOG = LoggerFactory.getLogger(FilesystemConfig.class); - private final Properties m_properties; + private Properties m_properties = new Properties(); public FilesystemConfig(File file) { ConfigurationParser confParser = new ConfigurationParser(); + assignDefaults(); try { confParser.parse(file); } catch (ParseException pex) { diff --git a/broker/src/main/java/io/moquette/server/config/IConfig.java b/broker/src/main/java/io/moquette/server/config/IConfig.java index 8bb76574..87be7958 100644 --- a/broker/src/main/java/io/moquette/server/config/IConfig.java +++ b/broker/src/main/java/io/moquette/server/config/IConfig.java @@ -15,15 +15,28 @@ */ package io.moquette.server.config; +import io.moquette.BrokerConstants; + /** * Base interface for all configuration implementations (filesystem, memory or classpath) * * @author andrea */ -public interface IConfig { - void setProperty(String name, String value); +public abstract class IConfig { + public abstract void setProperty(String name, String value); - String getProperty(String name); + public abstract String getProperty(String name); - String getProperty(String name, String defaultValue); + public abstract String getProperty(String name, String defaultValue); + + void assignDefaults() { + setProperty(BrokerConstants.PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.PORT)); + setProperty(BrokerConstants.HOST_PROPERTY_NAME, BrokerConstants.HOST); + //setProperty(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.WEBSOCKET_PORT)); + setProperty(BrokerConstants.PASSWORD_FILE_PROPERTY_NAME, ""); + setProperty(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, BrokerConstants.DEFAULT_PERSISTENT_PATH); + setProperty(BrokerConstants.ALLOW_ANONYMOUS_PROPERTY_NAME, Boolean.TRUE.toString()); + setProperty(BrokerConstants.AUTHENTICATOR_CLASS_NAME, ""); + setProperty(BrokerConstants.AUTHORIZATOR_CLASS_NAME, ""); + } } diff --git a/broker/src/main/java/io/moquette/server/config/MemoryConfig.java b/broker/src/main/java/io/moquette/server/config/MemoryConfig.java index 43534486..96da35da 100644 --- a/broker/src/main/java/io/moquette/server/config/MemoryConfig.java +++ b/broker/src/main/java/io/moquette/server/config/MemoryConfig.java @@ -25,27 +25,27 @@ import java.util.Properties; * * @author andrea */ -public class MemoryConfig implements IConfig { +public class MemoryConfig extends IConfig { private final Properties m_properties = new Properties(); public MemoryConfig(Properties properties) { - createDefaults(); + assignDefaults(); for (Map.Entry entrySet : properties.entrySet()) { m_properties.put(entrySet.getKey(), entrySet.getValue()); } } - private void createDefaults() { - m_properties.put(BrokerConstants.PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.PORT)); - m_properties.put(BrokerConstants.HOST_PROPERTY_NAME, BrokerConstants.HOST); - m_properties.put(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.WEBSOCKET_PORT)); - m_properties.put(BrokerConstants.PASSWORD_FILE_PROPERTY_NAME, ""); - m_properties.put(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, BrokerConstants.DEFAULT_PERSISTENT_PATH); - m_properties.put(BrokerConstants.ALLOW_ANONYMOUS_PROPERTY_NAME, true); - m_properties.put(BrokerConstants.AUTHENTICATOR_CLASS_NAME, ""); - m_properties.put(BrokerConstants.AUTHORIZATOR_CLASS_NAME, ""); - } +// private void createDefaults() { +// m_properties.put(BrokerConstants.PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.PORT)); +// m_properties.put(BrokerConstants.HOST_PROPERTY_NAME, BrokerConstants.HOST); +// m_properties.put(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.WEBSOCKET_PORT)); +// m_properties.put(BrokerConstants.PASSWORD_FILE_PROPERTY_NAME, ""); +// m_properties.put(BrokerConstants.PERSISTENT_STORE_PROPERTY_NAME, BrokerConstants.DEFAULT_PERSISTENT_PATH); +// m_properties.put(BrokerConstants.ALLOW_ANONYMOUS_PROPERTY_NAME, true); +// m_properties.put(BrokerConstants.AUTHENTICATOR_CLASS_NAME, ""); +// m_properties.put(BrokerConstants.AUTHORIZATOR_CLASS_NAME, ""); +// } @Override public void setProperty(String name, String value) { diff --git a/broker/src/test/java/io/moquette/server/ServerIntegrationWebSocketTest.java b/broker/src/test/java/io/moquette/server/ServerIntegrationWebSocketTest.java index 3f97582f..a6031354 100644 --- a/broker/src/test/java/io/moquette/server/ServerIntegrationWebSocketTest.java +++ b/broker/src/test/java/io/moquette/server/ServerIntegrationWebSocketTest.java @@ -49,6 +49,7 @@ public class ServerIntegrationWebSocketTest { protected void startServer() throws IOException { m_server = new Server(); final Properties configProps = IntegrationUtils.prepareTestPropeties(); + configProps.put(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME, Integer.toString(BrokerConstants.WEBSOCKET_PORT)); m_config = new MemoryConfig(configProps); m_server.startServer(m_config); } diff --git a/broker/src/test/java/io/moquette/server/config/ConfigurationParserTest.java b/broker/src/test/java/io/moquette/server/config/ConfigurationParserTest.java index dddfef62..4169d3ee 100644 --- a/broker/src/test/java/io/moquette/server/config/ConfigurationParserTest.java +++ b/broker/src/test/java/io/moquette/server/config/ConfigurationParserTest.java @@ -16,7 +16,6 @@ package io.moquette.server.config; import io.moquette.BrokerConstants; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -26,6 +25,8 @@ import java.text.ParseException; import java.util.Properties; import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; /** * @@ -44,7 +45,8 @@ public class ConfigurationParserTest { public void checkDefaultOptions() { Properties props = m_parser.getProperties(); - verifyDefaults(props); + //verifyDefaults(props); + assertTrue(props.isEmpty()); } @Test @@ -53,7 +55,8 @@ public class ConfigurationParserTest { m_parser.parse(conf); //Verify - verifyDefaults(m_parser.getProperties()); +// verifyDefaults(m_parser.getProperties()); + assertTrue(m_parser.getProperties().isEmpty()); } @Test @@ -62,7 +65,8 @@ public class ConfigurationParserTest { m_parser.parse(conf); //Verify - verifyDefaults(m_parser.getProperties()); +// verifyDefaults(m_parser.getProperties()); + assertTrue(m_parser.getProperties().isEmpty()); } @Test(expected = ParseException.class) @@ -101,7 +105,8 @@ public class ConfigurationParserTest { * Helper method to verify default options. */ private void verifyDefaults(Properties props) { - Assert.assertEquals(BrokerConstants.PORT, Integer.parseInt(props.getProperty("port"))); - Assert.assertEquals(BrokerConstants.HOST, props.getProperty("host")); + assertEquals(BrokerConstants.PORT, Integer.parseInt(props.getProperty(BrokerConstants.PORT_PROPERTY_NAME))); + assertEquals(BrokerConstants.HOST, props.getProperty(BrokerConstants.HOST_PROPERTY_NAME)); + assertNull(props.getProperty(BrokerConstants.WEB_SOCKET_PORT_PROPERTY_NAME)); } } \ No newline at end of file