#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

48
pom.xml
View file

@ -2,12 +2,12 @@
<!-- License below -->
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<name>KoSIT XML Prüftool Implementierung</name>
<groupId>de.kosit</groupId>
<version>1.1.0-SNAPSHOT</version>
<artifactId>validationtool</artifactId>
<description>KoSIT XML Prüftool zur Prüfung von XML Dateien gegenüber definierten Szenarien.</description>
<developers>
@ -19,7 +19,7 @@
<organizationUrl>http://www.xoev.de</organizationUrl>
</developer>
<developer>
<id>renzo.kottmann</id>
<name>Renzo Kottmann</name>
<organization>KoSIT</organization>
@ -58,7 +58,7 @@
<url>file:${project.basedir}/libs</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
@ -89,7 +89,7 @@
<version>${version.slf4j}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
@ -130,9 +130,9 @@
<artifactId>packaged-test-scenarios</artifactId>
<version>1.0.0</version>
</dependency>
</dependencies>
<build>
<resources>
<resource>
@ -143,7 +143,7 @@
<filtering>true</filtering>
</resource>
</resources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
@ -175,7 +175,7 @@
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
@ -233,7 +233,7 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
@ -257,8 +257,8 @@
</execution>
</executions>
</plugin>
<plugin>
<!-- Integrate the /src/main/generated folder -->
<groupId>org.codehaus.mojo</groupId>
@ -275,7 +275,7 @@
<sources>
<source>src/generated/java</source>
</sources>
</configuration>
</execution>
</executions>
@ -310,7 +310,7 @@
</plugins>
</configuration>
</plugin>
<!-- Integrate code coverage -->
<plugin>
<groupId>org.jacoco</groupId>
@ -350,7 +350,7 @@
<argLine>-Dfile.encoding=UTF-8 ${jacocoArgumentsJUnit}</argLine>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
@ -364,7 +364,7 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
@ -373,7 +373,7 @@
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
@ -401,9 +401,9 @@
<argument>-r</argument>
<argument>${project.build.testOutputDirectory}/examples/repository</argument>
<argument>-D</argument>
</arguments>
</configuration>
</plugin>
<plugin>
@ -437,20 +437,20 @@
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<scm>
<connection>https://github.com/itplr-kosit/validationtool.git</connection>
<developerConnection>scm:git:https://github.com/itplr-kosit/validationtool.git</developerConnection>
<tag>v1.0.0</tag>
</scm>
</project>
<!--
~ Licensed to the Koordinierungsstelle für IT-Standards (KoSIT) under

View file

@ -26,6 +26,8 @@ import lombok.RequiredArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import de.kosit.validationtool.impl.RelativeUriResolver;
/**
* Zentrale Konfigration einer Prüf-Instanz.
*
@ -62,7 +64,7 @@ public class CheckConfiguration {
private URI createDefaultRepository() {
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 URI tmpBase = jarURI ? URI.create(base.toASCIIString().substring(4)) : base;
final URI result = tmpBase.resolve(href);

View file

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

View file

@ -37,7 +37,7 @@ import net.sf.saxon.s9api.XdmNode;
/**
* Testet die Document Parsing-Funktionalitäten.
*
*
* @author Andreas Penski
*/
public class DocumentParserTest {