private Path download(Path target, URI location) throws Exception {
		HttpRequest request = HttpRequest.newBuilder()
		                                 .uri(location)
		                                 .GET()
		                                 .build();

		var client = HttpClient.newBuilder()
		                       .followRedirects(Redirect.ALWAYS)
		                       .build();

		String path = location.getPath();
		String lastSegment = path.substring(path.lastIndexOf('/') + 1);

		HttpResponse<Path> response = client.send(request,
		                                          BodyHandlers.ofFile(target.getParent().resolve(lastSegment),
														  CREATE, WRITE, TRUNCATE_EXISTING));
		return response.body();

	}
Depending on the location of the template downloads it or copies the file. If
it is a zip-archive it should be extracted. During the process no existing
files should be overwritten.

@param targetDir
@throws Exception
src/main/java/com/kodedu/service/TemplateService.java