Skip to content

Commit 47dfe33

Browse files
committed
refactor: inline StrategiesConfig into ImageConfig.
Addressed to #927 No functional changes.
1 parent e854455 commit 47dfe33

File tree

4 files changed

+44
-85
lines changed

4 files changed

+44
-85
lines changed

src/main/java/ru/mystamps/web/config/ApplicationContext.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
SecurityConfig.class,
3333
DaoConfig.class,
3434
ServicesConfig.class,
35-
StrategiesConfig.class,
3635
TaskExecutorConfig.class,
3736
TogglzConfig.class
3837
})

src/main/java/ru/mystamps/web/config/DaoConfig.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
// CheckStyle: ignore AvoidStarImportCheck for next 2 lines
2929
import ru.mystamps.web.dao.*; // NOPMD: UnusedImports
3030
import ru.mystamps.web.dao.impl.*; // NOPMD: UnusedImports
31-
import ru.mystamps.web.feature.image.ImageDataDao;
32-
import ru.mystamps.web.feature.image.JdbcImageDataDao;
3331

3432
@Configuration
3533
@PropertySource("classpath:/sql/stamps_catalog_dao_queries.properties")
@@ -50,11 +48,6 @@ public StampsCatalogDao getGibbonsCatalogDao() {
5048
);
5149
}
5250

53-
@Bean
54-
public ImageDataDao getImageDataDao() {
55-
return new JdbcImageDataDao(jdbcTemplate);
56-
}
57-
5851
@Bean
5952
public StampsCatalogDao getMichelCatalogDao() {
6053
return new JdbcStampsCatalogDao(

src/main/java/ru/mystamps/web/config/StrategiesConfig.java

Lines changed: 0 additions & 73 deletions
This file was deleted.

src/main/java/ru/mystamps/web/feature/image/ImageConfig.java

Lines changed: 44 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,13 @@
2121

2222
import org.springframework.context.annotation.Bean;
2323
import org.springframework.context.annotation.Configuration;
24+
import org.springframework.context.annotation.Import;
25+
import org.springframework.context.annotation.Profile;
26+
import org.springframework.core.env.Environment;
2427
import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
2528

2629
import lombok.RequiredArgsConstructor;
2730

28-
import ru.mystamps.web.config.StrategiesConfig;
29-
3031
/**
3132
* Spring configuration that is required for using images in an application.
3233
*
@@ -49,16 +50,17 @@ public ImageController imageController() {
4950
}
5051

5152
@RequiredArgsConstructor
53+
@Import({ DbStrategyConfig.class, FsStrategyConfig.class })
5254
public static class Services {
5355

5456
private final NamedParameterJdbcTemplate jdbcTemplate;
55-
private final StrategiesConfig strategiesConfig;
57+
private final ImagePersistenceStrategy imagePersistenceStrategy;
5658

5759
@Bean
5860
public ImageService getImageService(ImageDao imageDao) {
5961
return new ImageServiceImpl(
6062
LoggerFactory.getLogger(ImageServiceImpl.class),
61-
strategiesConfig.getImagePersistenceStrategy(),
63+
imagePersistenceStrategy,
6264
new TimedImagePreviewStrategy(
6365
LoggerFactory.getLogger(TimedImagePreviewStrategy.class),
6466
new ThumbnailatorImagePreviewStrategy()
@@ -74,4 +76,42 @@ public ImageDao imageDao() {
7476

7577
}
7678

79+
@Profile("test")
80+
@RequiredArgsConstructor
81+
public static class DbStrategyConfig {
82+
83+
private final NamedParameterJdbcTemplate jdbcTemplate;
84+
85+
@Bean
86+
public ImagePersistenceStrategy getImagePersistenceStrategy(ImageDataDao imageDataDao) {
87+
return new DatabaseImagePersistenceStrategy(
88+
LoggerFactory.getLogger(DatabaseImagePersistenceStrategy.class),
89+
imageDataDao
90+
);
91+
}
92+
93+
@Bean
94+
public ImageDataDao imageDataDao() {
95+
return new JdbcImageDataDao(jdbcTemplate);
96+
}
97+
98+
}
99+
100+
@Profile({ "prod", "travis" })
101+
@RequiredArgsConstructor
102+
public static class FsStrategyConfig {
103+
104+
private final Environment env;
105+
106+
@Bean
107+
public ImagePersistenceStrategy getImagePersistenceStrategy() {
108+
return new FilesystemImagePersistenceStrategy(
109+
LoggerFactory.getLogger(FilesystemImagePersistenceStrategy.class),
110+
env.getRequiredProperty("app.upload.dir"),
111+
env.getRequiredProperty("app.preview.dir")
112+
);
113+
}
114+
115+
}
116+
77117
}

0 commit comments

Comments
 (0)