29
29
import com .fasterxml .jackson .databind .JsonNode ;
30
30
import com .fasterxml .jackson .databind .ObjectMapper ;
31
31
import com .networknt .schema .url .StandardURLFetcher ;
32
+ import com .networknt .schema .url .URLFactory ;
32
33
import com .networknt .schema .url .URLFetcher ;
33
34
34
35
public class JsonSchemaFactory {
@@ -41,7 +42,7 @@ public static class Builder {
41
42
private URLFetcher urlFetcher ;
42
43
private String defaultMetaSchemaURI ;
43
44
private Map <String , JsonMetaSchema > jsonMetaSchemas = new HashMap <String , JsonMetaSchema >();
44
- private Map <URL , URL > urlMap = new HashMap <URL , URL >();
45
+ private Map <String , String > urlMap = new HashMap <String , String >();
45
46
46
47
public Builder objectMapper (ObjectMapper objectMapper ) {
47
48
this .objectMapper = objectMapper ;
@@ -70,7 +71,7 @@ public Builder addMetaSchemas(Collection<? extends JsonMetaSchema> jsonMetaSchem
70
71
return this ;
71
72
}
72
73
73
- public Builder addUrlMappings (Map <URL , URL > map ) {
74
+ public Builder addUrlMappings (Map <String , String > map ) {
74
75
this .urlMap .putAll (map );
75
76
return this ;
76
77
}
@@ -91,9 +92,9 @@ public JsonSchemaFactory build() {
91
92
private final URLFetcher urlFetcher ;
92
93
private final String defaultMetaSchemaURI ;
93
94
private final Map <String , JsonMetaSchema > jsonMetaSchemas ;
94
- private final Map <URL , URL > urlMap ;
95
+ private final Map <String , String > urlMap ;
95
96
96
- private JsonSchemaFactory (ObjectMapper mapper , URLFetcher urlFetcher , String defaultMetaSchemaURI , Map <String , JsonMetaSchema > jsonMetaSchemas , Map <URL , URL > urlMap ) {
97
+ private JsonSchemaFactory (ObjectMapper mapper , URLFetcher urlFetcher , String defaultMetaSchemaURI , Map <String , JsonMetaSchema > jsonMetaSchemas , Map <String , String > urlMap ) {
97
98
if (mapper == null ) {
98
99
throw new IllegalArgumentException ("ObjectMapper must not be null" );
99
100
}
@@ -204,9 +205,9 @@ public JsonSchema getSchema(InputStream schemaStream) {
204
205
public JsonSchema getSchema (URL schemaURL , SchemaValidatorsConfig config ) {
205
206
try {
206
207
InputStream inputStream = null ;
207
- Map <URL , URL > map = (config != null ) ? config .getUrlMappings () : new HashMap <URL , URL >(urlMap );
208
+ Map <String , String > map = (config != null ) ? config .getUrlMappings () : new HashMap <String , String >(urlMap );
208
209
map .putAll (urlMap );
209
- URL mappedURL = map .getOrDefault (schemaURL , schemaURL );
210
+ URL mappedURL = URLFactory . toURL ( map .getOrDefault (schemaURL . toString () , schemaURL . toString ()) );
210
211
try {
211
212
inputStream = urlFetcher .fetch (mappedURL );
212
213
JsonNode schemaNode = mapper .readTree (inputStream );
0 commit comments