diff --git a/.classpath b/.classpath
deleted file mode 100644
index d0d181b1997f15d5467b3f2a709db9d0a5f55a95..0000000000000000000000000000000000000000
--- a/.classpath
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="src" path="test"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.fx.ide.jdt.core.JAVAFX_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
-	<classpathentry kind="lib" path="lib/proj4j-0.1.0.jar" sourcepath="lib/proj4j-0.1.0-sources.jar"/>
-	<classpathentry kind="lib" path="lib/citygml4j-2.10.2.jar" sourcepath="lib/citygml4j-2.10.2.zip"/>
-	<classpathentry kind="lib" path="lib/vtd-xml_2_13_1.jar"/>
-	<classpathentry kind="lib" path="lib/jts-core-1.16.1.jar" sourcepath="lib/jts-core-1.16.1-sources.jar"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/.gitignore b/.gitignore
index f2ac2a5e99e372d50026d34a08b1ac1e56d6442c..f190e4bc19841cf1aa289fc09f5b260ea70f0b82 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,274 @@
+
+# Created by https://www.gitignore.io/api/java,maven,macos,linux,eclipse,windows,netbeans,intellij
+# Edit at https://www.gitignore.io/?templates=java,maven,macos,linux,eclipse,windows,netbeans,intellij
+
+
+# User specific
+.sonarlint/
+Servers/
+
+### Eclipse ###
+
+.metadata
 bin/
-/tmpdeploy/
-/SimStadtTestReports/
+tmp/
+*.tmp
+*.bak
+*.swp
+*~.nib
+local.properties
+.settings/
+.loadpath
+.recommenders
+
+# External tool builders
+.externalToolBuilders/
+
+# Locally stored "Eclipse launch configurations"
+*.launch
+
+# PyDev specific (Python IDE for Eclipse)
+*.pydevproject
+
+# CDT-specific (C/C++ Development Tooling)
+.cproject
+
+# CDT- autotools
+.autotools
+
+# Java annotation processor (APT)
+.factorypath
+
+# PDT-specific (PHP Development Tools)
+.buildpath
+
+# sbteclipse plugin
+.target
+
+# Tern plugin
+.tern-project
+
+# TeXlipse plugin
+.texlipse
+
+# STS (Spring Tool Suite)
+.springBeans
+
+# Code Recommenders
+.recommenders/
+
+# Annotation Processing
+.apt_generated/
+
+# Scala IDE specific (Scala & Java development for Eclipse)
+.cache-main
+.scala_dependencies
+.worksheet
+
+### Eclipse Patch ###
+# Eclipse Core
+.project
+
+# JDT-specific (Eclipse Java Development Tools)
+.classpath
+
+# Annotation Processing
+.apt_generated
+
+.sts4-cache/
+
+### Intellij ###
+# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
+# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
+
+# User-specific stuff
+.idea/**/workspace.xml
+.idea/**/tasks.xml
+.idea/**/usage.statistics.xml
+.idea/**/dictionaries
+.idea/**/shelf
+
+# Generated files
+.idea/**/contentModel.xml
+
+# Sensitive or high-churn files
+.idea/**/dataSources/
+.idea/**/dataSources.ids
+.idea/**/dataSources.local.xml
+.idea/**/sqlDataSources.xml
+.idea/**/dynamic.xml
+.idea/**/uiDesigner.xml
+.idea/**/dbnavigator.xml
+
+# Gradle
+.idea/**/gradle.xml
+.idea/**/libraries
+
+# Gradle and Maven with auto-import
+# When using Gradle or Maven with auto-import, you should exclude module files,
+# since they will be recreated, and may cause churn.  Uncomment if using
+# auto-import.
+# .idea/modules.xml
+# .idea/*.iml
+# .idea/modules
+
+# CMake
+cmake-build-*/
+
+# Mongo Explorer plugin
+.idea/**/mongoSettings.xml
+
+# File-based project format
+*.iws
+
+# IntelliJ
+out/
+
+# mpeltonen/sbt-idea plugin
+.idea_modules/
+
+# JIRA plugin
+atlassian-ide-plugin.xml
+
+# Cursive Clojure plugin
+.idea/replstate.xml
+
+# Crashlytics plugin (for Android Studio and IntelliJ)
+com_crashlytics_export_strings.xml
+crashlytics.properties
+crashlytics-build.properties
+fabric.properties
+
+# Editor-based Rest Client
+.idea/httpRequests
+
+# Android studio 3.1+ serialized cache file
+.idea/caches/build_file_checksums.ser
+
+### Intellij Patch ###
+# Comment Reason: https://github.com/joeblau/gitignore.io/issues/186#issuecomment-215987721
+
+# *.iml
+# modules.xml
+# .idea/misc.xml
+# *.ipr
+
+# Sonarlint plugin
+.idea/sonarlint
+
+### Java ###
+# Compiled class file
+*.class
+
+# Log file
+*.log
+
+# BlueJ files
+*.ctxt
+
+# Mobile Tools for Java (J2ME)
+.mtj.tmp/
+
+# Package Files #
+*.jar
+*.war
+*.nar
+*.ear
+*.zip
+*.tar.gz
+*.rar
+
+# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
+hs_err_pid*
+
+### Linux ###
+*~
+
+# temporary files which can be created if a process still has a handle open of a deleted file
+.fuse_hidden*
+
+# KDE directory preferences
+.directory
+
+# Linux trash folder which might appear on any partition or disk
+.Trash-*
+
+# .nfs files are created when an open file is removed but is still being accessed
+.nfs*
+
+### macOS ###
+# General
+.DS_Store
+.AppleDouble
+.LSOverride
+
+# Icon must end with two \r
+Icon
+
+# Thumbnails
+._*
+
+# Files that might appear in the root of a volume
+.DocumentRevisions-V100
+.fseventsd
+.Spotlight-V100
+.TemporaryItems
+.Trashes
+.VolumeIcon.icns
+.com.apple.timemachine.donotpresent
+
+# Directories potentially created on remote AFP share
+.AppleDB
+.AppleDesktop
+Network Trash Folder
+Temporary Items
+.apdisk
+
+### Maven ###
+target/
+pom.xml.tag
+pom.xml.releaseBackup
+pom.xml.versionsBackup
+pom.xml.next
+release.properties
+dependency-reduced-pom.xml
+buildNumber.properties
+.mvn/timing.properties
+.mvn/wrapper/maven-wrapper.jar
+
+### NetBeans ###
+**/nbproject/private/
+**/nbproject/Makefile-*.mk
+**/nbproject/Package-*.bash
+build/
+nbbuild/
+dist/
+nbdist/
+.nb-gradle/
+
+### Windows ###
+# Windows thumbnail cache files
+Thumbs.db
+ehthumbs.db
+ehthumbs_vista.db
+
+# Dump file
+*.stackdump
+
+# Folder config file
+[Dd]esktop.ini
+
+# Recycle Bin used on file shares
+$RECYCLE.BIN/
+
+# Windows Installer files
+*.cab
+*.msi
+*.msix
+*.msm
+*.msp
+
+# Windows shortcuts
+*.lnk
+
+# End of https://www.gitignore.io/api/java,maven,macos,linux,eclipse,windows,netbeans,intellij
diff --git a/.project b/.project
deleted file mode 100644
index 9d4bfc827939097d32c1c8326f4765c1f2882c67..0000000000000000000000000000000000000000
--- a/.project
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>RegionChooser</name>
-	<comment>Extracts polygon-shaped regions from Citygml files.</comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.xtext.ui.shared.xtextBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/build.fxbuild b/build.fxbuild
deleted file mode 100644
index 9b69c992d17cd0293cd718fadaf348ec7f5798be..0000000000000000000000000000000000000000
--- a/build.fxbuild
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="ASCII"?>
-<anttasks:AntTask xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:anttasks="http://org.eclipse.fx.ide.jdt/1.0" buildDirectory="${project}/build">
-  <deploy>
-    <application name="RegionChooser"/>
-    <info/>
-  </deploy>
-  <signjar/>
-</anttasks:AntTask>
diff --git a/lib/citygml4j-2.10.2.jar b/lib/citygml4j-2.10.2.jar
deleted file mode 100644
index 6b4f6927f41af7ee39f97c76cc951d75c55035ba..0000000000000000000000000000000000000000
Binary files a/lib/citygml4j-2.10.2.jar and /dev/null differ
diff --git a/lib/citygml4j-2.10.2.zip b/lib/citygml4j-2.10.2.zip
deleted file mode 100644
index de673e9bf4c61b90fb2a9f8475b30abd6cf39488..0000000000000000000000000000000000000000
Binary files a/lib/citygml4j-2.10.2.zip and /dev/null differ
diff --git a/lib/jts-core-1.16.1-sources.jar b/lib/jts-core-1.16.1-sources.jar
deleted file mode 100644
index f062b1ce4e0fedccc3277994cc9692d46c5bdf14..0000000000000000000000000000000000000000
Binary files a/lib/jts-core-1.16.1-sources.jar and /dev/null differ
diff --git a/lib/jts-core-1.16.1.jar b/lib/jts-core-1.16.1.jar
deleted file mode 100644
index e6e7487cf474d5729171d3f2a2312db845152873..0000000000000000000000000000000000000000
Binary files a/lib/jts-core-1.16.1.jar and /dev/null differ
diff --git a/lib/proj4j-0.1.0-sources.jar b/lib/proj4j-0.1.0-sources.jar
deleted file mode 100644
index 311d86f27db3caa518e5f69456ec8c5093f07f8b..0000000000000000000000000000000000000000
Binary files a/lib/proj4j-0.1.0-sources.jar and /dev/null differ
diff --git a/lib/proj4j-0.1.0.jar b/lib/proj4j-0.1.0.jar
deleted file mode 100644
index 941c3788acb791b96d167508511c742d01b23c31..0000000000000000000000000000000000000000
Binary files a/lib/proj4j-0.1.0.jar and /dev/null differ
diff --git a/lib/test/hamcrest-core-1.3.jar b/lib/test/hamcrest-core-1.3.jar
deleted file mode 100644
index 9d5fe16e3dd37ebe79a36f61f5d0e1a69a653a8a..0000000000000000000000000000000000000000
Binary files a/lib/test/hamcrest-core-1.3.jar and /dev/null differ
diff --git a/lib/test/jacocoant.jar b/lib/test/jacocoant.jar
deleted file mode 100644
index e6c0d786172a99832381bc1e876ec0b0cc4e5d8b..0000000000000000000000000000000000000000
Binary files a/lib/test/jacocoant.jar and /dev/null differ
diff --git a/lib/test/junit.jar b/lib/test/junit.jar
deleted file mode 100644
index 3a7fc266c3e32283a2b21fe12166ebdcc33a1da1..0000000000000000000000000000000000000000
Binary files a/lib/test/junit.jar and /dev/null differ
diff --git a/lib/vtd-xml_2_13_1.jar b/lib/vtd-xml_2_13_1.jar
deleted file mode 100644
index 1e021e5f680589442fc8a3bc478b7049c6f369d4..0000000000000000000000000000000000000000
Binary files a/lib/vtd-xml_2_13_1.jar and /dev/null differ
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000000000000000000000000000000000000..da25220c32ac38e1c071ce65f26b90705fac7651
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,107 @@
+<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<groupId>eu.simstadt</groupId>
+	<artifactId>RegionChooser</artifactId>
+	<version>1.0.0-SNAPSHOT</version>
+	<properties>
+		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+	</properties>
+	<dependencies>
+		<!-- https://mvnrepository.com/artifact/org.citygml4j/citygml4j -->
+		<dependency>
+			<groupId>org.citygml4j</groupId>
+			<artifactId>citygml4j</artifactId>
+			<version>2.10.3</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/junit/junit -->
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>4.12</version>
+			<scope>test</scope>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.osgeo/proj4j -->
+		<dependency>
+			<groupId>org.osgeo</groupId>
+			<artifactId>proj4j</artifactId>
+			<version>0.1.0</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/org.locationtech.jts/jts-core -->
+		<dependency>
+			<groupId>org.locationtech.jts</groupId>
+			<artifactId>jts-core</artifactId>
+			<version>1.16.1</version>
+		</dependency>
+		<!-- https://mvnrepository.com/artifact/com.ximpleware/vtd-xml -->
+		<dependency>
+			<groupId>com.ximpleware</groupId>
+			<artifactId>vtd-xml</artifactId>
+			<version>2.13.4</version>
+		</dependency>
+	</dependencies>
+	<build>
+		<plugins>
+			<plugin>
+				<artifactId>maven-compiler-plugin</artifactId>
+				<version>3.8.0</version>
+				<configuration>
+					<source>1.8</source>
+					<target>1.8</target>
+				</configuration>
+			</plugin>
+			<plugin>
+				<artifactId>maven-surefire-plugin</artifactId>
+				<version>2.22.2</version>
+				<configuration>
+					<testFailureIgnore>true</testFailureIgnore>
+				</configuration>
+				<executions>
+					<execution>
+						<id>default-test</id>
+						<phase>test</phase>
+						<goals>
+							<goal>test</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+				<version>0.8.2</version>
+				<executions>
+					<execution>
+						<id>default-prepare-agent</id>
+						<goals>
+							<goal>prepare-agent</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>default-report</id>
+						<phase>prepare-package</phase>
+						<goals>
+							<goal>report</goal>
+						</goals>
+					</execution>
+					<execution>
+						<id>default-check</id>
+						<goals>
+							<goal>check</goal>
+						</goals>
+					</execution>
+
+					<!-- attached to Maven test phase -->
+					<execution>
+						<id>report</id>
+						<phase>test</phase>
+						<goals>
+							<goal>report</goal>
+						</goals>
+					</execution>
+				</executions>
+			</plugin>
+		</plugins>
+	</build>
+</project>
\ No newline at end of file
diff --git a/src/eu/simstadt/geo/GeoUtils.java b/src/main/java/eu/simstadt/geo/GeoUtils.java
similarity index 100%
rename from src/eu/simstadt/geo/GeoUtils.java
rename to src/main/java/eu/simstadt/geo/GeoUtils.java
diff --git a/src/eu/simstadt/geo/fast_xml_parser/BuildingXmlNode.java b/src/main/java/eu/simstadt/geo/fast_xml_parser/BuildingXmlNode.java
similarity index 100%
rename from src/eu/simstadt/geo/fast_xml_parser/BuildingXmlNode.java
rename to src/main/java/eu/simstadt/geo/fast_xml_parser/BuildingXmlNode.java
diff --git a/src/eu/simstadt/geo/fast_xml_parser/CityGmlIterator.java b/src/main/java/eu/simstadt/geo/fast_xml_parser/CityGmlIterator.java
similarity index 100%
rename from src/eu/simstadt/geo/fast_xml_parser/CityGmlIterator.java
rename to src/main/java/eu/simstadt/geo/fast_xml_parser/CityGmlIterator.java
diff --git a/src/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculator.java b/src/main/java/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculator.java
similarity index 100%
rename from src/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculator.java
rename to src/main/java/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculator.java
diff --git a/src/eu/simstadt/regionchooser/RegionChooserBrowser.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
similarity index 100%
rename from src/eu/simstadt/regionchooser/RegionChooserBrowser.java
rename to src/main/java/eu/simstadt/regionchooser/RegionChooserBrowser.java
diff --git a/src/eu/simstadt/regionchooser/RegionChooserFX.java b/src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java
similarity index 100%
rename from src/eu/simstadt/regionchooser/RegionChooserFX.java
rename to src/main/java/eu/simstadt/regionchooser/RegionChooserFX.java
diff --git a/src/eu/simstadt/regionchooser/RegionExtractor.java b/src/main/java/eu/simstadt/regionchooser/RegionExtractor.java
similarity index 100%
rename from src/eu/simstadt/regionchooser/RegionExtractor.java
rename to src/main/java/eu/simstadt/regionchooser/RegionExtractor.java
diff --git a/src/eu/simstadt/regionchooser/website/data/citygml_hulls.kml b/src/main/resources/eu/simstadt/regionchooser/website/data/citygml_hulls.kml
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/data/citygml_hulls.kml
rename to src/main/resources/eu/simstadt/regionchooser/website/data/citygml_hulls.kml
diff --git a/src/eu/simstadt/regionchooser/website/index.html b/src/main/resources/eu/simstadt/regionchooser/website/index.html
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/index.html
rename to src/main/resources/eu/simstadt/regionchooser/website/index.html
diff --git a/src/eu/simstadt/regionchooser/website/script/firebug-lite-compressed.js b/src/main/resources/eu/simstadt/regionchooser/website/script/firebug-lite-compressed.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/firebug-lite-compressed.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/firebug-lite-compressed.js
diff --git a/src/eu/simstadt/regionchooser/website/script/jquery-1.4.2.min.js b/src/main/resources/eu/simstadt/regionchooser/website/script/jquery-1.4.2.min.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/jquery-1.4.2.min.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/jquery-1.4.2.min.js
diff --git a/src/eu/simstadt/regionchooser/website/script/ol.js b/src/main/resources/eu/simstadt/regionchooser/website/script/ol.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/ol.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/ol.js
diff --git a/src/eu/simstadt/regionchooser/website/script/proj4.js b/src/main/resources/eu/simstadt/regionchooser/website/script/proj4.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/proj4.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/proj4.js
diff --git a/src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js b/src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/simstadt_openlayers.js
diff --git a/src/eu/simstadt/regionchooser/website/script/turf.js b/src/main/resources/eu/simstadt/regionchooser/website/script/turf.js
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/script/turf.js
rename to src/main/resources/eu/simstadt/regionchooser/website/script/turf.js
diff --git a/src/eu/simstadt/regionchooser/website/style/ol.css b/src/main/resources/eu/simstadt/regionchooser/website/style/ol.css
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/style/ol.css
rename to src/main/resources/eu/simstadt/regionchooser/website/style/ol.css
diff --git a/src/eu/simstadt/regionchooser/website/style/style.css b/src/main/resources/eu/simstadt/regionchooser/website/style/style.css
similarity index 100%
rename from src/eu/simstadt/regionchooser/website/style/style.css
rename to src/main/resources/eu/simstadt/regionchooser/website/style/style.css
diff --git a/test/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java b/src/test/java/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java
similarity index 98%
rename from test/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java
rename to src/test/java/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java
index 05b216c134bf97a1d2dc6916f2a3122b9d6e7774..f9b7f4cf9cf0e6491d30f5152c9ec7b3cad7bf56 100644
--- a/test/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java
+++ b/src/test/java/eu/simstadt/geo/fast_xml_parser/CitygmlParserTests.java
@@ -11,7 +11,7 @@
 
 public class CitygmlParserTests
 {
-	private static final String REGION_CHOOSER_TESTDATA = "../RegionChooser/test/testdata";
+	private static final String REGION_CHOOSER_TESTDATA = "../RegionChooser/src/test/resources/testdata";
 	private static final String COORDINATES_SHOULD_BE_PLAUSIBLE = "Min/Max Coordinates should be plausible";
 	private static final String COORDINATE_SHOULD_BE_A_DOUBLE = "Coordinate should be a double";
 
diff --git a/test/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java b/src/test/java/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java
similarity index 99%
rename from test/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java
rename to src/test/java/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java
index f6c69594a32df24aaa5591b9cb665bdee319fee5..7f79b194a9e14e6a1cab14fee49828c3936d6459 100644
--- a/test/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java
+++ b/src/test/java/eu/simstadt/geo/fast_xml_parser/ConvexHullCalculatorTests.java
@@ -18,7 +18,7 @@
 public class ConvexHullCalculatorTests
 {
 	private static final GeometryFactory gf = new GeometryFactory();
-	private static final Path repository = Paths.get("../RegionChooser/test/testdata");
+	private static final Path repository = Paths.get("../RegionChooser/src/test/resources/testdata");
 
 	@Test
 	public void testExtractConvexHullFromOneBuilding() throws IOException, XPathParseException {
diff --git a/test/eu/simstadt/regionchooser/RegionExtractorTests.java b/src/test/java/eu/simstadt/regionchooser/RegionExtractorTests.java
similarity index 99%
rename from test/eu/simstadt/regionchooser/RegionExtractorTests.java
rename to src/test/java/eu/simstadt/regionchooser/RegionExtractorTests.java
index 6fd5778b7ed06135b6db3d3062f718ada7493b5c..eb8922162f6753a9ca7d9160c86351202668d07a 100644
--- a/test/eu/simstadt/regionchooser/RegionExtractorTests.java
+++ b/src/test/java/eu/simstadt/regionchooser/RegionExtractorTests.java
@@ -18,7 +18,7 @@
 	private static final String CORE_CITY_MODEL_HEADER = "<core:CityModel";
 	private static final String CITY_MODEL_FOOTER = "</CityModel";
 	private static final String CORE_CITY_MODEL_FOOTER = "</core:CityModel";
-	private static final Path TEST_REPOSITORY = Paths.get("../RegionChooser/test/testdata/");
+	private static final Path TEST_REPOSITORY = Paths.get("../RegionChooser/src/test/resources/testdata/");
 
 	public static int countRegexMatches(String str, String subStr) {
 		Pattern pattern = Pattern.compile(subStr);
diff --git a/test/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java b/src/test/java/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java
similarity index 99%
rename from test/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java
rename to src/test/java/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java
index 7258315f9710286104028e6b31f9b1c382bb7558..2b11386448a6781d910f591da024a53276b1c3b7 100644
--- a/test/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java
+++ b/src/test/java/eu/simstadt/regionchooser/RegionExtractorWithDifferentInputTests.java
@@ -22,7 +22,7 @@
 {
 	private static final WKTReader WKT_READER = new WKTReader();
 	private static final WKTWriter WKT_WRITER = new WKTWriter();
-	private static final Path TEST_REPOSITORY = Paths.get("../RegionChooser/test/testdata/");
+	private static final Path TEST_REPOSITORY = Paths.get("../RegionChooser/src/test/resources/testdata/");
 
 	//NOTE: This test can be adapted to download a region which is too large for the server. Here with local coordinates
 	@Test
diff --git a/test/testdata/.gitignore b/src/test/resources/testdata/.gitignore
similarity index 100%
rename from test/testdata/.gitignore
rename to src/test/resources/testdata/.gitignore
diff --git a/test/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2.gml b/src/test/resources/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2.gml
similarity index 100%
rename from test/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2.gml
rename to src/test/resources/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2.gml
diff --git a/test/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2_1building.gml b/src/test/resources/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2_1building.gml
similarity index 100%
rename from test/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2_1building.gml
rename to src/test/resources/testdata/Gruenbuehl.proj/20140218_Gruenbuehl_LOD2_1building.gml
diff --git a/test/testdata/Gruenbuehl.proj/Gruenbuehl_LOD2_ALKIS_1010.gml b/src/test/resources/testdata/Gruenbuehl.proj/Gruenbuehl_LOD2_ALKIS_1010.gml
similarity index 100%
rename from test/testdata/Gruenbuehl.proj/Gruenbuehl_LOD2_ALKIS_1010.gml
rename to src/test/resources/testdata/Gruenbuehl.proj/Gruenbuehl_LOD2_ALKIS_1010.gml
diff --git a/test/testdata/Muenchen.proj/Munich_v_1_0_0.gml b/src/test/resources/testdata/Muenchen.proj/Munich_v_1_0_0.gml
similarity index 100%
rename from test/testdata/Muenchen.proj/Munich_v_1_0_0.gml
rename to src/test/resources/testdata/Muenchen.proj/Munich_v_1_0_0.gml
diff --git a/test/testdata/NewYork.proj/DA13_DA14_3D_Buildings_Port_Morris.gml b/src/test/resources/testdata/NewYork.proj/DA13_DA14_3D_Buildings_Port_Morris.gml
similarity index 100%
rename from test/testdata/NewYork.proj/DA13_DA14_3D_Buildings_Port_Morris.gml
rename to src/test/resources/testdata/NewYork.proj/DA13_DA14_3D_Buildings_Port_Morris.gml
diff --git a/test/testdata/NewYork.proj/FamilyCourt_LOD2_with_PLUTO_attributes.gml b/src/test/resources/testdata/NewYork.proj/FamilyCourt_LOD2_with_PLUTO_attributes.gml
similarity index 100%
rename from test/testdata/NewYork.proj/FamilyCourt_LOD2_with_PLUTO_attributes.gml
rename to src/test/resources/testdata/NewYork.proj/FamilyCourt_LOD2_with_PLUTO_attributes.gml
diff --git a/test/testdata/NewYork.proj/ManhattanSmall.gml b/src/test/resources/testdata/NewYork.proj/ManhattanSmall.gml
similarity index 100%
rename from test/testdata/NewYork.proj/ManhattanSmall.gml
rename to src/test/resources/testdata/NewYork.proj/ManhattanSmall.gml
diff --git a/test/testdata/NewYork.proj/broken_nyc_lod2.gml b/src/test/resources/testdata/NewYork.proj/broken_nyc_lod2.gml
similarity index 100%
rename from test/testdata/NewYork.proj/broken_nyc_lod2.gml
rename to src/test/resources/testdata/NewYork.proj/broken_nyc_lod2.gml
diff --git a/test/testdata/NewYork.proj/empty_model.gml b/src/test/resources/testdata/NewYork.proj/empty_model.gml
similarity index 100%
rename from test/testdata/NewYork.proj/empty_model.gml
rename to src/test/resources/testdata/NewYork.proj/empty_model.gml
diff --git a/test/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_buildings_and_trees.gml b/src/test/resources/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_buildings_and_trees.gml
similarity index 100%
rename from test/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_buildings_and_trees.gml
rename to src/test/resources/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_buildings_and_trees.gml
diff --git a/test/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_small.gml b/src/test/resources/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_small.gml
similarity index 100%
rename from test/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_small.gml
rename to src/test/resources/testdata/Stuttgart.proj/Stuttgart_LOD0_LOD1_small.gml
diff --git "a/test/testdata/Stuttgart.proj/St\303\266ckach_empty_buildings.gml" "b/src/test/resources/testdata/Stuttgart.proj/St\303\266ckach_empty_buildings.gml"
similarity index 100%
rename from "test/testdata/Stuttgart.proj/St\303\266ckach_empty_buildings.gml"
rename to "src/test/resources/testdata/Stuttgart.proj/St\303\266ckach_empty_buildings.gml"
diff --git "a/test/testdata/Stuttgart.proj/St\303\266ckach_\303\274berarbeitete GML-NoBuildingPart.gml" "b/src/test/resources/testdata/Stuttgart.proj/St\303\266ckach_\303\274berarbeitete GML-NoBuildingPart.gml"
similarity index 100%
rename from "test/testdata/Stuttgart.proj/St\303\266ckach_\303\274berarbeitete GML-NoBuildingPart.gml"
rename to "src/test/resources/testdata/Stuttgart.proj/St\303\266ckach_\303\274berarbeitete GML-NoBuildingPart.gml"