Skip to content

Commit 092aa9e

Browse files
committed
Wip
1 parent 325b2c4 commit 092aa9e

2 files changed

Lines changed: 41 additions & 6 deletions

File tree

datamodel/odata/odata-generator/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,11 @@
147147
<!-- required for code generation at runtime -->
148148
<scope>compile</scope>
149149
</dependency>
150+
<dependency>
151+
<groupId>commons-beanutils</groupId>
152+
<artifactId>commons-beanutils</artifactId>
153+
<version>1.10.1</version> <!-- Use latest stable version -->
154+
</dependency>
150155
<!-- scope "test" -->
151156
<dependency>
152157
<groupId>org.junit.jupiter</groupId>

datamodel/odata/odata-generator/src/main/java/com/sap/cloud/sdk/datamodel/odata/generator/ODataToVdmGenerator.java

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424

2525
import org.apache.commons.configuration2.Configuration;
2626
import org.apache.commons.configuration2.PropertiesConfiguration;
27+
import org.apache.commons.configuration2.builder.FileBasedConfigurationBuilder;
28+
import org.apache.commons.configuration2.builder.fluent.Parameters;
29+
import org.apache.commons.configuration2.ex.ConfigurationException;
2730
import org.apache.commons.io.FileUtils;
2831
import org.apache.commons.io.FilenameUtils;
2932
import org.apache.commons.lang3.StringUtils;
@@ -292,25 +295,45 @@ private void cleanDirectory( final File outputDir )
292295

293296
private PropertiesConfiguration loadPropertiesConfiguration( final File serviceMappingsFile )
294297
{
298+
FileBasedConfigurationBuilder<PropertiesConfiguration> configurationBuilder =
299+
loadPropertiesConfigurationBuilder(serviceMappingsFile);
295300
final PropertiesConfiguration serviceNameMappings;
301+
try {
302+
serviceNameMappings = configurationBuilder.getConfiguration();
303+
}
304+
catch( final ConfigurationException e ) {
305+
throw new ODataGeneratorReadException(e);
306+
}
307+
return serviceNameMappings;
308+
}
309+
310+
private FileBasedConfigurationBuilder<PropertiesConfiguration> loadPropertiesConfigurationBuilder(
311+
final File serviceMappingsFile )
312+
{
313+
final PropertiesConfiguration serviceNameMappings;
314+
FileBasedConfigurationBuilder<PropertiesConfiguration> configurationBuilder;
296315
try {
297316
if( serviceMappingsFile.exists() ) {
298-
serviceNameMappings = new PropertiesConfiguration(serviceMappingsFile);
317+
configurationBuilder =
318+
new FileBasedConfigurationBuilder<>(PropertiesConfiguration.class)
319+
.configure(new Parameters().fileBased().setFile(serviceMappingsFile));
299320
} else {
300-
serviceNameMappings = new PropertiesConfiguration();
321+
configurationBuilder = new FileBasedConfigurationBuilder<>(PropertiesConfiguration.class);
301322
}
323+
serviceNameMappings = configurationBuilder.getConfiguration();
302324
}
303325
catch( final ConfigurationException e ) {
304326
throw new ODataGeneratorReadException(e);
305327
}
306328

307329
sanitizeConfiguration(serviceNameMappings);
308330

309-
return serviceNameMappings;
331+
return configurationBuilder;
310332
}
311333

312334
private void sanitizeConfiguration( final Configuration configuration )
313335
{
336+
// configuration.key
314337
for( final Iterator<String> it = configuration.getKeys(); it.hasNext(); ) {
315338
final String key = it.next();
316339

@@ -330,20 +353,27 @@ private void sanitizeConfiguration( final Configuration configuration )
330353
private void storeConfiguration( final File serviceMappingsFile, final Iterable<Service> allODataServices )
331354
{
332355
ensureFileExists(serviceMappingsFile);
333-
final PropertiesConfiguration serviceNameMappings = loadPropertiesConfiguration(serviceMappingsFile);
356+
final var configurationBuilder = loadPropertiesConfigurationBuilder(serviceMappingsFile);
357+
final PropertiesConfiguration serviceNameMappings;
358+
try {
359+
serviceNameMappings = configurationBuilder.getConfiguration();
360+
}
361+
catch( final ConfigurationException e ) {
362+
throw new ODataGeneratorReadException(e);
363+
}
334364

335365
for( final Service oDataService : allODataServices ) {
336366
final String javaClassNameKey = oDataService.getName() + Service.SERVICE_MAPPINGS_CLASS_SUFFIX;
337367
serviceNameMappings.setProperty(javaClassNameKey, oDataService.getJavaClassName());
338368
serviceNameMappings.getLayout().setComment(javaClassNameKey, oDataService.getTitle());
339-
serviceNameMappings.getLayout().setBlancLinesBefore(javaClassNameKey, 1);
369+
serviceNameMappings.getLayout().setBlankLinesBefore(javaClassNameKey, 1);
340370

341371
final String javaPackageNameKey = oDataService.getName() + Service.SERVICE_MAPPINGS_PACKAGE_SUFFIX;
342372
serviceNameMappings.setProperty(javaPackageNameKey, oDataService.getJavaPackageName());
343373
}
344374

345375
try {
346-
serviceNameMappings.save();
376+
configurationBuilder.save();
347377
}
348378
catch( final ConfigurationException e ) {
349379
throw new ODataGeneratorWriteException(e);

0 commit comments

Comments
 (0)