Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
CityDoctor2
Commits
7ebb95c1
Commit
7ebb95c1
authored
May 17, 2023
by
Matthias Betz
Browse files
Merge branch 'dev'
parents
84d3169f
75c0e581
Pipeline
#7499
passed with stage
in 1 minute and 13 seconds
Changes
56
Pipelines
2
Hide whitespace changes
Inline
Side-by-side
CityDoctorParent/CityDoctorValidation/src/assembly/win/assembly.xml
0 → 100644
View file @
7ebb95c1
<assembly
xmlns=
"http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"
>
<id>
zip
</id>
<formats>
<format>
zip
</format>
</formats>
<includeBaseDirectory>
false
</includeBaseDirectory>
<dependencySets>
<dependencySet>
<outputDirectory>
app
</outputDirectory>
</dependencySet>
</dependencySets>
<fileSets>
<fileSet>
<directory>
${project.basedir}/src/assembly/win
</directory>
<outputDirectory>
/
</outputDirectory>
<includes>
<include>
start.bat
</include>
</includes>
<filtered>
true
</filtered>
</fileSet>
<fileSet>
<directory>
${project.basedir}/src/assembly/common
</directory>
<outputDirectory>
/
</outputDirectory>
<includes>
<include>
testConfigWithStreaming.yml
</include>
<include>
REKaiserwall.gml
</include>
<include>
checkForSolid.xml
</include>
</includes>
<filtered>
false
</filtered>
</fileSet>
<fileSet>
<directory>
${project.build.directory}/jre/jre-win/runtime/${win-jre}/
</directory>
<outputDirectory>
/runtime
</outputDirectory>
<includes>
<include>
**/*
</include>
</includes>
<filtered>
false
</filtered>
</fileSet>
</fileSets>
</assembly>
\ No newline at end of file
CityDoctorParent/CityDoctorValidation/src/assembly/win/start.bat
0 → 100644
View file @
7ebb95c1
"runtime/bin/java.exe"
-classpath
app
/
*;
plugin
/
*
de
.hft.stuttgart.citydoctor2.CityDoctorValidation
-in
REKaiserwall
.gml
-config
testConfigWithStreaming
.yml
-xmlReport
output
.xml
pause
\ No newline at end of file
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/CityDoctorValidation.java
View file @
7ebb95c1
...
...
@@ -176,7 +176,7 @@ public class CityDoctorValidation {
Checker
c
=
new
Checker
(
config
,
model
);
c
.
runChecks
(
xmlOutput
,
pdfOutput
,
null
);
if
(
outputFile
!=
null
)
{
model
.
saveAs
(
outputFile
);
model
.
saveAs
(
outputFile
,
true
);
}
}
}
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/Checker.java
View file @
7ebb95c1
...
...
@@ -38,18 +38,21 @@ import java.util.Set;
import
java.util.stream.Stream
;
import
javax.xml.XMLConstants
;
import
javax.xml.parsers.DocumentBuilderFactory
;
import
javax.xml.parsers.ParserConfigurationException
;
import
javax.xml.transform.Result
;
import
javax.xml.transform.Source
;
import
javax.xml.transform.Transformer
;
import
javax.xml.transform.TransformerException
;
import
javax.xml.transform.TransformerFactory
;
import
javax.xml.transform.URIResolver
;
import
javax.xml.transform.dom.DOMResult
;
import
javax.xml.transform.dom.DOMSource
;
import
javax.xml.transform.sax.SAXResult
;
import
javax.xml.transform.stream.StreamSource
;
import
org.apache.logging.log4j.LogManager
;
import
org.apache.logging.log4j.Logger
;
import
org.w3c.dom.Document
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeInvalidError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeMissingError
;
import
de.hft.stuttgart.citydoctor2.check.error.AttributeValueWrongError
;
import
de.hft.stuttgart.citydoctor2.check.error.SchematronError
;
...
...
@@ -84,15 +87,6 @@ import de.hft.stuttgart.quality.model.properties.RequirementProperty;
import
de.hft.stuttgart.quality.model.types.Checking
;
import
de.hft.stuttgart.quality.model.types.Parameter
;
import
de.hft.stuttgart.quality.model.types.ValidationPlan
;
import
net.sf.saxon.lib.ResourceResolverWrappingURIResolver
;
import
net.sf.saxon.s9api.DOMDestination
;
import
net.sf.saxon.s9api.Destination
;
import
net.sf.saxon.s9api.Processor
;
import
net.sf.saxon.s9api.SAXDestination
;
import
net.sf.saxon.s9api.SaxonApiException
;
import
net.sf.saxon.s9api.XsltCompiler
;
import
net.sf.saxon.s9api.XsltExecutable
;
import
net.sf.saxon.s9api.XsltTransformer
;
/**
* The main container class for checking. It contains the logic for validation,
...
...
@@ -233,9 +227,11 @@ public class Checker {
for
(
SchematronError
se
:
v
)
{
CheckError
err
;
if
(
AttributeMissingError
.
ID
.
getIdString
().
equals
(
se
.
getErrorIdString
()))
{
err
=
new
AttributeMissingError
(
co
,
se
.
getChildId
(),
se
.
getNameOfAttribute
()
,
se
.
isGeneric
()
);
err
=
new
AttributeMissingError
(
co
,
se
.
getChildId
(),
se
.
getNameOfAttribute
());
}
else
if
(
AttributeValueWrongError
.
ID
.
getIdString
().
equals
(
se
.
getErrorIdString
()))
{
err
=
new
AttributeValueWrongError
(
co
,
se
.
getChildId
(),
se
.
getNameOfAttribute
(),
se
.
isGeneric
());
err
=
new
AttributeValueWrongError
(
co
,
se
.
getChildId
(),
se
.
getNameOfAttribute
());
}
else
if
(
AttributeInvalidError
.
ID
.
getIdString
().
equals
(
se
.
getErrorIdString
()))
{
err
=
new
AttributeInvalidError
(
co
,
se
.
getChildId
(),
se
.
getNameOfAttribute
());
}
else
{
throw
new
IllegalStateException
(
"Unknown error ID was given in schematron file: "
+
se
.
getErrorIdString
());
...
...
@@ -316,7 +312,7 @@ public class Checker {
}
private
de
.
hft
.
stuttgart
.
quality
.
model
.
types
.
Filter
createFilter
()
{
var
filter
=
new
de
.
hft
.
stuttgart
.
quality
.
model
.
types
.
Filter
();
var
filter
=
new
de
.
hft
.
stuttgart
.
quality
.
model
.
types
.
Filter
();
handleInputFilter
(
filter
);
if
(
excludeFilters
!=
null
)
{
for
(
Filter
f
:
excludeFilters
)
{
...
...
@@ -364,11 +360,11 @@ public class Checker {
Checking
buildingChecking
=
new
Checking
();
buildingChecking
.
setFeatureType
(
TopLevelFeatureType
.
BUILDING
);
filter
.
getChecking
().
add
(
new
CheckingProperty
(
buildingChecking
));
Checking
bridgeChecking
=
new
Checking
();
bridgeChecking
.
setFeatureType
(
TopLevelFeatureType
.
BRIDGE
);
filter
.
getChecking
().
add
(
new
CheckingProperty
(
bridgeChecking
));
Checking
landChecking
=
new
Checking
();
landChecking
.
setFeatureType
(
TopLevelFeatureType
.
LAND
);
filter
.
getChecking
().
add
(
new
CheckingProperty
(
landChecking
));
...
...
@@ -443,54 +439,47 @@ public class Checker {
if
(
logger
.
isInfoEnabled
())
{
logger
.
info
(
Localization
.
getText
(
"Checker.schematronValidation"
));
}
Processor
processor
=
new
Processor
(
false
);
XsltCompiler
xsltCompiler
=
processor
.
newXsltCompiler
();
xsltCompiler
.
setResourceResolver
(
new
ResourceResolverWrappingURIResolver
(
new
URIResolver
()
{
@Override
public
Source
resolve
(
String
href
,
String
base
)
throws
TransformerException
{
return
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
href
));
}
}));
try
{
XsltExecutable
includeExecutable
=
xsltCompiler
.
compile
(
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_dsdl_include.xsl"
)));
XsltTransformer
includeTransformer
=
includeExecutable
.
load
();
includeTransformer
.
setSource
(
new
StreamSource
(
new
File
(
config
.
getSchematronFilePath
())));
XsltExecutable
expandExecutable
=
xsltCompiler
.
compile
(
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_abstract_expand.xsl"
)));
XsltTransformer
expandTransformer
=
expandExecutable
.
load
();
includeTransformer
.
setDestination
(
expandTransformer
);
XsltExecutable
xslt2Executable
=
xsltCompiler
.
compile
(
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_svrl_for_xslt2.xsl"
)));
XsltTransformer
xslt2Transformer
=
xslt2Executable
.
load
();
expandTransformer
.
setDestination
(
xslt2Transformer
);
DocumentBuilderFactory
factory
=
DocumentBuilderFactory
.
newInstance
();
factory
.
setAttribute
(
XMLConstants
.
ACCESS_EXTERNAL_DTD
,
""
);
factory
.
setAttribute
(
XMLConstants
.
ACCESS_EXTERNAL_SCHEMA
,
""
);
factory
.
setFeature
(
XMLConstants
.
FEATURE_SECURE_PROCESSING
,
true
);
Document
doc
=
factory
.
newDocumentBuilder
().
newDocument
();
DOMDestination
domDestination
=
new
DOMDestination
(
doc
);
xslt2Transformer
.
setDestination
(
domDestination
);
includeTransformer
.
transform
();
XsltExecutable
schematronExecutable
=
xsltCompiler
.
compile
(
new
DOMSource
(
doc
));
XsltTransformer
schematronTransformer
=
schematronExecutable
.
load
();
schematronTransformer
.
setSource
(
new
StreamSource
(
in
));
TransformerFactory
transformerFactory
=
TransformerFactory
.
newInstance
(
"net.sf.saxon.TransformerFactoryImpl"
,
Checker
.
class
.
getClassLoader
());
transformerFactory
.
setAttribute
(
XMLConstants
.
ACCESS_EXTERNAL_DTD
,
""
);
transformerFactory
.
setFeature
(
XMLConstants
.
FEATURE_SECURE_PROCESSING
,
true
);
transformerFactory
.
setURIResolver
(
new
URIResolver
()
{
@Override
public
Source
resolve
(
String
href
,
String
base
)
throws
TransformerException
{
return
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
href
));
}
});
Source
dsdlXslSource
=
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_dsdl_include.xsl"
));
Transformer
dsdlXslTransformer
=
transformerFactory
.
newTransformer
(
dsdlXslSource
);
DOMResult
dsdlXslResult
=
new
DOMResult
();
dsdlXslTransformer
.
transform
(
new
StreamSource
(
new
File
(
config
.
getSchematronFilePath
())),
dsdlXslResult
);
Source
abstractExpandXsl
=
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_abstract_expand.xsl"
));
Transformer
abstractExpandTransformer
=
transformerFactory
.
newTransformer
(
abstractExpandXsl
);
DOMResult
abstractExpandResult
=
new
DOMResult
();
abstractExpandTransformer
.
transform
(
new
DOMSource
(
dsdlXslResult
.
getNode
()),
abstractExpandResult
);
Source
svrlXslSource
=
new
StreamSource
(
Checker
.
class
.
getResourceAsStream
(
"iso_svrl_for_xslt2.xsl"
));
Transformer
svrlTransformer
=
transformerFactory
.
newTransformer
(
svrlXslSource
);
DOMResult
schematronXsltResult
=
new
DOMResult
();
svrlTransformer
.
transform
(
new
DOMSource
(
abstractExpandResult
.
getNode
()),
schematronXsltResult
);
Transformer
schematronTransformer
=
transformerFactory
.
newTransformer
(
new
DOMSource
(
schematronXsltResult
.
getNode
()));
Source
cityGmlSource
=
new
StreamSource
(
in
);
SvrlContentHandler
handler
=
new
SvrlContentHandler
();
Destination
dest
=
new
SAXDestination
(
handler
);
schematronTransformer
.
setDestination
(
dest
);
schematronTransformer
.
transform
();
if
(
logger
.
isInfoEnabled
())
{
logger
.
info
(
Localization
.
getText
(
"Checker.finishedSchematron"
));
}
Result
finalResult
=
new
SAXResult
(
handler
);
schematronTransformer
.
transform
(
cityGmlSource
,
finalResult
);
return
handler
;
}
catch
(
SaxonApiException
|
ParserConfiguration
Exception
e
)
{
}
catch
(
Transformer
Exception
e
)
{
logger
.
catching
(
e
);
}
}
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/check/StreamCityGmlConsumer.java
View file @
7ebb95c1
...
...
@@ -34,6 +34,7 @@ import org.apache.logging.log4j.Logger;
import
org.citygml4j.core.model.core.AbstractFeatureProperty
;
import
org.citygml4j.core.model.core.CityModel
;
import
org.citygml4j.core.util.geometry.GeometryFactory
;
import
org.xmlobjects.gml.model.base.Reference
;
import
de.hft.stuttgart.citydoctor2.check.error.SchematronError
;
import
de.hft.stuttgart.citydoctor2.checks.SvrlContentHandler
;
...
...
@@ -53,10 +54,10 @@ import de.hft.stuttgart.citydoctor2.utils.QualityADEUtils;
import
de.hft.stuttgart.quality.model.properties.ErrorProperty
;
import
de.hft.stuttgart.quality.model.properties.FeatureStatisticsProperty
;
import
de.hft.stuttgart.quality.model.properties.StatisticsProperty
;
import
de.hft.stuttgart.quality.model.properties.ValidationPlanProperty
;
import
de.hft.stuttgart.quality.model.types.FeatureStatistics
;
import
de.hft.stuttgart.quality.model.types.Statistics
;
import
de.hft.stuttgart.quality.model.types.Validation
;
import
de.hft.stuttgart.quality.model.types.ValidationPlan
;
public
class
StreamCityGmlConsumer
implements
CityGmlConsumer
{
...
...
@@ -180,7 +181,11 @@ public class StreamCityGmlConsumer implements CityGmlConsumer {
statistics
.
getErrors
().
add
(
new
ErrorProperty
(
stats
));
}
val
.
setStatistics
(
new
StatisticsProperty
(
statistics
));
val
.
setValidationPlan
(
new
ValidationPlanProperty
(
c
.
createValidationPlan
()));
ValidationPlan
validationPlan
=
c
.
createValidationPlan
();
validationPlan
.
setId
(
"CD_PLAN_"
+
UUID
.
randomUUID
().
toString
());
cm
.
getFeatureMembers
().
add
(
new
AbstractFeatureProperty
(
validationPlan
));
val
.
setValidationPlan
(
new
Reference
(
validationPlan
));
cm
.
getFeatureMembers
().
add
(
new
AbstractFeatureProperty
(
val
));
}
...
...
CityDoctorParent/CityDoctorValidation/src/main/java/de/hft/stuttgart/citydoctor2/checks/SvrlContentHandler.java
View file @
7ebb95c1
...
...
@@ -105,7 +105,7 @@ public class SvrlContentHandler implements ContentHandler {
if
(
nextIsTextContent
&&
"text"
.
equals
(
localName
))
{
String
text
=
buffer
.
toString
();
String
[]
split
=
text
.
split
(
"\\|\\|"
);
if
(
split
.
length
!=
5
)
{
if
(
split
.
length
!=
4
)
{
throw
new
IllegalStateException
(
"Schematron File is not formed according to specification for CityDoctor."
);
}
...
...
@@ -113,8 +113,7 @@ public class SvrlContentHandler implements ContentHandler {
String
childId
=
split
[
1
];
String
errorId
=
split
[
2
];
String
nameOfAttribute
=
split
[
3
];
boolean
generic
=
Boolean
.
parseBoolean
(
split
[
4
]);
SchematronError
err
=
new
SchematronError
(
errorId
,
gmlId
,
childId
,
nameOfAttribute
,
generic
);
SchematronError
err
=
new
SchematronError
(
errorId
,
gmlId
,
childId
,
nameOfAttribute
);
if
(
gmlId
==
null
||
gmlId
.
isEmpty
())
{
// general error
generalErrors
.
add
(
err
);
...
...
CityDoctorParent/CityDoctorValidation/src/main/resources/citydoctor_logo.ico
0 → 100644
View file @
7ebb95c1
4.19 KB
CityDoctorParent/CityDoctorValidation/src/test/resources/schematronTest.xml
View file @
7ebb95c1
...
...
@@ -5,13 +5,13 @@
<pattern>
<rule
context=
"//*:Building"
>
<assert
test=
"count(*:lod2Solid) = 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||lod1Solid
||false
</assert>
<assert
test=
"count(*:yearOfConstruction) >= 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||yearOfConstruction
||false
</assert>
<assert
test=
"count(*:function) = 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||function
||false
</assert>
<assert
test=
"*:doubleAttribute[@name = 'Volume'] > 0 and *:doubleAttribute[@name = 'Volume'] < 5000"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_WRONG_VALUE||volume
||true
</assert>
<assert
test=
"count(*:lod2Solid) = 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||lod1Solid
</assert>
<assert
test=
"count(*:yearOfConstruction) >= 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||yearOfConstruction
</assert>
<assert
test=
"count(*:function) = 1"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_MISSING||function
</assert>
<assert
test=
"*:doubleAttribute[@name = 'Volume'] > 0 and *:doubleAttribute[@name = 'Volume'] < 5000"
><value-of
select=
"@gml:id | @id"
/>
||||SE_ATTRIBUTE_WRONG_VALUE||volume
</assert>
</rule>
<rule
context=
"//*:Building//*:RoofSurface"
>
<assert
test=
"count(function) = 1"
><value-of
select=
"ancestor::*:Building/@*:id"
/>
||
<value-of
select=
"@gml:id | @id"
/>
||SE_ATTRIBUTE_MISSING||function
||false
</assert>
<assert
test=
"count(function) = 1"
><value-of
select=
"ancestor::*:Building/@*:id"
/>
||
<value-of
select=
"@gml:id | @id"
/>
||SE_ATTRIBUTE_MISSING||function
</assert>
</rule>
</pattern>
</schema>
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/0.1.3/_remote.repositories
deleted
100644 → 0
View file @
84d3169f
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#Fri Jun 11 11:29:09 CEST 2021
citygml4j-quality-ade-0.1.3.jar>=
citygml4j-quality-ade-0.1.3.pom>=
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/0.1.3/citygml4j-quality-ade-0.1.3.jar
deleted
100644 → 0
View file @
84d3169f
File deleted
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/0.1.3/citygml4j-quality-ade-0.1.3.pom
deleted
100644 → 0
View file @
84d3169f
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>de.hft.stuttgart</groupId>
<artifactId>citygml4j-quality-ade</artifactId>
<version>0.1.3</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.citygml4j/citygml4j -->
<dependency>
<groupId>org.citygml4j</groupId>
<artifactId>citygml4j</artifactId>
<version>2.10.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.7.0</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.1.4/citygml4j-quality-ade-3.1.4.jar
deleted
100644 → 0
View file @
84d3169f
File deleted
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.
1.4
/_remote.repositories
→
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.
2.0
/_remote.repositories
View file @
7ebb95c1
#NOTE: This is a Maven Resolver internal implementation file, its format can be changed without prior notice.
#
Tue Jul 12 12:41:10
CEST 202
2
citygml4j-quality-ade-3.
1.4
.jar>=
citygml4j-quality-ade-3.
1.4
.pom>=
#
Fri Mar 31 09:20:06
CEST 202
3
citygml4j-quality-ade-3.
2.0
.jar>=
citygml4j-quality-ade-3.
2.0
.pom>=
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.2.0/citygml4j-quality-ade-3.2.0.jar
0 → 100644
View file @
7ebb95c1
File added
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.
1.4
/citygml4j-quality-ade-3.
1.4
.pom
→
CityDoctorParent/non-maven-libs/de/hft/stuttgart/citygml4j-quality-ade/3.
2.0
/citygml4j-quality-ade-3.
2.0
.pom
View file @
7ebb95c1
...
...
@@ -4,12 +4,12 @@
<modelVersion>4.0.0</modelVersion>
<groupId>de.hft.stuttgart</groupId>
<artifactId>citygml4j-quality-ade</artifactId>
<version>3.
1.4
</version>
<version>3.
2.0
</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1
7
</maven.compiler.source>
<maven.compiler.target>1
7
</maven.compiler.target>
<maven.compiler.source>1
1
</maven.compiler.source>
<maven.compiler.target>1
1
</maven.compiler.target>
</properties>
<dependencies>
...
...
CityDoctorParent/pom.xml
View file @
7ebb95c1
...
...
@@ -2,7 +2,7 @@
<modelVersion>
4.0.0
</modelVersion>
<groupId>
de.hft.stuttgart
</groupId>
<artifactId>
CityDoctorParent
</artifactId>
<version>
3.1
2
.0
</version>
<version>
3.1
3
.0
</version>
<packaging>
pom
</packaging>
<name>
CityDoctorParent
</name>
...
...
@@ -10,6 +10,7 @@
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven.compiler.source>
17
</maven.compiler.source>
<maven.compiler.target>
17
</maven.compiler.target>
<log4j.version>
2.18.0
</log4j.version>
<revision>
${project.version}
</revision>
<nonMavenLibsPath>
${project.baseUri}../non-maven-libs
</nonMavenLibsPath>
</properties>
...
...
@@ -42,6 +43,22 @@
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-controls
</artifactId>
<version>
17.0.2
</version>
</dependency>
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-fxml
</artifactId>
<version>
17.0.2
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx-swing -->
<dependency>
<groupId>
org.openjfx
</groupId>
<artifactId>
javafx-swing
</artifactId>
<version>
17.0.2
</version>
</dependency>
<dependency>
<groupId>
de.hft.stuttgart
</groupId>
<artifactId>
CityDoctorModel
</artifactId>
...
...
@@ -81,8 +98,8 @@
<dependency>
<groupId>
net.sf.saxon
</groupId>
<artifactId>
Saxon-HE
</artifactId>
<version>
1
1.3
</version>
</dependency>
<version>
1
2.2
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core -->
<dependency>
<groupId>
org.hibernate
</groupId>
...
...
@@ -92,17 +109,17 @@
<dependency>
<groupId>
org.citygml4j
</groupId>
<artifactId>
citygml4j-core
</artifactId>
<version>
3.0.0
-rc.4
</version>
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
org.citygml4j
</groupId>
<artifactId>
citygml4j-xml
</artifactId>
<version>
3.0.0
-rc.4
</version>
<version>
3.0.0
</version>
</dependency>
<dependency>
<groupId>
de.hft.stuttgart
</groupId>
<artifactId>
citygml4j-quality-ade
</artifactId>
<version>
3.
1.4
</version>
<version>
3.
2.0
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.xmlgraphics/fop -->
<dependency>
...
...
@@ -144,13 +161,13 @@
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-api
</artifactId>
<version>
2.17.2
</version>
<version>
${log4j.version}
</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-core
</artifactId>
<version>
2.17.2
</version>
<version>
${log4j.version}
</version>
</dependency>
<dependency>
<groupId>
org.yaml
</groupId>
...
...
@@ -161,7 +178,7 @@
<dependency>
<groupId>
org.apache.logging.log4j
</groupId>
<artifactId>
log4j-slf4j18-impl
</artifactId>
<version>
2.17.2
</version>
<version>
${log4j.version}
</version>
</dependency>
<dependency>
<groupId>
org.locationtech.proj4j
</groupId>
...
...
Prev
1
2
3
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment