From 1a7fbb0dc73939cb35d0d0f08f12cfaf528d50b6 Mon Sep 17 00:00:00 2001 From: "Meleshko, Aleksey2" Date: Wed, 12 Feb 2020 15:11:36 +0300 Subject: [PATCH] add configurations module for registration of configuration classes in DI container. closes #23 --- .../core/applications/AqualityModule.java | 10 +++--- .../configurations/IConfigurationsModule.java | 34 +++++++++++++++++++ .../core/elements/IElementsModule.java | 4 +-- .../localization/ILocalizationModule.java | 4 +-- 4 files changed, 43 insertions(+), 9 deletions(-) create mode 100644 src/main/java/aquality/selenium/core/configurations/IConfigurationsModule.java diff --git a/src/main/java/aquality/selenium/core/applications/AqualityModule.java b/src/main/java/aquality/selenium/core/applications/AqualityModule.java index fb0a8a7..6b0e2c8 100644 --- a/src/main/java/aquality/selenium/core/applications/AqualityModule.java +++ b/src/main/java/aquality/selenium/core/applications/AqualityModule.java @@ -21,7 +21,7 @@ * Describes all dependencies which is registered for the project. */ public class AqualityModule extends AbstractModule - implements ILocalizationModule, IUtilitiesModule, IWaitingsModule, IElementsModule { + implements IConfigurationsModule, IElementsModule, ILocalizationModule, IUtilitiesModule, IWaitingsModule { private final Provider applicationProvider; @@ -37,10 +37,10 @@ protected void configure() { bind(IApplication.class).toProvider(applicationProvider); bind(ISettingsFile.class).toInstance(getInstanceOfSettingsFile()); bind(Logger.class).toInstance(Logger.getInstance()); - bind(ILoggerConfiguration.class).to(LoggerConfiguration.class).in(Singleton.class); - bind(ITimeoutConfiguration.class).to(TimeoutConfiguration.class).in(Singleton.class); - bind(IRetryConfiguration.class).to(RetryConfiguration.class).in(Singleton.class); - bind(IElementCacheConfiguration.class).to(ElementCacheConfiguration.class).in(Singleton.class); + bind(ILoggerConfiguration.class).to(getLoggerConfigurationImplementation()).in(Singleton.class); + bind(ITimeoutConfiguration.class).to(getTimeoutConfigurationImplementation()).in(Singleton.class); + bind(IRetryConfiguration.class).to(getRetryConfigurationImplementation()).in(Singleton.class); + bind(IElementCacheConfiguration.class).to(getElementCacheConfigurationImplementation()).in(Singleton.class); bind(IElementActionRetrier.class).to(getElementActionRetrierImplementation()).in(Singleton.class); bind(ILocalizationManager.class).to(getLocalizationManagerImplementation()).in(Singleton.class); bind(ILocalizedLogger.class).to(getLocalizedLoggerImplementation()).in(Singleton.class); diff --git a/src/main/java/aquality/selenium/core/configurations/IConfigurationsModule.java b/src/main/java/aquality/selenium/core/configurations/IConfigurationsModule.java new file mode 100644 index 0000000..980e728 --- /dev/null +++ b/src/main/java/aquality/selenium/core/configurations/IConfigurationsModule.java @@ -0,0 +1,34 @@ +package aquality.selenium.core.configurations; + +/** + * Describes implementations of configurations to be registered in DI container. + */ +public interface IConfigurationsModule { + /** + * @return class which implements {@link IElementCacheConfiguration} + */ + default Class getElementCacheConfigurationImplementation() { + return ElementCacheConfiguration.class; + } + + /** + * @return class which implements {@link ILoggerConfiguration} + */ + default Class getLoggerConfigurationImplementation() { + return LoggerConfiguration.class; + } + + /** + * @return class which implements {@link IRetryConfiguration} + */ + default Class getRetryConfigurationImplementation() { + return RetryConfiguration.class; + } + + /** + * @return class which implements {@link ITimeoutConfiguration} + */ + default Class getTimeoutConfigurationImplementation() { + return TimeoutConfiguration.class; + } +} diff --git a/src/main/java/aquality/selenium/core/elements/IElementsModule.java b/src/main/java/aquality/selenium/core/elements/IElementsModule.java index 33aee0d..3c3ab66 100644 --- a/src/main/java/aquality/selenium/core/elements/IElementsModule.java +++ b/src/main/java/aquality/selenium/core/elements/IElementsModule.java @@ -8,14 +8,14 @@ */ public interface IElementsModule { /** - * @return class which implements IElementFinder + * @return class which implements {@link IElementFinder} */ default Class getElementFinderImplementation() { return ElementFinder.class; } /** - * @return class which implements IElementFactory + * @return class which implements {@link IElementFactory} */ default Class getElementFactoryImplementation() { return ElementFactory.class; diff --git a/src/main/java/aquality/selenium/core/localization/ILocalizationModule.java b/src/main/java/aquality/selenium/core/localization/ILocalizationModule.java index bce1f43..d7917ea 100644 --- a/src/main/java/aquality/selenium/core/localization/ILocalizationModule.java +++ b/src/main/java/aquality/selenium/core/localization/ILocalizationModule.java @@ -5,14 +5,14 @@ */ public interface ILocalizationModule { /** - * @return class which implements ILocalizationManager + * @return class which implements {@link ILocalizationManager} */ default Class getLocalizationManagerImplementation() { return LocalizationManager.class; } /** - * @return class which implements ILocalizedLogger + * @return class which implements {@link ILocalizedLogger} */ default Class getLocalizedLoggerImplementation() { return LocalizedLogger.class;