diff --git a/quickfixj-core/src/main/java/quickfix/CachedFileStore.java b/quickfixj-core/src/main/java/quickfix/CachedFileStore.java index 8464e60d1..164a14421 100644 --- a/quickfixj-core/src/main/java/quickfix/CachedFileStore.java +++ b/quickfixj-core/src/main/java/quickfix/CachedFileStore.java @@ -100,9 +100,7 @@ public class CachedFileStore implements MessageStore { sessionFileName = prefix + "session"; final File directory = new File(msgFileName).getParentFile(); - if (!directory.exists()) { - directory.mkdirs(); - } + directory.mkdirs(); initialize(false); } @@ -176,7 +174,7 @@ private void initializeSequenceNumbers() throws IOException { final String s = sequenceNumberFile.readUTF(); final int offset = s.indexOf(':'); if (offset < 0) { - throw new IOException("Invalid sequenceNumbderFile '" + seqNumFileName + throw new IOException("Invalid sequenceNumberFile '" + seqNumFileName + "' character ':' is missing"); } cache.setNextSenderMsgSeqNum(Integer.parseInt(s.substring(0, offset))); @@ -349,7 +347,7 @@ public boolean set(int sequence, String message) throws IOException { final long offset = messageFileWriter.getFilePointer(); final byte[] messageBytes = message.getBytes(CharsetSupport.getCharset()); final int size = messageBytes.length; - messageIndex.put((long) sequence, new long[] { offset, size }); + messageIndex.put((long) sequence, new long[]{offset, size}); headerDataOutputStream.writeInt(sequence); headerDataOutputStream.writeLong(offset); headerDataOutputStream.writeInt(size); @@ -488,7 +486,7 @@ private long[] seekMessageIndex(final long index) { final long offset = headerDataInputStream.readLong(); final int size = headerDataInputStream.readInt(); if (index == sequenceNumber) { - return new long[] { offset, size }; + return new long[]{offset, size}; } } } catch (final IOException e) { @@ -519,7 +517,7 @@ private List seekMessageIndex(final long startSequence, final long endSe final long offset = headerDataInputStream.readLong(); final int size = headerDataInputStream.readInt(); if (sequenceNumber >= startSequence && sequenceNumber <= endSequence) { - indexPerSequenceNumber.put(sequenceNumber, new long[] { offset, size }); + indexPerSequenceNumber.put(sequenceNumber, new long[]{offset, size}); } } } catch (final IOException e) { diff --git a/quickfixj-core/src/main/java/quickfix/CachedFileStoreFactory.java b/quickfixj-core/src/main/java/quickfix/CachedFileStoreFactory.java index e6aa8b2ec..b6a9af022 100644 --- a/quickfixj-core/src/main/java/quickfix/CachedFileStoreFactory.java +++ b/quickfixj-core/src/main/java/quickfix/CachedFileStoreFactory.java @@ -21,7 +21,7 @@ /** * Creates a message store that stores messages in a file. Compatibility note: The file formats are not compatible with - * QF C++/JNI. If you upgrading from the QuickFIX JNI, you must delete your old session state files.) + * QF C++/JNI. If you're upgrading from the QuickFIX JNI, you must delete your old session state files.) */ public class CachedFileStoreFactory extends FileStoreFactory { diff --git a/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java b/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java index f131f5d4b..f38d36e11 100644 --- a/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java +++ b/quickfixj-core/src/main/java/quickfix/DefaultSessionFactory.java @@ -56,7 +56,7 @@ public class DefaultSessionFactory implements SessionFactory { private final SessionScheduleFactory sessionScheduleFactory; public DefaultSessionFactory(Application application, MessageStoreFactory messageStoreFactory, - LogFactory logFactory) { + LogFactory logFactory) { this.application = application; this.messageStoreFactory = messageStoreFactory; this.messageQueueFactory = new InMemoryMessageQueueFactory(); @@ -66,7 +66,7 @@ public DefaultSessionFactory(Application application, MessageStoreFactory messag } public DefaultSessionFactory(Application application, MessageStoreFactory messageStoreFactory, - LogFactory logFactory, MessageFactory messageFactory) { + LogFactory logFactory, MessageFactory messageFactory) { this.application = application; this.messageStoreFactory = messageStoreFactory; this.messageQueueFactory = new InMemoryMessageQueueFactory(); @@ -274,7 +274,7 @@ public Session create(SessionID sessionID, SessionSettings settings) throws Conf } private void processPreFixtDataDictionary(SessionID sessionID, SessionSettings settings, - DefaultDataDictionaryProvider dataDictionaryProvider) throws ConfigError, + DefaultDataDictionaryProvider dataDictionaryProvider) throws ConfigError, FieldConvertError { final DataDictionary dataDictionary = createDataDictionary(sessionID, settings, Session.SETTING_DATA_DICTIONARY, sessionID.getBeginString()); @@ -284,7 +284,7 @@ private void processPreFixtDataDictionary(SessionID sessionID, SessionSettings s } private DataDictionary createDataDictionary(SessionID sessionID, SessionSettings settings, - String settingsKey, String beginString) throws ConfigError, FieldConvertError { + String settingsKey, String beginString) throws ConfigError, FieldConvertError { final String path = getDictionaryPath(sessionID, settings, settingsKey, beginString); return getDataDictionary(path); } @@ -293,22 +293,22 @@ private ValidationSettings createValidationSettings(SessionID sessionID, Session ValidationSettings validationSettings = new ValidationSettings(); validationSettings.setCheckFieldsOutOfOrder(settings.getBoolOrDefault(sessionID, - Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER, validationSettings.isCheckFieldsOutOfOrder())); + Session.SETTING_VALIDATE_FIELDS_OUT_OF_ORDER, validationSettings.isCheckFieldsOutOfOrder())); validationSettings.setCheckFieldsHaveValues(settings.getBoolOrDefault(sessionID, - Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES, validationSettings.isCheckFieldsHaveValues())); + Session.SETTING_VALIDATE_FIELDS_HAVE_VALUES, validationSettings.isCheckFieldsHaveValues())); validationSettings.setCheckUnorderedGroupFields(settings.getBoolOrDefault(sessionID, - Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS, validationSettings.isCheckUnorderedGroupFields())); + Session.SETTING_VALIDATE_UNORDERED_GROUP_FIELDS, validationSettings.isCheckUnorderedGroupFields())); validationSettings.setCheckUserDefinedFields(settings.getBoolOrDefault(sessionID, - Session.SETTING_VALIDATE_USER_DEFINED_FIELDS, validationSettings.isCheckUserDefinedFields())); + Session.SETTING_VALIDATE_USER_DEFINED_FIELDS, validationSettings.isCheckUserDefinedFields())); validationSettings.setAllowUnknownMessageFields(settings.getBoolOrDefault(sessionID, - Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS, validationSettings.isAllowUnknownMessageFields())); + Session.SETTING_ALLOW_UNKNOWN_MSG_FIELDS, validationSettings.isAllowUnknownMessageFields())); validationSettings.setFirstFieldInGroupIsDelimiter(settings.getBoolOrDefault(sessionID, - Session.SETTING_FIRST_FIELD_IN_GROUP_IS_DELIMITER, validationSettings.isFirstFieldInGroupIsDelimiter())); + Session.SETTING_FIRST_FIELD_IN_GROUP_IS_DELIMITER, validationSettings.isFirstFieldInGroupIsDelimiter())); validateValidationSettings(validationSettings); @@ -323,7 +323,7 @@ private void validateValidationSettings(ValidationSettings validationSettings) { } private void processFixtDataDictionaries(SessionID sessionID, SessionSettings settings, - DefaultDataDictionaryProvider dataDictionaryProvider) throws ConfigError, + DefaultDataDictionaryProvider dataDictionaryProvider) throws ConfigError, FieldConvertError { dataDictionaryProvider.addTransportDictionary( sessionID.getBeginString(), @@ -373,7 +373,7 @@ private boolean isApplVerIdEnum(String value) { } private String getDictionaryPath(SessionID sessionID, SessionSettings settings, - String settingsKey, String beginString) throws ConfigError, FieldConvertError { + String settingsKey, String beginString) throws ConfigError, FieldConvertError { String path; if (settings.isSetting(sessionID, settingsKey)) { path = settings.getString(sessionID, settingsKey); @@ -410,7 +410,7 @@ private int[] getLogonIntervalsInSeconds(SessionSettings settings, SessionID ses throw new ConfigError(e); } } - return new int[] { 5 }; // default value + return new int[]{5}; // default value } private Set getInetAddresses(SessionSettings settings, SessionID sessionID) @@ -428,26 +428,26 @@ private Set getInetAddresses(SessionSettings settings, SessionID se } private boolean getSetting(SessionSettings settings, SessionID sessionID, String key, - boolean defaultValue) throws ConfigError, FieldConvertError { + boolean defaultValue) throws ConfigError, FieldConvertError { return settings.isSetting(sessionID, key) ? settings.getBool(sessionID, key) : defaultValue; } private int getSetting(SessionSettings settings, SessionID sessionID, String key, - int defaultValue) throws ConfigError, FieldConvertError { + int defaultValue) throws ConfigError, FieldConvertError { return settings.isSetting(sessionID, key) ? (int) settings.getLong(sessionID, key) : defaultValue; } private double getSetting(SessionSettings settings, SessionID sessionID, String key, - double defaultValue) throws ConfigError, FieldConvertError { + double defaultValue) throws ConfigError, FieldConvertError { return settings.isSetting(sessionID, key) ? Double.parseDouble(settings.getString(sessionID, key)) : defaultValue; } private UtcTimestampPrecision getTimestampPrecision(SessionSettings settings, SessionID sessionID, - UtcTimestampPrecision defaultValue) throws ConfigError, FieldConvertError { + UtcTimestampPrecision defaultValue) throws ConfigError, FieldConvertError { if (settings.isSetting(sessionID, Session.SETTING_TIMESTAMP_PRECISION)) { String string = settings.getString(sessionID, Session.SETTING_TIMESTAMP_PRECISION); try { @@ -462,13 +462,13 @@ private UtcTimestampPrecision getTimestampPrecision(SessionSettings settings, Se private List getLogonTags(SessionSettings settings, SessionID sessionID) throws ConfigError, FieldConvertError { List logonTags = new ArrayList<>(); - for (int index = 0;; index++) { + for (int index = 0; ; index++) { final String logonTagSetting = Session.SETTING_LOGON_TAG + (index == 0 ? "" : NumbersCache.get(index)); if (settings.isSetting(sessionID, logonTagSetting)) { String tag = settings.getString(sessionID, logonTagSetting); String[] split = tag.split("=", 2); - StringField stringField = new StringField(Integer.valueOf(split[0]), split[1]); + StringField stringField = new StringField(Integer.parseInt(split[0]), split[1]); logonTags.add(stringField); } else { break; diff --git a/quickfixj-core/src/main/java/quickfix/FileLog.java b/quickfixj-core/src/main/java/quickfix/FileLog.java index ecd84fe5a..41db4c16e 100644 --- a/quickfixj-core/src/main/java/quickfix/FileLog.java +++ b/quickfixj-core/src/main/java/quickfix/FileLog.java @@ -69,9 +69,8 @@ public class FileLog extends AbstractLog { eventFileName = prefix + "event.log"; File directory = new File(messagesFileName).getParentFile(); - if (!directory.exists()) { - directory.mkdirs(); - } + directory.mkdirs(); + this.includeMillis = includeMillis; this.includeTimestampForMessages = includeTimestampForMessages; @@ -94,7 +93,7 @@ protected void logOutgoing(String message) { private void writeMessage(FileOutputStream stream, Object lock, String message, boolean forceTimestamp) { try { - synchronized(lock) { + synchronized (lock) { if (forceTimestamp || includeTimestampForMessages) { writeTimeStamp(stream); } diff --git a/quickfixj-core/src/main/java/quickfix/FileStore.java b/quickfixj-core/src/main/java/quickfix/FileStore.java index 4cf6a5127..808e30b9b 100644 --- a/quickfixj-core/src/main/java/quickfix/FileStore.java +++ b/quickfixj-core/src/main/java/quickfix/FileStore.java @@ -88,9 +88,7 @@ public class FileStore implements MessageStore, Closeable { sessionFileName = prefix + "session"; final File directory = new File(msgFileName).getParentFile(); - if (!directory.exists()) { - directory.mkdirs(); - } + directory.mkdirs(); initialize(false); } @@ -203,7 +201,7 @@ private void updateMessageIndex(long sequenceNum, long offset, int size) { messageIndex.pollFirstEntry(); } - messageIndex.put(sequenceNum, new long[] { offset, size }); + messageIndex.put(sequenceNum, new long[]{offset, size}); } /** diff --git a/quickfixj-core/src/main/java/quickfix/MessageCracker.java b/quickfixj-core/src/main/java/quickfix/MessageCracker.java index 28b65dac1..685a4f7fe 100644 --- a/quickfixj-core/src/main/java/quickfix/MessageCracker.java +++ b/quickfixj-core/src/main/java/quickfix/MessageCracker.java @@ -41,7 +41,7 @@ public class MessageCracker { public @interface Handler { } - public class RedundantHandlerException extends RuntimeException { + public static class RedundantHandlerException extends RuntimeException { private final Class messageClass; private final Method originalMethod; private final Method redundantMethod; @@ -55,7 +55,7 @@ public RedundantHandlerException(Class messageClass, Method originalMethod, @Override public String toString() { - return "Duplicate handler method for " + messageClass + ", orginal method is " + return "Duplicate handler method for " + messageClass + ", original method is " + originalMethod + ", redundant method is " + redundantMethod; } } @@ -97,7 +97,7 @@ private boolean matchesConventionOrAnnotation(Method method) { return method.getName().equals("onMessage") || method.isAnnotationPresent(Handler.class); } - private class Invoker { + private static class Invoker { private final Object target; private final Method method; diff --git a/quickfixj-core/src/main/java/quickfix/SleepycatStore.java b/quickfixj-core/src/main/java/quickfix/SleepycatStore.java index 3fddd79f5..f9c0dcf4c 100644 --- a/quickfixj-core/src/main/java/quickfix/SleepycatStore.java +++ b/quickfixj-core/src/main/java/quickfix/SleepycatStore.java @@ -211,7 +211,7 @@ public synchronized void get(int startSequence, int endSequence, Collection sequenceBinding = TupleBinding.getPrimitiveBinding(Integer.class); // Must start at start-1 because db will look for next record larger sequenceBinding.objectToEntry(startSequence - 1, sequenceKey); @@ -223,7 +223,7 @@ public synchronized void get(int startSequence, int endSequence, Collection sequenceBinding = TupleBinding.getPrimitiveBinding(Integer.class); sequenceBinding.objectToEntry(sequence, sequenceKey); DatabaseEntry messageBytes = new DatabaseEntry(message.getBytes(CharsetSupport.getCharset())); messageDatabase.put(null, sequenceKey, messageBytes); diff --git a/quickfixj-core/src/main/java/quickfix/mina/SessionConnector.java b/quickfixj-core/src/main/java/quickfix/mina/SessionConnector.java index 675387a6e..bc7a45105 100644 --- a/quickfixj-core/src/main/java/quickfix/mina/SessionConnector.java +++ b/quickfixj-core/src/main/java/quickfix/mina/SessionConnector.java @@ -98,7 +98,7 @@ public SessionConnector(SessionSettings settings, SessionFactory sessionFactory) * If using external Executors, this method should be called immediately after the constructor. Once set, the * Executors cannot be changed. *

- * + * * @param executorFactory See {@link ExecutorFactory} for detailed requirements. */ public void setExecutorFactory(ExecutorFactory executorFactory) { @@ -296,7 +296,7 @@ protected void waitForLogout() { } protected void logError(SessionID sessionID, IoSession protocolSession, String message, Throwable t) { - log.error(message + getLogSuffix(sessionID, protocolSession), t); + log.error("{}{}", message, getLogSuffix(sessionID, protocolSession), t); } private String getLogSuffix(SessionID sessionID, IoSession protocolSession) { @@ -329,7 +329,7 @@ protected void stopSessionTimer() { // visible for testing boolean checkSessionTimerRunning() { - if ( sessionTimerFuture != null ) { + if (sessionTimerFuture != null) { return !sessionTimerFuture.isDone(); } return false; @@ -433,13 +433,13 @@ public void setIoFilterChainBuilder(IoFilterChainBuilder ioFilterChainBuilder) { protected IoFilterChainBuilder getIoFilterChainBuilder() { return ioFilterChainBuilder; } - + /** * Closes all managed sessions of an Initiator/Acceptor. * - * @param ioService Acceptor or Initiator implementation + * @param ioService Acceptor or Initiator implementation * @param awaitTermination whether to wait for underlying ExecutorService to terminate - * @param logger used for logging WARNING when IoSession could not be closed + * @param logger used for logging WARNING when IoSession could not be closed */ public static void closeManagedSessionsAndDispose(IoService ioService, boolean awaitTermination, Logger logger) { Map managedSessions = ioService.getManagedSessions(); diff --git a/quickfixj-core/src/main/java/quickfix/mina/SingleThreadedEventHandlingStrategy.java b/quickfixj-core/src/main/java/quickfix/mina/SingleThreadedEventHandlingStrategy.java index 4d34d5ca9..9c933d17b 100644 --- a/quickfixj-core/src/main/java/quickfix/mina/SingleThreadedEventHandlingStrategy.java +++ b/quickfixj-core/src/main/java/quickfix/mina/SingleThreadedEventHandlingStrategy.java @@ -215,95 +215,95 @@ public int getQueueSize(SessionID sessionID) { return getQueueSize(); } - /** - * A stand-in for the Thread class that delegates to an Executor. - * Implements all the API required by pre-existing QFJ code. - */ - static final class ThreadAdapter { - - private final Executor executor; - private final RunnableWrapper wrapper; - - ThreadAdapter(Runnable command, String name, Executor executor) { - wrapper = new RunnableWrapper(command, name); - this.executor = executor != null ? executor : new DedicatedThreadExecutor(name); - } - - public void join() throws InterruptedException { - wrapper.join(); - } - - public void setDaemon(boolean b) { - /* No-Op. Already set for DedicatedThreadExecutor. Not relevant for externally supplied Executors. */ - } - - public boolean isAlive() { - return wrapper.isAlive(); - } - - public void start() { - executor.execute(wrapper); - } - - /** - * Provides the Thread::join and Thread::isAlive semantics on the nested Runnable. - */ - static final class RunnableWrapper implements Runnable { - - private final CountDownLatch latch = new CountDownLatch(1); - private final Runnable command; - private final String name; - - public RunnableWrapper(Runnable command, String name) { - this.command = command; - this.name = name; - } - - @Override - public void run() { - Thread currentThread = Thread.currentThread(); - String threadName = currentThread.getName(); - try { - if (!name.equals(threadName)) { - currentThread.setName(name + " (" + threadName + ")"); - } - command.run(); - } finally { - latch.countDown(); - currentThread.setName(threadName); - } - } + /** + * A stand-in for the Thread class that delegates to an Executor. + * Implements all the API required by pre-existing QFJ code. + */ + static final class ThreadAdapter { + + private final Executor executor; + private final RunnableWrapper wrapper; + + ThreadAdapter(Runnable command, String name, Executor executor) { + wrapper = new RunnableWrapper(command, name); + this.executor = executor != null ? executor : new DedicatedThreadExecutor(name); + } + + public void join() throws InterruptedException { + wrapper.join(); + } + + public void setDaemon(boolean b) { + /* No-Op. Already set for DedicatedThreadExecutor. Not relevant for externally supplied Executors. */ + } + + public boolean isAlive() { + return wrapper.isAlive(); + } + + public void start() { + executor.execute(wrapper); + } + + /** + * Provides the Thread::join and Thread::isAlive semantics on the nested Runnable. + */ + static final class RunnableWrapper implements Runnable { + + private final CountDownLatch latch = new CountDownLatch(1); + private final Runnable command; + private final String name; + + public RunnableWrapper(Runnable command, String name) { + this.command = command; + this.name = name; + } - public void join() throws InterruptedException { - latch.await(); - } - - public boolean isAlive() { - return latch.getCount() > 0; - } - } - - /** - * An Executor that uses its own dedicated Thread. - * Provides equivalent behavior to the prior non-Executor approach. - */ - static final class DedicatedThreadExecutor implements Executor { - - private final String name; - private Thread thread; - - DedicatedThreadExecutor(String name) { - this.name = name; - } - - @Override - public void execute(Runnable command) { - thread = new Thread(command, name); - thread.setDaemon(true); - thread.start(); - } - } - - } + @Override + public void run() { + Thread currentThread = Thread.currentThread(); + String threadName = currentThread.getName(); + try { + if (!name.equals(threadName)) { + currentThread.setName(name + " (" + threadName + ")"); + } + command.run(); + } finally { + latch.countDown(); + currentThread.setName(threadName); + } + } + + public void join() throws InterruptedException { + latch.await(); + } + + public boolean isAlive() { + return latch.getCount() > 0; + } + } + + /** + * An Executor that uses its own dedicated Thread. + * Provides equivalent behavior to the prior non-Executor approach. + */ + static final class DedicatedThreadExecutor implements Executor { + + private final String name; + private Thread thread; + + DedicatedThreadExecutor(String name) { + this.name = name; + } + + @Override + public void execute(Runnable command) { + thread = new Thread(command, name); + thread.setDaemon(true); + thread.start(); + } + } + + } } diff --git a/quickfixj-core/src/main/java/quickfix/mina/acceptor/AbstractSocketAcceptor.java b/quickfixj-core/src/main/java/quickfix/mina/acceptor/AbstractSocketAcceptor.java index f9f418b5d..5e094c646 100644 --- a/quickfixj-core/src/main/java/quickfix/mina/acceptor/AbstractSocketAcceptor.java +++ b/quickfixj-core/src/main/java/quickfix/mina/acceptor/AbstractSocketAcceptor.java @@ -79,15 +79,15 @@ protected AbstractSocketAcceptor(SessionSettings settings, SessionFactory sessio } protected AbstractSocketAcceptor(Application application, - MessageStoreFactory messageStoreFactory, SessionSettings settings, - MessageFactory messageFactory) throws ConfigError { + MessageStoreFactory messageStoreFactory, SessionSettings settings, + MessageFactory messageFactory) throws ConfigError { this(application, messageStoreFactory, settings, new ScreenLogFactory(settings), messageFactory); } protected AbstractSocketAcceptor(Application application, - MessageStoreFactory messageStoreFactory, SessionSettings settings, - LogFactory logFactory, MessageFactory messageFactory) throws ConfigError { + MessageStoreFactory messageStoreFactory, SessionSettings settings, + LogFactory logFactory, MessageFactory messageFactory) throws ConfigError { this(settings, new DefaultSessionFactory(application, messageStoreFactory, logFactory, messageFactory)); } @@ -122,7 +122,7 @@ protected synchronized void startAcceptingConnections() throws ConfigError { if (continueInitOnError) { log.warn("error during session initialization for session(s) {}, continuing...", socketDescriptor.getAcceptedSessions().keySet(), e); } else { - log.error("Cannot start acceptor session for {}, error: {}", address, e); + log.error("Cannot start acceptor session for {}, error: ", address, e); throw new RuntimeError(e); } } @@ -130,7 +130,7 @@ protected synchronized void startAcceptingConnections() throws ConfigError { } private void installSSL(AcceptorSocketDescriptor descriptor, - CompositeIoFilterChainBuilder ioFilterChainBuilder) throws GeneralSecurityException { + CompositeIoFilterChainBuilder ioFilterChainBuilder) throws GeneralSecurityException { log.info("Installing SSL filter for {}", descriptor.getAddress()); SSLConfig sslConfig = descriptor.getSslConfig(); SSLContext sslContext = SSLContextFactory.getInstance(sslConfig); @@ -214,7 +214,7 @@ && getSettings().getBool(sessionID, SSLSupport.SETTING_USE_SSL)) { descriptor.acceptSession(session); allSessions.put(sessionID, session); } - + if (acceptTransportType != ProtocolFactory.SOCKET && getSettings().getBoolOrDefault(sessionID, SSLSupport.SETTING_USE_SSL, false)) { LogUtil.logWarning(sessionID, "SSL is only supported for transport type SOCKET and will not be enabled for transport type=" + acceptTransportType); @@ -227,7 +227,7 @@ private boolean equals(Object object1, Object object2) { private void createSessions(SessionSettings settings, boolean continueInitOnError) throws ConfigError { Map allSessions = new HashMap<>(); - for (Iterator i = settings.sectionIterator(); i.hasNext();) { + for (Iterator i = settings.sectionIterator(); i.hasNext(); ) { SessionID sessionID = i.next(); try { String connectionType = null; @@ -345,9 +345,9 @@ public int getQueueSize() { return ehs == null ? 0 : ehs.getQueueSize(); } - protected abstract EventHandlingStrategy getEventHandlingStrategy() ; + protected abstract EventHandlingStrategy getEventHandlingStrategy(); - private class DefaultAcceptorSessionProvider implements AcceptorSessionProvider { + private static class DefaultAcceptorSessionProvider implements AcceptorSessionProvider { private final Map acceptorSessions; diff --git a/quickfixj-core/src/main/java/quickfix/mina/initiator/AbstractSocketInitiator.java b/quickfixj-core/src/main/java/quickfix/mina/initiator/AbstractSocketInitiator.java index e276d4b8b..96c7975c7 100644 --- a/quickfixj-core/src/main/java/quickfix/mina/initiator/AbstractSocketInitiator.java +++ b/quickfixj-core/src/main/java/quickfix/mina/initiator/AbstractSocketInitiator.java @@ -69,8 +69,8 @@ public abstract class AbstractSocketInitiator extends SessionConnector implement public static final String QFJ_RECONNECT_THREAD_PREFIX = "QFJ Reconnect Thread-"; protected AbstractSocketInitiator(Application application, - MessageStoreFactory messageStoreFactory, SessionSettings settings, - LogFactory logFactory, MessageFactory messageFactory) throws ConfigError { + MessageStoreFactory messageStoreFactory, SessionSettings settings, + LogFactory logFactory, MessageFactory messageFactory) throws ConfigError { this(settings, new DefaultSessionFactory(application, messageStoreFactory, logFactory, messageFactory)); } @@ -81,8 +81,8 @@ protected AbstractSocketInitiator(SessionSettings settings, SessionFactory sessi } protected AbstractSocketInitiator(Application application, - MessageStoreFactory messageStoreFactory, SessionSettings settings, - LogFactory logFactory, MessageFactory messageFactory, int numReconnectThreads) throws ConfigError { + MessageStoreFactory messageStoreFactory, SessionSettings settings, + LogFactory logFactory, MessageFactory messageFactory, int numReconnectThreads) throws ConfigError { this(settings, new DefaultSessionFactory(application, messageStoreFactory, logFactory, messageFactory), numReconnectThreads); } @@ -114,7 +114,7 @@ protected void createSessionInitiators() } private void createInitiator(final Session session, final boolean continueInitOnError) throws ConfigError, FieldConvertError { - + SessionSettings settings = getSettings(); final SessionID sessionID = session.getSessionID(); final int[] reconnectingIntervals = getReconnectIntervalInSeconds(sessionID); @@ -216,7 +216,7 @@ private SocketAddress getLocalAddress(SessionSettings settings, final Session se private void createSessions(boolean continueInitOnError) throws ConfigError, FieldConvertError { final SessionSettings settings = getSettings(); final Map initiatorSessions = new HashMap<>(); - for (final Iterator i = settings.sectionIterator(); i.hasNext();) { + for (final Iterator i = settings.sectionIterator(); i.hasNext(); ) { final SessionID sessionID = i.next(); if (isInitiatorSession(sessionID)) { try { @@ -236,7 +236,7 @@ private void createSessions(boolean continueInitOnError) throws ConfigError, Fie } setSessions(initiatorSessions); } - + public void createDynamicSession(SessionID sessionID) throws ConfigError { try { @@ -263,20 +263,18 @@ private int[] getReconnectIntervalInSeconds(SessionID sessionID) throws ConfigEr throw new ConfigError(e); } } - return new int[] { 30 }; + return new int[]{30}; } private SocketAddress[] getSocketAddresses(SessionID sessionID) throws ConfigError { final SessionSettings settings = getSettings(); final ArrayList addresses = new ArrayList<>(); - for (int index = 0;; index++) { + for (int index = 0; ; index++) { try { - final String protocolKey = Initiator.SETTING_SOCKET_CONNECT_PROTOCOL - + (index == 0 ? "" : Integer.toString(index)); - final String hostKey = Initiator.SETTING_SOCKET_CONNECT_HOST - + (index == 0 ? "" : Integer.toString(index)); - final String portKey = Initiator.SETTING_SOCKET_CONNECT_PORT - + (index == 0 ? "" : Integer.toString(index)); + final String keySuffix = index == 0 ? "" : Integer.toString(index); + final String protocolKey = Initiator.SETTING_SOCKET_CONNECT_PROTOCOL + keySuffix; + final String hostKey = Initiator.SETTING_SOCKET_CONNECT_HOST + keySuffix; + final String portKey = Initiator.SETTING_SOCKET_CONNECT_PORT + keySuffix; int transportType = ProtocolFactory.SOCKET; if (settings.isSetting(sessionID, protocolKey)) { try { @@ -325,7 +323,7 @@ protected void startInitiators() { } protected void stopInitiators() { - for (Iterator iterator = initiators.iterator(); iterator.hasNext();) { + for (Iterator iterator = initiators.iterator(); iterator.hasNext(); ) { iterator.next().stop(); iterator.remove(); } @@ -342,8 +340,8 @@ public int getQueueSize() { } protected abstract EventHandlingStrategy getEventHandlingStrategy(); - - + + private static class QFScheduledReconnectThreadFactory implements ThreadFactory { private static final AtomicInteger COUNTER = new AtomicInteger(1); diff --git a/quickfixj-core/src/main/java/quickfix/mina/ssl/InitiatorSslFilter.java b/quickfixj-core/src/main/java/quickfix/mina/ssl/InitiatorSslFilter.java index 7c4e5b438..d7bf56a7c 100644 --- a/quickfixj-core/src/main/java/quickfix/mina/ssl/InitiatorSslFilter.java +++ b/quickfixj-core/src/main/java/quickfix/mina/ssl/InitiatorSslFilter.java @@ -8,7 +8,7 @@ import javax.net.ssl.SSLEngine; import javax.net.ssl.SSLParameters; import java.net.InetSocketAddress; -import java.util.Arrays; +import java.util.Collections; public final class InitiatorSslFilter extends SslFilter { @@ -53,7 +53,7 @@ protected SSLEngine createEngine(IoSession session, InetSocketAddress addr) { if (sniHostName != null) { SSLParameters sslParameters = sslEngine.getSSLParameters(); - sslParameters.setServerNames(Arrays.asList(new SNIHostName(sniHostName))); + sslParameters.setServerNames(Collections.singletonList(new SNIHostName(sniHostName))); sslEngine.setSSLParameters(sslParameters); }