Skip to content

Commit fe1460a

Browse files
committed
Fixes a bug where the ClasspathStrategy couldn't search for other files as the given path wasn't correct.
Fixes a bug where the sorting of URLs leaded to an exception because java.net.URL does not extend Comparable. Adds a custom comparator.
1 parent 4e667d7 commit fe1460a

File tree

3 files changed

+9
-14
lines changed

3 files changed

+9
-14
lines changed

core/sds-aspect-model-java-generator/src/test/java/io/openmanufacturing/sds/aspectmodel/java/StaticMetaModelJavaGeneratorTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ public void testCodeGeneration( final TestAspect testAspect ) {
6767
}
6868

6969
/**
70-
* Tests that code generation succeeds for all test models for the latest meta model version
71-
* @param testAspect the injected Aspect model
70+
* Tests that code generation succeeds for all test models, that have properties shared over two files, for the latest meta model version
71+
* @param testAspect the injected shared Aspect models
7272
*/
7373
@ParameterizedTest
7474
@EnumSource( value = TestSharedAspect.class )

core/sds-aspect-model-resolver/src/main/java/io/openmanufacturing/sds/aspectmodel/resolver/ClasspathStrategy.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import java.net.URL;
2020
import java.nio.charset.StandardCharsets;
2121
import java.util.Arrays;
22+
import java.util.Comparator;
2223
import java.util.stream.Stream;
2324

2425
import org.apache.commons.io.IOUtils;
@@ -86,7 +87,8 @@ protected URL resourceUrl( final String directory, final String filename ) {
8687
return getClass().getClassLoader().getResource( directory + "/" + filename );
8788
}
8889

89-
protected Stream<String> filesInDirectory( final String directory ) {
90+
protected Stream<String> filesInDirectory( String dir ) {
91+
final String directory = dir.startsWith( "/" ) ? dir : "/" + dir;
9092
try {
9193
final InputStream directoryUrl = getClass().getResourceAsStream( directory );
9294
if ( directoryUrl == null ) {
@@ -117,13 +119,13 @@ public Try<Model> apply( final AspectModelUrn aspectModelUrn ) {
117119
return filesInDirectory( directory )
118120
.filter( name -> name.endsWith( ".ttl" ) )
119121
.map( name -> resourceUrl( directory, name ) )
120-
.sorted()
122+
.sorted( Comparator.comparing( URL::getPath ) )
121123
.map( this::loadFromUrl )
122124
.filter( tryModel -> tryModel
123125
.map( model -> AspectModelResolver.containsDefinition( model, aspectModelUrn ) )
124126
.getOrElse( false ) )
125127
.findFirst()
126128
.orElse( Try.failure( new FileNotFoundException(
127-
"The AspectModel: " + aspectModelUrn.toString() + " could not be found in directory: " + directory ) ) );
129+
"The AspectModel: " + aspectModelUrn + " could not be found in directory: " + directory ) ) );
128130
}
129131
}

core/sds-test-resources/src/main/java/io/openmanufacturing/sds/test/TestResources.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,12 @@
1313

1414
package io.openmanufacturing.sds.test;
1515

16-
import java.io.File;
1716
import java.io.InputStream;
18-
import java.nio.file.Path;
19-
20-
import org.apache.commons.lang3.ClassLoaderUtils;
21-
import org.apache.jena.rdf.model.Resource;
2217

2318
import io.openmanufacturing.sds.aspectmetamodel.KnownVersion;
2419
import io.openmanufacturing.sds.aspectmodel.VersionNumber;
2520
import io.openmanufacturing.sds.aspectmodel.resolver.AspectModelResolver;
2621
import io.openmanufacturing.sds.aspectmodel.resolver.ClasspathStrategy;
27-
import io.openmanufacturing.sds.aspectmodel.resolver.FileSystemStrategy;
2822
import io.openmanufacturing.sds.aspectmodel.resolver.services.SdsAspectMetaModelResourceResolver;
2923
import io.openmanufacturing.sds.aspectmodel.resolver.services.TurtleLoader;
3024
import io.openmanufacturing.sds.aspectmodel.resolver.services.VersionedModel;
@@ -53,8 +47,7 @@ public static Try<VersionedModel> getModel( final TestModel model, final KnownVe
5347
}
5448

5549
public static Try<VersionedModel> getModel( final TestSharedModel model, final KnownVersion knownVersion ) {
56-
final String modelsRoot = "/valid/" + knownVersion.toString().toLowerCase();
57-
var s = TestSharedModel.class.getResource(modelsRoot +"/"+ TestSharedAspect.RESOURCE_PATH +"/"+ model.getName()+".ttl").getPath();
58-
return new AspectModelResolver().resolveAspectModel( new FileSystemStrategy( new File(s.substring(0, s.indexOf( TestSharedModel.RESOURCE_PATH ) )).toPath()), model.getUrn() );
50+
final String modelsRoot = "valid/" + knownVersion.toString().toLowerCase();
51+
return new AspectModelResolver().resolveAspectModel( new ClasspathStrategy( modelsRoot ), model.getUrn() );
5952
}
6053
}

0 commit comments

Comments
 (0)