#14 load from jar einfacher

This commit is contained in:
Andreas Penski 2019-06-28 13:58:09 +02:00
parent 165ce94be9
commit b4429bed89
5 changed files with 37 additions and 27 deletions

View file

@ -26,6 +26,8 @@ import lombok.RequiredArgsConstructor;
import lombok.Setter; import lombok.Setter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import de.kosit.validationtool.impl.RelativeUriResolver;
/** /**
* Zentrale Konfigration einer Prüf-Instanz. * Zentrale Konfigration einer Prüf-Instanz.
* *
@ -62,7 +64,7 @@ public class CheckConfiguration {
private URI createDefaultRepository() { private URI createDefaultRepository() {
log.info("Creating default scenario repository (alongside scenario definition)"); log.info("Creating default scenario repository (alongside scenario definition)");
return this.scenarioDefinition.resolve("."); return RelativeUriResolver.resolve(URI.create("."), this.scenarioDefinition);
} }
} }

View file

@ -62,7 +62,14 @@ public class RelativeUriResolver implements URIResolver, UnparsedTextURIResolver
} }
} }
static URI resolve(final URI href, final URI base) { /**
* Resolves a relative uri including uris within a jar file.
*
* @param href the uri to resolve
* @param base the base uri
* @return the resolved uri
*/
public static URI resolve(final URI href, final URI base) {
final boolean jarURI = isJarURI(base); final boolean jarURI = isJarURI(base);
final URI tmpBase = jarURI ? URI.create(base.toASCIIString().substring(4)) : base; final URI tmpBase = jarURI ? URI.create(base.toASCIIString().substring(4)) : base;
final URI result = tmpBase.resolve(href); final URI result = tmpBase.resolve(href);

View file

@ -89,6 +89,7 @@ public class ScenarioRepository {
} }
private static void checkVersion(final URI scenarioDefinition) { private static void checkVersion(final URI scenarioDefinition) {
final DocumentParseAction p = new DocumentParseAction();
try { try {
final Result<XdmNode, XMLSyntaxError> result = DocumentParseAction.parseDocument(InputFactory.read(scenarioDefinition.toURL())); final Result<XdmNode, XMLSyntaxError> result = DocumentParseAction.parseDocument(InputFactory.read(scenarioDefinition.toURL()));
if (result.isValid() && !isSupportedDocument(result.getObject())) { if (result.isValid() && !isSupportedDocument(result.getObject())) {