Skip to content

Commit e0d09c3

Browse files
committed
convert property injection to constructor injection for spring6
1 parent 2785236 commit e0d09c3

7 files changed

Lines changed: 91 additions & 101 deletions

File tree

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/external-dependencies.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@
66
<version>5.0.0-snapshot</version>
77
<packaging>jar</packaging>
88
<dependencies>
9+
<dependency>
10+
<groupId>commons-beanutils</groupId>
11+
<artifactId>commons-beanutils</artifactId>
12+
<version>1.11.0</version>
13+
</dependency>
914
<dependency>
1015
<groupId>jakarta.mail</groupId>
1116
<artifactId>jakarta.mail-api</artifactId>

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/resources/sapcommercetoolkit/systemsetup-spring.xml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@
1010
<constructor-arg name="performSystemSetup" value="${sapcommercetoolkit.impeximport.environment.legacysystemsetup:true}"/>
1111
</bean>
1212
<bean id="sapcommercetoolkitSystemSetupExecutor" class="tools.sapcx.commerce.toolkit.setup.ReliableSystemSetupExecutor">
13-
<property name="validationService" ref="validationService"/>
14-
<property name="elementaryDataImporter" ref="elementaryDataImporter"/>
15-
<property name="releasePatchesImporter" ref="releasePatchImporter"/>
16-
<property name="essentialDataImporter" ref="essentialDataImporter"/>
17-
<property name="projectDataImporters" ref="sapcommercetoolkitProjectDataImporters"/>
13+
<constructor-arg name="validationService" ref="validationService"/>
14+
<constructor-arg name="elementaryDataImporter" ref="elementaryDataImporter"/>
15+
<constructor-arg name="releasePatchesImporter" ref="releasePatchImporter"/>
16+
<constructor-arg name="essentialDataImporter" ref="essentialDataImporter"/>
17+
<constructor-arg name="projectDataImporters" ref="sapcommercetoolkitProjectDataImporters"/>
1818
</bean>
1919
<util:list id="sapcommercetoolkitProjectDataImporters" value-type="tools.sapcx.commerce.toolkit.setup.ImpExDataImporter">
2020
<ref bean="platformOverlayImporter"/>
@@ -76,12 +76,12 @@
7676
</bean>
7777

7878
<bean id="toolkitSystemSetupEnvironment" class="tools.sapcx.commerce.toolkit.setup.SystemSetupEnvironment">
79-
<property name="configurationService" ref="configurationService"/>
80-
<property name="configurationFile" value="${sapcommercetoolkit.impeximport.environment.configurationfile}"/>
79+
<constructor-arg name="configurationService" ref="configurationService"/>
80+
<constructor-arg name="fileName" value="${sapcommercetoolkit.impeximport.environment.configurationfile}"/>
8181
</bean>
8282
<bean id="toolkitImpExDataImportExecutor" class="tools.sapcx.commerce.toolkit.impex.executor.SynchronousImpExDataImportExecutor">
83-
<property name="environment" ref="toolkitSystemSetupEnvironment"/>
84-
<property name="commonI18NService" ref="commonI18NService"/>
85-
<property name="importService" ref="importService"/>
83+
<constructor-arg name="environment" ref="toolkitSystemSetupEnvironment"/>
84+
<constructor-arg name="commonI18NService" ref="commonI18NService"/>
85+
<constructor-arg name="importService" ref="importService"/>
8686
</bean>
8787
</beans>

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/src/tools/sapcx/commerce/toolkit/impex/executor/SynchronousImpExDataImportExecutor.java

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,19 @@
2626
* @see SystemSetupEnvironment
2727
*/
2828
public class SynchronousImpExDataImportExecutor implements ImpExDataImportExecutor, ResourceLoaderAware {
29-
private ImpExDataImporterLogger logger = new ImpExDataImporterLogger();
29+
private final ImpExDataImporterLogger logger = new ImpExDataImporterLogger();
30+
private final SystemSetupEnvironment environment;
31+
private final CommonI18NService commonI18NService;
32+
private final ImportService importService;
3033
private ResourceLoader resourceLoader;
31-
private SystemSetupEnvironment environment;
32-
private CommonI18NService commonI18NService;
33-
private ImportService importService;
3434

35-
@Override
35+
public SynchronousImpExDataImportExecutor(SystemSetupEnvironment environment, CommonI18NService commonI18NService, ImportService importService) {
36+
this.environment = environment;
37+
this.commonI18NService = commonI18NService;
38+
this.importService = importService;
39+
}
40+
41+
@Override
3642
public void importImpexFile(SystemSetupContext context, final String file, final String fileEncoding) {
3743
this.importImpexFile(context, file, fileEncoding, true);
3844
}
@@ -104,16 +110,4 @@ public ImpExDataImporterLogger getLogger() {
104110
public void setResourceLoader(ResourceLoader resourceLoader) {
105111
this.resourceLoader = resourceLoader;
106112
}
107-
108-
public void setEnvironment(SystemSetupEnvironment environment) {
109-
this.environment = environment;
110-
}
111-
112-
public void setCommonI18NService(CommonI18NService commonI18NService) {
113-
this.commonI18NService = commonI18NService;
114-
}
115-
116-
public void setImportService(ImportService importService) {
117-
this.importService = importService;
118-
}
119113
}

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/src/tools/sapcx/commerce/toolkit/setup/ReliableSystemSetupExecutor.java

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,26 @@ public final class ReliableSystemSetupExecutor implements ApplicationContextAwar
3838
static final String COCKPIT_CONFIGURATION_SERVICE = "cockpitConfigurationService";
3939

4040
private ApplicationContext applicationContext;
41-
private ValidationService validationService;
42-
private ImpExDataImporter elementaryDataImporter;
43-
private ImpExDataImporter releasePatchesImporter;
44-
private ImpExDataImporter essentialDataImporter;
45-
private List<ImpExDataImporter> projectDataImporters = new ArrayList<>();
46-
47-
public void reliableSetupPhases(final SystemSetupContext context) {
41+
private final ValidationService validationService;
42+
private final ImpExDataImporter elementaryDataImporter;
43+
private final ImpExDataImporter releasePatchesImporter;
44+
private final ImpExDataImporter essentialDataImporter;
45+
private final List<ImpExDataImporter> projectDataImporters;
46+
47+
public ReliableSystemSetupExecutor(
48+
ValidationService validationService,
49+
ImpExDataImporter elementaryDataImporter,
50+
ImpExDataImporter releasePatchesImporter,
51+
ImpExDataImporter essentialDataImporter,
52+
List<ImpExDataImporter> projectDataImporters) {
53+
this.validationService = validationService;
54+
this.elementaryDataImporter = elementaryDataImporter;
55+
this.releasePatchesImporter = releasePatchesImporter;
56+
this.essentialDataImporter = essentialDataImporter;
57+
this.projectDataImporters = projectDataImporters;
58+
}
59+
60+
public void reliableSetupPhases(final SystemSetupContext context) {
4861
Consumer<ImpExDataImporter> importData = importer -> importer.importData(context);
4962

5063
if (context.getType().isEssential()) {
@@ -93,27 +106,6 @@ private boolean isSystemInitialization(SystemSetupContext context) {
93106
return context.getProcess().isInit() && !context.getProcess().isAll();
94107
}
95108

96-
public void setValidationService(ValidationService validationService) {
97-
this.validationService = validationService;
98-
}
99-
100-
public void setElementaryDataImporter(ImpExDataImporter elementaryDataImporter) {
101-
this.elementaryDataImporter = elementaryDataImporter;
102-
}
103-
104-
public void setReleasePatchesImporter(ImpExDataImporter releasePatchesImporter) {
105-
this.releasePatchesImporter = releasePatchesImporter;
106-
}
107-
108-
public void setEssentialDataImporter(ImpExDataImporter essentialDataImporter) {
109-
this.essentialDataImporter = essentialDataImporter;
110-
}
111-
112-
public void setProjectDataImporters(List<ImpExDataImporter> projectDataImporters) {
113-
this.projectDataImporters.clear();
114-
this.projectDataImporters.addAll(projectDataImporters);
115-
}
116-
117109
@Override
118110
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
119111
this.applicationContext = applicationContext;

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/src/tools/sapcx/commerce/toolkit/setup/SystemSetupEnvironment.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,17 @@ public final class SystemSetupEnvironment {
4242
@VisibleForTesting
4343
static final String FILE_HEADER = "This file is generated automatically by the sapcommercetoolkit extension. Do not change the file manually!";
4444

45-
private String fileName;
45+
private final String fileName;
46+
private final ConfigurationService configurationService;
4647
private FileBasedConfigurationBuilder<PropertiesConfiguration> persistentConfiguration;
47-
private ConfigurationService configurationService;
4848

49-
public boolean useLegacyModeForImpEx() {
49+
public SystemSetupEnvironment(String fileName, ConfigurationService configurationService) {
50+
this.fileName = fileName;
51+
this.configurationService = configurationService;
52+
this.updatePersistentConfigurationBuilder();
53+
}
54+
55+
public boolean useLegacyModeForImpEx() {
5056
return configurationService.getConfiguration().getBoolean(LEGACYMODEKEY, false);
5157
}
5258

@@ -149,13 +155,7 @@ private Locale getLocaleFromConfig(String key, Locale defaultValue) {
149155
return new Locale(locale);
150156
}
151157

152-
public void setConfigurationService(ConfigurationService configurationService) {
153-
this.configurationService = configurationService;
154-
}
155-
156-
public void setConfigurationFile(String fileName) {
157-
this.fileName = fileName;
158-
158+
private void updatePersistentConfigurationBuilder() {
159159
try {
160160
File file = new File(fileName);
161161
if (!file.exists()) {

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/testsrc/tools/sapcx/commerce/toolkit/setup/SystemSetupEnvironmentTests.java

Lines changed: 18 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import de.hybris.platform.servicelayer.impex.ImportConfig;
1010

1111
import org.apache.commons.io.FileUtils;
12+
import org.junit.After;
1213
import org.junit.Before;
1314
import org.junit.Test;
1415

@@ -18,13 +19,18 @@
1819
public class SystemSetupEnvironmentTests {
1920
private ConfigurationServiceFake configurationServiceFake;
2021
private SystemSetupEnvironment environment;
22+
private File tempFile;
2123

2224
@Before
23-
public void setUp() {
25+
public void setUp() throws Exception {
2426
configurationServiceFake = new ConfigurationServiceFake();
27+
tempFile = File.createTempFile("configuration", ".properties");
28+
environment = new SystemSetupEnvironment(tempFile.getAbsolutePath(), configurationServiceFake);
29+
}
2530

26-
environment = new SystemSetupEnvironment();
27-
environment.setConfigurationService(configurationServiceFake);
31+
@After
32+
public void removeTempFile() throws Exception {
33+
tempFile.delete();
2834
}
2935

3036
@Test
@@ -111,33 +117,18 @@ public void withConfigurationForPrefix_mapToKeyIsResolved() {
111117

112118
@Test
113119
public void verifyPersistentConfigurationFileIsCreatedIfAbsent() throws Exception {
114-
File tempFile = null;
115-
try {
116-
tempFile = File.createTempFile("configuration", ".properties");
117-
tempFile.delete();
118-
119-
environment.setConfigurationFile(tempFile.getAbsolutePath());
120-
121-
assertThat(tempFile).exists().canRead().canWrite();
122-
assertThat(tempFile).hasContent("# " + environment.FILE_HEADER + "\n\n");
123-
} finally {
124-
tempFile.delete();
125-
}
120+
tempFile.delete();
121+
environment = new SystemSetupEnvironment(tempFile.getAbsolutePath(), configurationServiceFake);
122+
123+
assertThat(tempFile).exists().canRead().canWrite();
124+
assertThat(tempFile).hasContent("# " + environment.FILE_HEADER + "\n\n");
126125
}
127126

128127
@Test
129128
public void verifyPersistentConfigurationFileIsReadIfAvailable() throws Exception {
130-
File tempFile = null;
131-
try {
132-
tempFile = File.createTempFile("configuration", ".properties");
133-
FileUtils.writeStringToFile(tempFile, "# " + SystemSetupEnvironment.FILE_HEADER + "\n\n");
134-
FileUtils.writeStringToFile(tempFile, SystemSetupEnvironment.LASTPROCESSEDRELEASEVERSIONKEY + " = release1x0x0\n");
135-
136-
environment.setConfigurationFile(tempFile.getAbsolutePath());
137-
138-
assertThat(environment.getLastProcessedReleaseVersion()).isEqualTo("release1x0x0");
139-
} finally {
140-
tempFile.delete();
141-
}
129+
FileUtils.writeStringToFile(tempFile, "# " + SystemSetupEnvironment.FILE_HEADER + "\n\n");
130+
FileUtils.writeStringToFile(tempFile, SystemSetupEnvironment.LASTPROCESSEDRELEASEVERSIONKEY + " = release1x0x0\n");
131+
132+
assertThat(environment.getLastProcessedReleaseVersion()).isEqualTo("release1x0x0");
142133
}
143134
}

core-customize/hybris/bin/custom/sapcxtools/sapcommercetoolkit/testsrc/tools/sapcx/commerce/toolkit/setup/ToolkitSystemSetupTests.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import static org.mockito.Mockito.mock;
55
import static org.mockito.Mockito.when;
66

7+
import java.io.File;
78
import java.util.ArrayList;
89
import java.util.Arrays;
910
import java.util.Collections;
@@ -16,6 +17,7 @@
1617
import de.hybris.platform.core.initialization.SystemSetupContext;
1718
import de.hybris.platform.core.initialization.SystemSetupParameter;
1819

20+
import org.junit.After;
1921
import org.junit.Before;
2022
import org.junit.Test;
2123
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
@@ -46,31 +48,37 @@ public class ToolkitSystemSetupTests {
4648
private ProjectDataImporter releasePatchReRunImporter;
4749

4850
private ToolkitSystemSetup systemSetup;
51+
private File tempFile;
4952

5053
@Before
5154
public void setUp() throws Exception {
55+
tempFile = File.createTempFile("configuration", ".properties");
56+
5257
applicationContext = mock(ApplicationContext.class);
5358
when(applicationContext.getBean(ReliableSystemSetupExecutor.COCKPIT_CONFIGURATION_SERVICE)).thenThrow(new NoSuchBeanDefinitionException("Bean not found!"));
5459

5560
validationService = new ValidationServiceSpy();
56-
environment = new SystemSetupEnvironment();
57-
configurationServiceFake = new ConfigurationServiceFake();
58-
environment.setConfigurationService(configurationServiceFake);
61+
environment = new SystemSetupEnvironment("", configurationServiceFake);
5962

6063
setupImpexDataImporterForTesting(environment);
6164
addEnvironmentConfiguration(false, false, false);
6265

63-
ReliableSystemSetupExecutor executor = new ReliableSystemSetupExecutor();
66+
ReliableSystemSetupExecutor executor = new ReliableSystemSetupExecutor(
67+
validationService,
68+
elementaryDataImporter,
69+
essentialDataImporter,
70+
releasePatchesImporter,
71+
Arrays.asList(sampleDataImporter, testDataImporter, releasePatchReRunImporter));
6472
executor.setApplicationContext(applicationContext);
65-
executor.setValidationService(validationService);
66-
executor.setElementaryDataImporter(elementaryDataImporter);
67-
executor.setEssentialDataImporter(essentialDataImporter);
68-
executor.setReleasePatchesImporter(releasePatchesImporter);
69-
executor.setProjectDataImporters(Arrays.asList(sampleDataImporter, testDataImporter, releasePatchReRunImporter));
7073

7174
systemSetup = new ToolkitSystemSetup(executor, true);
7275
}
7376

77+
@After
78+
public void removeTempFile() throws Exception {
79+
tempFile.delete();
80+
}
81+
7482
@Test
7583
public void whenInit_verifyValidationEngineIsReloaded() {
7684
addEnvironmentConfiguration(false, false, false);

0 commit comments

Comments
 (0)