24
24
import com .networknt .schema .JsonSchemaFactory ;
25
25
import com .networknt .schema .SchemaValidatorsConfig ;
26
26
import com .networknt .schema .SpecVersionDetector ;
27
+ import com .networknt .schema .resource .MapSchemaMapper ;
27
28
import org .cyclonedx .generators .json .BomJsonGenerator ;
28
29
import org .cyclonedx .generators .xml .BomXmlGenerator ;
29
30
import org .xml .sax .SAXException ;
@@ -117,6 +118,8 @@ public JsonSchema getJsonSchema(CycloneDxSchema.Version schemaVersion, final Obj
117
118
{
118
119
final InputStream spdxInstream = getJsonSchemaAsStream (schemaVersion );
119
120
final SchemaValidatorsConfig config = new SchemaValidatorsConfig ();
121
+ config .setPreloadJsonSchema (false );
122
+
120
123
final Map <String , String > offlineMappings = new HashMap <>();
121
124
offlineMappings .put ("http://cyclonedx.org/schema/spdx.schema.json" ,
122
125
getClass ().getClassLoader ().getResource ("spdx.schema.json" ).toExternalForm ());
@@ -128,9 +131,13 @@ public JsonSchema getJsonSchema(CycloneDxSchema.Version schemaVersion, final Obj
128
131
getClass ().getClassLoader ().getResource ("bom-1.4.schema.json" ).toExternalForm ());
129
132
offlineMappings .put ("http://cyclonedx.org/schema/bom-1.5.schema.json" ,
130
133
getClass ().getClassLoader ().getResource ("bom-1.5.schema.json" ).toExternalForm ());
131
- config . setUriMappings ( offlineMappings );
134
+
132
135
JsonNode schemaNode = mapper .readTree (spdxInstream );
133
- JsonSchemaFactory factory = JsonSchemaFactory .getInstance (SpecVersionDetector .detect (schemaNode ));
136
+ final MapSchemaMapper offlineSchemaMapper = new MapSchemaMapper (offlineMappings );
137
+ JsonSchemaFactory factory = JsonSchemaFactory .builder (JsonSchemaFactory .getInstance (SpecVersionDetector .detect (schemaNode )))
138
+ .jsonMapper (mapper )
139
+ .schemaMappers (s -> s .add (offlineSchemaMapper ))
140
+ .build ();
134
141
return factory .getSchema (schemaNode , config );
135
142
}
136
143
0 commit comments