diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 9333d4401a502a19da43fc98660bf1445aaeb4d1..6e31291a09c355fc54bf3d3a30d81ee1baff481a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -151,7 +151,7 @@ create-maven-build-image:
     entrypoint: [""]
   script:
 # see https://stackoverflow.com/questions/75442435/how-to-use-docker-build-secrets-with-kaniko
-  - mkdir -p /kaniko/run/secrets && cp $NVD_API_KEY_FILE /kaniko/run/secrets/nvdApiKey
+  - mkdir -p /kaniko/run/secrets && echo $NVD_API_KEY > /kaniko/run/secrets/NVD_API_KEY
   - /kaniko/executor
     --context "${CI_PROJECT_DIR}"
     --dockerfile "${CI_PROJECT_DIR}/gitlab/mvn-build-image.Dockerfile"
@@ -167,7 +167,7 @@ dependency-check:
   stage: build
   image: registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest
   script:
-  - export nvdApiKeyEnvironmentVariable=$(cat $NVD_API_KEY_FILE); mvn org.owasp:dependency-check-maven:aggregate -Ddependency-check.skip=false
+  - mvn org.owasp:dependency-check-maven:aggregate -Ddependency-check.skip=false
   artifacts:
     when: always
     paths:
diff --git a/README.md b/README.md
index 777affe1e5e2fc18280b218bfc7583de993f3494..e4db9bbc892e1b869966ca3148d6b03007ab677c 100644
--- a/README.md
+++ b/README.md
@@ -78,8 +78,9 @@ mvn clean install
 Bei der Verwendung vom OWASP-Dependency-Check Maven Plugin kann die Issue Datenbank deutlich schneller heruntergeladen werden, wenn einen [NVD API Key](https://nvd.nist.gov/developers/request-an-api-key) verwendet wird. Dieser kann über eine Umgebungsvariable gesetzt werden:
 
 ```
-export nvdApiKeyEnvironmentVariable=....
+export NVD_API_KEY=....
 ```
+
 #### Container Images erstellen
 
 Um Container Images aus dem Source Code auf Open CoDE zu bauen, sind folgende Anpassungen erforderlich. Die gebauten Container Images sind in der Container Registry verfügbar: https://gitlab.opencode.de/diplanung/ozgxplanung/container_registry/.
@@ -142,8 +143,8 @@ Das Image kann auch manuell gebaut und gepusht werden. Dafür ist ein [NVD API K
 ###### Docker Image lokal bauen
 
 ```
-export nvdApiKeyEnvironmentVariable=....
-docker build -t registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest -f gitlab/mvn-build-image.Dockerfile --secret id=nvdApiKey,env=nvdApiKeyEnvironmentVariable .
+export NVD_API_KEY=....
+docker build -t registry.opencode.de/diplanung/ozgxplanung/mvn-build-image:latest -f gitlab/mvn-build-image.Dockerfile --secret id=NVD_API_KEY .
 ```
 
 ###### GitLab personal access token erstellen
diff --git a/gitlab/mvn-build-image.Dockerfile b/gitlab/mvn-build-image.Dockerfile
index de66333500a2bcf096481d9ca68189dd255dbf93..329281c208feff7ba1aa54c5a39abaf57a078d4a 100644
--- a/gitlab/mvn-build-image.Dockerfile
+++ b/gitlab/mvn-build-image.Dockerfile
@@ -21,8 +21,8 @@ LABEL "org.opencontainers.image.created"="$BUILD_DATE" \
 
 RUN mkdir /tmp/ozgxplanung
 ADD . /tmp/ozgxplanung
-RUN --mount=type=secret,id=nvdApiKey cd /tmp/ozgxplanung \
+RUN --mount=type=secret,id=NVD_API_KEY cd /tmp/ozgxplanung \
 	&& mvn test -Pdocker --fail-never -Dtest=notExisting  -Ddependency-check.skip=true \
-	&& export nvdApiKeyEnvironmentVariable=$(cat $SECRETS_DIR/nvdApiKey); mvn org.owasp:dependency-check-maven:aggregate -Ddependency-check.skip=false -Dformats=JUNIT \
+	&& export NVD_API_KEY=$(cat $SECRETS_DIR/NVD_API_KEY); mvn org.owasp:dependency-check-maven:aggregate -Ddependency-check.skip=false -Dformats=JUNIT \
 	&& find $MAVEN_CONFIG/repository -name '*-SNAPSHOT' | xargs rm -rf \
 	&& rm -rf /tmp/ozgxplanung
\ No newline at end of file
diff --git a/jenkinsfiles/owasp-check.Jenkinsfile b/jenkinsfiles/owasp-check.Jenkinsfile
index 51f7aca5311560f074f1345c21b6e7f4bc16fa93..9d5b95f5819083c28dcd67066500d21c1284d66e 100644
--- a/jenkinsfiles/owasp-check.Jenkinsfile
+++ b/jenkinsfiles/owasp-check.Jenkinsfile
@@ -11,7 +11,7 @@ pipeline {
     stage('Build with owasp check') {
       steps{
         withMaven(mavenLocalRepo: '.repository', mavenSettingsConfig: 'mvn-empty-settings', options: [junitPublisher(healthScaleFactor: 1.0)], publisherStrategy: 'EXPLICIT') {
-		  withCredentials([string(credentialsId: 'nvdApiKey', variable: 'nvdApiKeyEnvironmentVariable')]) {
+		  withCredentials([string(credentialsId: 'nvdApiKey', variable: 'NVD_API_KEY')]) {
             sh 'mvn -B -C clean install -Ddependency-check.skip=false'
           }
         }
diff --git a/pom.xml b/pom.xml
index f66af63b6cad34add18864a3426e0617fef3c750..66a8e8d624c6555366a48553832d51f0ab3f5a71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -528,7 +528,7 @@
           <failBuildOnCVSS>10</failBuildOnCVSS>
           <knownExploitedEnabled>false</knownExploitedEnabled>
           <nvdValidForHours>24</nvdValidForHours>
-          <nvdApiKey>${env.nvdApiKeyEnvironmentVariable}</nvdApiKey>
+          <nvdApiKeyEnvironmentVariable>NVD_API_KEY</nvdApiKeyEnvironmentVariable>
         </configuration>
         <executions>
           <execution>
@@ -760,7 +760,7 @@
         <plugin>
           <groupId>io.fabric8</groupId>
           <artifactId>docker-maven-plugin</artifactId>
-          <version>0.43.4</version>
+          <version>0.44.0</version>
         </plugin>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
diff --git a/xplan-cli/src/main/java/de/latlon/xplanbox/cli/admin/config/SortdateUpdateContext.java b/xplan-cli/src/main/java/de/latlon/xplanbox/cli/admin/config/SortdateUpdateContext.java
index 286971ab36924ff379f8940a73f2974384e4a5fb..9b4f6e2276886c3d5f9f5d8cde0fa6c5a54eb9be 100644
--- a/xplan-cli/src/main/java/de/latlon/xplanbox/cli/admin/config/SortdateUpdateContext.java
+++ b/xplan-cli/src/main/java/de/latlon/xplanbox/cli/admin/config/SortdateUpdateContext.java
@@ -20,13 +20,19 @@
  */
 package de.latlon.xplanbox.cli.admin.config;
 
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
+
+import java.io.File;
+
 import de.latlon.xplan.commons.feature.SortPropertyReader;
+import de.latlon.xplan.manager.configuration.ConfigurationException;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
 import de.latlon.xplan.manager.database.ManagerWorkspaceWrapper;
 import de.latlon.xplan.manager.database.XPlanDao;
 import de.latlon.xplan.manager.database.XPlanDbAdapter;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.GeotiffRasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.XPlanRasterManager;
 import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.RasterStorage;
@@ -40,10 +46,7 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
-
-import java.io.File;
-
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
+import org.springframework.context.annotation.Profile;
 
 /**
  * Spring Application Context for initialising xplan-update-data-cli components.
@@ -52,7 +55,8 @@ import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_
  */
 @Configuration
 @ComponentScan({ "de.latlon.xplanbox.cli.admin.db", "de.latlon.xplanbox.cli.admin.sortdate" })
-@Import({ CommonContext.class, RasterStorageContext.class, AmazonS3RasterStorageContext.class, })
+@Import({ CommonContext.class, GeotiffRasterStorageContext.class, MapserverRasterStorageContext.class,
+		AmazonS3RasterStorageContext.class, })
 public class SortdateUpdateContext {
 
 	@Autowired
@@ -70,12 +74,13 @@ public class SortdateUpdateContext {
 	}
 
 	@Bean
+	@Profile("!mapserver")
 	public WmsWorkspaceWrapper wmsWorkspaceWrapper(
-			@Value("${xplanbox.workspace:#{environment.DEEGREE_WORKSPACE_ROOT}}") File workspaceRoot)
-			throws WorkspaceException {
+			@Value("${xplanbox.workspace:#{environment.DEEGREE_WORKSPACE_ROOT}}") File workspaceRoot,
+			ManagerConfiguration managerConfiguration) throws WorkspaceException, ConfigurationException {
 		DeegreeWorkspaceWrapper wmsWorkspace = new DeegreeWorkspaceWrapper(DEFAULT_XPLANSYN_WMS_WORKSPACE,
 				workspaceRoot);
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 	@Bean
diff --git a/xplan-cli/src/main/java/de/latlon/xplanbox/cli/manage/config/ManageContext.java b/xplan-cli/src/main/java/de/latlon/xplanbox/cli/manage/config/ManageContext.java
index 523ce95ed858c7c9d0e833955e747877108432dc..ecab0630bae536abfbe5c5f707a1cf703895ff9c 100644
--- a/xplan-cli/src/main/java/de/latlon/xplanbox/cli/manage/config/ManageContext.java
+++ b/xplan-cli/src/main/java/de/latlon/xplanbox/cli/manage/config/ManageContext.java
@@ -8,18 +8,32 @@
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
  */
 package de.latlon.xplanbox.cli.manage.config;
 
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLAN_MANAGER_WORKSPACE;
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.configuration.ConfigurationDirectoryPropertiesLoader;
 import de.latlon.xplan.commons.configuration.PropertiesLoader;
@@ -41,7 +55,6 @@ import de.latlon.xplan.manager.export.XPlanExporter;
 import de.latlon.xplan.manager.metadata.DataServiceCouplingException;
 import de.latlon.xplan.manager.metadata.MetadataCouplingHandler;
 import de.latlon.xplan.manager.storage.StorageCleanUpManager;
-import de.latlon.xplan.manager.storage.config.StorageCleanUpContext;
 import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
 import de.latlon.xplan.manager.synthesizer.XPlanSynthesizer;
 import de.latlon.xplan.manager.synthesizer.rules.SynRulesAccessor;
@@ -54,7 +67,8 @@ import de.latlon.xplan.manager.transaction.service.XPlanEditService;
 import de.latlon.xplan.manager.transaction.service.XPlanInsertService;
 import de.latlon.xplan.manager.web.shared.ConfigurationException;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.GeotiffRasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.XPlanRasterManager;
 import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
@@ -93,22 +107,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 import org.springframework.context.annotation.Lazy;
+import org.springframework.context.annotation.Profile;
 import org.springframework.core.io.ResourceLoader;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLAN_MANAGER_WORKSPACE;
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
-
 /**
  * Spring Application Context for initialising XPlanManagerAPI components.
  *
@@ -116,8 +117,8 @@ import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorksp
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
  */
 @Configuration
-@Import({ JpaContext.class, RasterStorageContext.class, AmazonS3RasterStorageContext.class,
-		DocumentStorageContext.class, StorageCleanUpContext.class })
+@Import({ JpaContext.class, GeotiffRasterStorageContext.class, MapserverRasterStorageContext.class,
+		AmazonS3RasterStorageContext.class, DocumentStorageContext.class })
 public class ManageContext {
 
 	private static final Logger LOG = LoggerFactory.getLogger(ManageContext.class);
@@ -205,12 +206,14 @@ public class ManageContext {
 	}
 
 	@Bean
+	@Profile("!mapserver")
 	public WmsWorkspaceWrapper wmsWorkspaceWrapper(
-			@Value("${xplanbox.workspace:#{environment.DEEGREE_WORKSPACE_ROOT}}") File workspaceRoot)
-			throws WorkspaceException {
+			@Value("${xplanbox.workspace:#{environment.DEEGREE_WORKSPACE_ROOT}}") File workspaceRoot,
+			ManagerConfiguration managerConfiguration)
+			throws WorkspaceException, de.latlon.xplan.manager.configuration.ConfigurationException {
 		DeegreeWorkspaceWrapper wmsWorkspace = new DeegreeWorkspaceWrapper(DEFAULT_XPLANSYN_WMS_WORKSPACE,
 				workspaceRoot);
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 	@Bean
@@ -226,13 +229,12 @@ public class ManageContext {
 
 	@Bean
 	public XPlanManager xPlanManager(XPlanManagerDao xPlanManagerDao, XPlanArchiveCreator archiveCreator,
-			ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			XPlanExporter xPlanExporter, XPlanRasterEvaluator xPlanRasterEvaluator,
-			XPlanRasterManager xPlanRasterManager, SortPropertyReader sortPropertyReader,
-			XPlanInsertManager xPlanInsertManager, XPlanEditManager xPlanEditManager,
-			XPlanDeleteManager xPlanDeleteManager) throws Exception {
-		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, wmsWorkspaceWrapper,
-				xPlanExporter, xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager,
+			ManagerConfiguration managerConfiguration, XPlanExporter xPlanExporter,
+			XPlanRasterEvaluator xPlanRasterEvaluator, XPlanRasterManager xPlanRasterManager,
+			SortPropertyReader sortPropertyReader, XPlanInsertManager xPlanInsertManager,
+			XPlanEditManager xPlanEditManager, XPlanDeleteManager xPlanDeleteManager) throws Exception {
+		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, xPlanExporter,
+				xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager,
 				xPlanEditManager, xPlanDeleteManager);
 	}
 
diff --git a/xplan-cli/src/main/resources/managerConfiguration.properties b/xplan-cli/src/main/resources/managerConfiguration.properties
index c703f89d6b8afba13c99ef71026efca579bef63a..1f3b8240cfc390e1d6309f46140d497c9e5b958e 100644
--- a/xplan-cli/src/main/resources/managerConfiguration.properties
+++ b/xplan-cli/src/main/resources/managerConfiguration.properties
@@ -22,8 +22,6 @@
 rasterConfigurationCrs=EPSG:25832
 rasterLayerMinScaleDenominator=0
 rasterLayerMaxScaleDenominator=50000
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=geotiff
 
 # workspace reloader configuration, workspaceReloadAction must be one of ALL (default), RELOAD, PLANWERKWMS
 # workspaceReloadUser and workspaceReloadPassword are deprecated! Use workspaceReloadApiKey instead.
diff --git a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/ValidationReportBuilder.java b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/ValidationReportBuilder.java
index 26ffe5f08e177b59f75696da68753ecad38f8052..a6eed0967abb269a8da35a08cdbcf5fe648f8033 100644
--- a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/ValidationReportBuilder.java
+++ b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/ValidationReportBuilder.java
@@ -71,6 +71,10 @@ public class ValidationReportBuilder {
 		return this;
 	}
 
+	/**
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
+	 */
+	@Deprecated
 	public ValidationReportBuilder wmsUrl(URI wmsUrl) {
 		this.wmsUrl = wmsUrl;
 		return this;
diff --git a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/v1/model/ValidationReport.java b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/v1/model/ValidationReport.java
index e7577ba9d601f66954ab31b00b0ebe1ff287d574..c866e368e6a0db455d3a20b649c80bd77ac35623 100644
--- a/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/v1/model/ValidationReport.java
+++ b/xplan-core/xplan-core-api/src/main/java/de/latlon/xplanbox/api/commons/v1/model/ValidationReport.java
@@ -237,18 +237,29 @@ public class ValidationReport {
 	}
 
 	/**
-	**/
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
+	 */
+	@Deprecated
 	public ValidationReport wmsUrl(URI wmsUrl) {
 		this.wmsUrl = wmsUrl;
 		return this;
 	}
 
-	@Schema(example = "https://xplanbox.lat-lon.de/xplan-validator-wms/services/wms?PLANWERK_MANAGERID=13")
+	/**
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
+	 */
+	@Deprecated
+	@Schema(example = "https://xplanbox.lat-lon.de/xplan-validator-wms/services/wms?PLANWERK_MANAGERID=13",
+			description = "deprecated: XPlanValidatorWMS will be removed in a future version", deprecated = true)
 	@JsonProperty("wmsUrl")
 	public URI getWmsUrl() {
 		return wmsUrl;
 	}
 
+	/**
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
+	 */
+	@Deprecated
 	public void setWmsUrl(URI wmsUrl) {
 		this.wmsUrl = wmsUrl;
 	}
diff --git a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/JobContext.java b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/JobContext.java
index 51b785a8a42e205ffc01f2500c9df51bd4addee8..6f0dfddd9c968e4bd7fbaf75ebfab939195c658c 100644
--- a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/JobContext.java
+++ b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/JobContext.java
@@ -32,9 +32,11 @@ import org.springframework.scheduling.quartz.SchedulerFactoryBean;
  * Spring configuration for Quartz scheduler and jobs.
  *
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Profile("validatorwmssql | validatorwmsmemory")
+@Deprecated
 public class JobContext {
 
 	public static final String DELETE_AFTER_KEY = "DELETE_AFTER_MINUTES";
diff --git a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/MemoryJobContext.java b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/MemoryJobContext.java
index 5da76aa262bce2f134c8e8c49b6131cd85fcf5e2..0e058ef0f45fe538eb431b12b3928d26498e522f 100644
--- a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/MemoryJobContext.java
+++ b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/MemoryJobContext.java
@@ -20,6 +20,11 @@
  */
 package de.latlon.xplan.job.validator.config;
 
+import static de.latlon.xplan.job.validator.config.JobContext.DELETE_AFTER_KEY;
+import static de.latlon.xplan.job.validator.config.JobContext.DELETE_INTERVAL_IN_SECONDS;
+import static de.latlon.xplan.job.validator.config.JobContext.IMPORT_INTERVAL_IN_SECONDS;
+import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
+
 import de.latlon.xplan.job.validator.memory.GmlDeleteJob;
 import de.latlon.xplan.job.validator.memory.GmlImportJob;
 import org.quartz.JobBuilder;
@@ -34,18 +39,15 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Profile;
 import org.springframework.scheduling.quartz.SchedulerFactoryBean;
 
-import static de.latlon.xplan.job.validator.config.JobContext.DELETE_AFTER_KEY;
-import static de.latlon.xplan.job.validator.config.JobContext.DELETE_INTERVAL_IN_SECONDS;
-import static de.latlon.xplan.job.validator.config.JobContext.IMPORT_INTERVAL_IN_SECONDS;
-import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
-
 /**
  * Spring configuration for Quartz scheduler and jobs.
  *
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Profile("validatorwmsmemory")
+@Deprecated
 public class MemoryJobContext {
 
 	@Bean
diff --git a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/SqlJobContext.java b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/SqlJobContext.java
index 0c36a907e8c85b8579c59f15fb6fc6c7960cbc36..b7eeec90f6ee554e30ff767d817f7312088df7fd 100644
--- a/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/SqlJobContext.java
+++ b/xplan-core/xplan-core-job/src/main/java/de/latlon/xplan/job/validator/config/SqlJobContext.java
@@ -44,9 +44,11 @@ import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
  * SQLFeatureStoreConfig.
  *
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Profile("validatorwmssql")
+@Deprecated
 public class SqlJobContext {
 
 	private static final Logger LOG = LoggerFactory.getLogger(SqlJobContext.class);
diff --git a/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/MemoryJobContextTest.java b/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/MemoryJobContextTest.java
index 7a2afafe135a44e9024a6597357e2016b228937b..45a7a39c11557a7d6a9ac29fffa71869fbace148 100644
--- a/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/MemoryJobContextTest.java
+++ b/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/MemoryJobContextTest.java
@@ -35,10 +35,12 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @ExtendWith(SpringExtension.class)
 @ContextConfiguration(classes = { JobContext.class, SqlJobContext.class, MemoryJobContext.class })
 @ActiveProfiles("validatorwmsmemory")
+@Deprecated
 class MemoryJobContextTest {
 
 	@Autowired
diff --git a/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/SqlJobContextTest.java b/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/SqlJobContextTest.java
index 8d89189771d93853a225b4255294ceb913f9b9c0..509ca449d32f0685648c5a07e75362867ff36f06 100644
--- a/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/SqlJobContextTest.java
+++ b/xplan-core/xplan-core-job/src/test/java/de/latlon/xplan/job/validator/config/SqlJobContextTest.java
@@ -35,10 +35,12 @@ import org.springframework.test.context.junit.jupiter.SpringExtension;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @ExtendWith(SpringExtension.class)
 @ContextConfiguration(classes = { JobContext.class, SqlJobContext.class, MemoryJobContext.class })
 @ActiveProfiles("validatorwmssql")
+@Deprecated
 public class SqlJobContextTest {
 
 	@Autowired
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/XPlanManager.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/XPlanManager.java
index 5e7e2a0bb2fb92e77411019a9c8a5e8bc579bb54..8b65e1d50563d0bb70d9f338e6e93e36ecaf54b1 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/XPlanManager.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/XPlanManager.java
@@ -20,21 +20,33 @@
  */
 package de.latlon.xplan.manager;
 
+import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveRechtsstand;
+import static de.latlon.xplan.manager.edit.ExternalReferenceUtils.createExternalRefAddedOrUpdated;
+import static de.latlon.xplan.manager.web.shared.PlanStatus.findByLegislationStatusCode;
+import static de.latlon.xplan.manager.web.shared.PlanStatus.valueOf;
+import static de.latlon.xplan.manager.web.shared.Rechtsstand.UNKNOWN_RECHTSSTAND;
+import static java.lang.Integer.parseInt;
+import static org.apache.commons.io.IOUtils.closeQuietly;
+
+import javax.xml.stream.XMLStreamException;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.EmptyStackException;
+import java.util.List;
+import java.util.stream.Collectors;
+
 import de.latlon.xplan.commons.XPlanType;
 import de.latlon.xplan.commons.XPlanVersion;
 import de.latlon.xplan.commons.archive.XPlanArchive;
 import de.latlon.xplan.commons.archive.XPlanArchiveContentAccess;
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.archive.XPlanPartArchive;
-import de.latlon.xplan.commons.feature.FeatureCollectionParseException;
-import de.latlon.xplan.commons.feature.SortPropertyReader;
-import de.latlon.xplan.commons.feature.XPlanFeatureCollection;
-import de.latlon.xplan.commons.feature.XPlanFeatureCollections;
-import de.latlon.xplan.commons.feature.XPlanGmlParserBuilder;
+import de.latlon.xplan.commons.feature.*;
 import de.latlon.xplan.commons.reference.ExternalReferenceInfo;
 import de.latlon.xplan.core.manager.db.model.Artefact;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
-import de.latlon.xplan.manager.configuration.ManagerConfigurationAnalyser;
 import de.latlon.xplan.manager.database.XPlanDao;
 import de.latlon.xplan.manager.dictionary.XPlanDictionaries;
 import de.latlon.xplan.manager.dictionary.XPlanEnumerationFactory;
@@ -45,14 +57,8 @@ import de.latlon.xplan.manager.transaction.UnsupportPlanException;
 import de.latlon.xplan.manager.transaction.XPlanDeleteManager;
 import de.latlon.xplan.manager.transaction.XPlanEditManager;
 import de.latlon.xplan.manager.transaction.XPlanInsertManager;
-import de.latlon.xplan.manager.web.shared.Bereich;
-import de.latlon.xplan.manager.web.shared.PlanNameWithStatusResult;
-import de.latlon.xplan.manager.web.shared.PlanStatus;
-import de.latlon.xplan.manager.web.shared.RasterEvaluationResult;
-import de.latlon.xplan.manager.web.shared.Rechtsstand;
-import de.latlon.xplan.manager.web.shared.XPlan;
+import de.latlon.xplan.manager.web.shared.*;
 import de.latlon.xplan.manager.web.shared.edit.XPlanToEdit;
-import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
 import de.latlon.xplan.manager.wmsconfig.raster.XPlanRasterManager;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.XPlanRasterEvaluator;
 import de.latlon.xplan.manager.workspace.WorkspaceException;
@@ -65,23 +71,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.security.access.prepost.PreAuthorize;
 
-import javax.xml.stream.XMLStreamException;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.EmptyStackException;
-import java.util.List;
-import java.util.stream.Collectors;
-
-import static de.latlon.xplan.commons.util.FeatureCollectionUtils.retrieveRechtsstand;
-import static de.latlon.xplan.manager.edit.ExternalReferenceUtils.createExternalRefAddedOrUpdated;
-import static de.latlon.xplan.manager.web.shared.PlanStatus.findByLegislationStatusCode;
-import static de.latlon.xplan.manager.web.shared.PlanStatus.valueOf;
-import static de.latlon.xplan.manager.web.shared.Rechtsstand.UNKNOWN_RECHTSSTAND;
-import static java.lang.Integer.parseInt;
-import static org.apache.commons.io.IOUtils.closeQuietly;
-
 /**
  * An instance of XPlanManager provides the service methods to manage instances of XPlan.
  * Supports XPlan version 4.x, 5.x. and 6.x.
@@ -119,7 +108,6 @@ public class XPlanManager {
 	 * @param xPlanDao mandatory XPlan data access object
 	 * @param archiveCreator mandatory archive creator
 	 * @param managerConfiguration mandatory manager configuration
-	 * @param wmsWorkspaceWrapper mandatory WMS workspace configuration
 	 * @param xPlanExporter
 	 * @param sortPropertyReader
 	 * @param inspirePluPublisher
@@ -129,12 +117,12 @@ public class XPlanManager {
 	 * @throws Exception if mandatory arguments are missing or something went wrong
 	 */
 	public XPlanManager(XPlanDao xPlanDao, XPlanArchiveCreator archiveCreator,
-			ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			XPlanExporter xPlanExporter, XPlanRasterEvaluator xPlanRasterEvaluator,
-			XPlanRasterManager xPlanRasterManager, SortPropertyReader sortPropertyReader,
-			InspirePluPublisher inspirePluPublisher, XPlanInsertManager xPlanInsertManager,
-			XPlanEditManager xPlanEditManager, XPlanDeleteManager xPlanDeleteManager) throws Exception {
-		if (xPlanDao == null || archiveCreator == null || managerConfiguration == null || wmsWorkspaceWrapper == null) {
+			ManagerConfiguration managerConfiguration, XPlanExporter xPlanExporter,
+			XPlanRasterEvaluator xPlanRasterEvaluator, XPlanRasterManager xPlanRasterManager,
+			SortPropertyReader sortPropertyReader, InspirePluPublisher inspirePluPublisher,
+			XPlanInsertManager xPlanInsertManager, XPlanEditManager xPlanEditManager,
+			XPlanDeleteManager xPlanDeleteManager) throws Exception {
+		if (xPlanDao == null || archiveCreator == null || managerConfiguration == null) {
 			throw new IllegalArgumentException("Mandatory argument must not be null");
 		}
 		this.xPlanExporter = xPlanExporter;
@@ -147,10 +135,6 @@ public class XPlanManager {
 		this.archiveCreator = archiveCreator;
 		this.xPlanRasterEvaluator = xPlanRasterEvaluator;
 		this.xPlanRasterManager = xPlanRasterManager;
-
-		ManagerConfigurationAnalyser managerConfigurationAnalyser = new ManagerConfigurationAnalyser(
-				managerConfiguration, wmsWorkspaceWrapper);
-		managerConfigurationAnalyser.checkConfiguration();
 	}
 
 	@SuppressFBWarnings(value = "PATH_TRAVERSAL_IN")
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfiguration.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfiguration.java
index 2ae41d63558cd28dc298ff004e84179a5dd01f2d..ea0b2b37a7d3297c36858389071a325b1c77ad5d 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfiguration.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfiguration.java
@@ -20,29 +20,27 @@
  */
 package de.latlon.xplan.manager.configuration;
 
+import static de.latlon.xplan.manager.workspace.WorkspaceReloadAction.ALL;
+
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 import de.latlon.xplan.commons.XPlanType;
 import de.latlon.xplan.commons.XPlanVersion;
 import de.latlon.xplan.commons.configuration.PropertiesLoader;
 import de.latlon.xplan.commons.configuration.SemanticConformityLinkConfiguration;
 import de.latlon.xplan.commons.configuration.SortConfiguration;
 import de.latlon.xplan.manager.web.shared.ConfigurationException;
-import de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource;
 import de.latlon.xplan.manager.workspace.WorkspaceReloadAction;
 import de.latlon.xplan.manager.workspace.WorkspaceReloaderConfiguration;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-
-import static de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource.geotiff;
-import static de.latlon.xplan.manager.workspace.WorkspaceReloadAction.ALL;
-
 /**
  * Provides access to the manager configuration.
  *
@@ -57,8 +55,6 @@ public class ManagerConfiguration {
 
 	static final String RASTER_LAYER_SCALE_DENOMINATOR_MAX = "rasterLayerMaxScaleDenominator";
 
-	static final String RASTER_CONFIG_TYPE = "rasterConfigurationType";
-
 	static final String WORKSPACE_RELOAD_URLS = "workspaceReloadUrls";
 
 	static final String WORKSPACE_RELOAD_API_KEY = "workspaceReloadApiKey";
@@ -81,8 +77,6 @@ public class ManagerConfiguration {
 
 	private String rasterConfigurationCrs;
 
-	private RasterConfigurationSource rasterConfigurationType = geotiff;
-
 	private double rasterLayerMinScaleDenominator = Double.NaN;
 
 	private double rasterLayerMaxScaleDenominator = Double.NaN;
@@ -118,14 +112,6 @@ public class ManagerConfiguration {
 		return rasterConfigurationCrs;
 	}
 
-	/**
-	 * @return the type to use in the raster configuration (geotiff or mapserver), never
-	 * <code>null</code>
-	 */
-	public RasterConfigurationSource getRasterConfigurationType() {
-		return rasterConfigurationType;
-	}
-
 	/**
 	 * @return the max scale denominator the raster layer is visible (a value less than 0
 	 * means the visibility is not limited)
@@ -208,7 +194,6 @@ public class ManagerConfiguration {
 			Properties loadProperties = propertiesLoader.loadProperties(MANAGER_CONFIGURATION);
 			if (loadProperties != null) {
 				rasterConfigurationCrs = parseRasterConfigurationCrs(loadProperties, RASTER_CONFIG_CRS);
-				rasterConfigurationType = parseRasterConfigurationType(loadProperties);
 				rasterLayerMinScaleDenominator = parseScaleDenominator(loadProperties,
 						RASTER_LAYER_SCALE_DENOMINATOR_MIN);
 				rasterLayerMaxScaleDenominator = parseScaleDenominator(loadProperties,
@@ -247,7 +232,7 @@ public class ManagerConfiguration {
 		LOG.info("-------------------------------------------");
 		LOG.info("  raster configuration");
 		LOG.info("   - crs: {}", rasterConfigurationCrs);
-		LOG.info("   - type: {}", rasterConfigurationType);
+		LOG.info("   - type: spring profile is used since v8.0");
 		LOG.info("   - min scale denominator: {}", rasterLayerMinScaleDenominator);
 		LOG.info("   - max scale denominator: {}", rasterLayerMaxScaleDenominator);
 		LOG.info("-------------------------------------------");
@@ -288,18 +273,6 @@ public class ManagerConfiguration {
 		return null;
 	}
 
-	private RasterConfigurationSource parseRasterConfigurationType(Properties loadProperties) {
-		String rasterConfigTypePropertyValue = loadProperties.getProperty(RASTER_CONFIG_TYPE);
-		if (rasterConfigTypePropertyValue != null) {
-			try {
-				return RasterConfigurationSource.valueOf(rasterConfigTypePropertyValue);
-			}
-			catch (IllegalArgumentException e) {
-			}
-		}
-		return geotiff;
-	}
-
 	private WorkspaceReloaderConfiguration parseWorkspaceReloaderConfiguration(Properties loadProperties) {
 		String urls = loadProperties.getProperty(WORKSPACE_RELOAD_URLS);
 		String apiKey = loadProperties.getProperty(WORKSPACE_RELOAD_API_KEY);
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfigurationAnalyser.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfigurationAnalyser.java
deleted file mode 100644
index 84435b93b81048713ea29c550a7f34c580b1bc25..0000000000000000000000000000000000000000
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/configuration/ManagerConfigurationAnalyser.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*-
- * #%L
- * xplan-core-manager - XPlan Manager Core Komponente
- * %%
- * Copyright (C) 2008 - 2024 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package de.latlon.xplan.manager.configuration;
-
-import java.io.IOException;
-
-import jakarta.xml.bind.JAXBException;
-
-import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-
-/**
- * Checks the configuration of XPlanManager.
- *
- * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a>
- * @version $Revision: $, $Date: $
- */
-public class ManagerConfigurationAnalyser {
-
-	private final ManagerConfiguration managerConfiguration;
-
-	private final WmsWorkspaceWrapper wmsWorkspace;
-
-	/**
-	 * @param managerConfiguration configuration of the manager, never <code>null</code>
-	 * @param wmsWorkspace wms workspace never <code>null</code>
-	 */
-	public ManagerConfigurationAnalyser(ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspace) {
-		this.managerConfiguration = managerConfiguration;
-		this.wmsWorkspace = wmsWorkspace;
-	}
-
-	/**
-	 * Checks the configuration, throws an {@link ConfigurationException} if the
-	 * configuration is broken
-	 * @throws ConfigurationException if the configuration is broken
-	 */
-	public void checkConfiguration() throws ConfigurationException {
-		String rasterConfigurationCrsFromManagerConfig = getRasterConfigurationCrsFromManagerConfig();
-		try {
-			wmsWorkspace.checkThemes(rasterConfigurationCrsFromManagerConfig);
-		}
-		catch (JAXBException | IOException e) {
-			throw new ConfigurationException(e);
-		}
-	}
-
-	private String getRasterConfigurationCrsFromManagerConfig() {
-		return managerConfiguration != null ? managerConfiguration.getRasterConfigurationCrs() : null;
-	}
-
-}
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/storage/config/StorageCleanUpContext.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/storage/config/StorageCleanUpContext.java
deleted file mode 100644
index ceb33c22186f3d5bc7c37128f05f8bc4dd565648..0000000000000000000000000000000000000000
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/storage/config/StorageCleanUpContext.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*-
- * #%L
- * xplan-core-manager - XPlan Manager Core Komponente
- * %%
- * Copyright (C) 2008 - 2024 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package de.latlon.xplan.manager.storage.config;
-
-import de.latlon.xplan.manager.storage.StorageCleanUpManager;
-import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
-import de.latlon.xplan.manager.storage.filesystem.FilesystemStorageCleanUpManager;
-import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Profile;
-
-/**
- * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
- * @since 7.0
- */
-@Configuration
-@Profile("!s3 & !s3doc")
-public class StorageCleanUpContext {
-
-	@Bean
-	public StorageCleanUpManager storageCleanUpManager(WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			DeegreeRasterCacheCleaner deegreeRasterCacheCleaner) {
-		return new FilesystemStorageCleanUpManager(wmsWorkspaceWrapper.getDataDirectory(), deegreeRasterCacheCleaner);
-	}
-
-}
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/WmsWorkspaceWrapper.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/WmsWorkspaceWrapper.java
index a686d40a513698e0afe9c91104b9a4dd186ff40e..27c13377061cebf7fde3a165f3f12abfb9978242 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/WmsWorkspaceWrapper.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/WmsWorkspaceWrapper.java
@@ -20,16 +20,9 @@
  */
 package de.latlon.xplan.manager.wmsconfig;
 
-import de.latlon.xplan.manager.configuration.ConfigurationException;
-import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
-import org.apache.commons.io.FilenameUtils;
-import org.deegree.commons.config.DeegreeWorkspace;
-import org.deegree.commons.xml.jaxb.JAXBUtils;
-import org.deegree.theme.persistence.standard.StandardThemeProvider;
-import org.deegree.theme.persistence.standard.jaxb.ThemeType;
-import org.deegree.theme.persistence.standard.jaxb.Themes;
+import static java.lang.String.format;
+import static java.util.Arrays.asList;
 
-import jakarta.xml.bind.JAXBException;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -38,8 +31,16 @@ import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.util.List;
 
-import static java.lang.String.format;
-import static java.util.Arrays.asList;
+import de.latlon.xplan.manager.configuration.ConfigurationException;
+import de.latlon.xplan.manager.configuration.ManagerConfiguration;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import jakarta.xml.bind.JAXBException;
+import org.apache.commons.io.FilenameUtils;
+import org.deegree.commons.config.DeegreeWorkspace;
+import org.deegree.commons.xml.jaxb.JAXBUtils;
+import org.deegree.theme.persistence.standard.StandardThemeProvider;
+import org.deegree.theme.persistence.standard.jaxb.ThemeType;
+import org.deegree.theme.persistence.standard.jaxb.Themes;
 
 /**
  * Wraps a wms workspace and provides some useful methods.
@@ -60,8 +61,15 @@ public class WmsWorkspaceWrapper {
 	/**
 	 * @param wmsWorkspace never <code>null</code>
 	 */
-	public WmsWorkspaceWrapper(DeegreeWorkspace wmsWorkspace) {
+	public WmsWorkspaceWrapper(ManagerConfiguration managerConfiguration, DeegreeWorkspace wmsWorkspace)
+			throws ConfigurationException {
 		this.workspace = wmsWorkspace;
+		try {
+			checkThemes(managerConfiguration);
+		}
+		catch (JAXBException | IOException e) {
+			throw new ConfigurationException(e);
+		}
 	}
 
 	/**
@@ -81,13 +89,15 @@ public class WmsWorkspaceWrapper {
 
 	/**
 	 * Checks if all themes are configured as expected.
-	 * @param configuredCrs the configured crs of the themes configuration, may be
-	 * <code>null</code> (check of the themes crs is skipped)
+	 * @param managerConfiguration the @{link ManagerConfiguration}, never
+	 * <code>null</code>
 	 * @throws JAXBException
 	 * @throws IOException
 	 * @throws ConfigurationException
 	 */
-	public void checkThemes(String configuredCrs) throws JAXBException, IOException, ConfigurationException {
+	public void checkThemes(ManagerConfiguration managerConfiguration)
+			throws JAXBException, IOException, ConfigurationException {
+		String configuredCrs = managerConfiguration != null ? managerConfiguration.getRasterConfigurationCrs() : null;
 		for (String supportedType : supportedTypes) {
 			retrieveThemesForType(supportedType, configuredCrs);
 		}
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/RasterStorageContext.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/GeotiffRasterStorageContext.java
similarity index 69%
rename from xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/RasterStorageContext.java
rename to xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/GeotiffRasterStorageContext.java
index 6b8ad8c88011db61e9c1efa4cd466bd1c838ce48..307192caf28ee476017d574520994d3ced7f7e59 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/RasterStorageContext.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/GeotiffRasterStorageContext.java
@@ -20,39 +20,36 @@
  */
 package de.latlon.xplan.manager.wmsconfig.config;
 
+import java.nio.file.Path;
+
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
+import de.latlon.xplan.manager.storage.StorageCleanUpManager;
 import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
+import de.latlon.xplan.manager.storage.filesystem.FilesystemStorageCleanUpManager;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
 import de.latlon.xplan.manager.wmsconfig.raster.config.DeegreeRasterConfigManager;
-import de.latlon.xplan.manager.wmsconfig.raster.config.NoConfigRasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.GeotiffRasterEvaluation;
-import de.latlon.xplan.manager.wmsconfig.raster.evaluation.MapserverRasterEvaluation;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.FileSystemStorage;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.RasterStorage;
-import de.latlon.xplan.manager.wmsconfig.raster.storage.s3.config.AmazonS3RasterStorageContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
-
-import java.nio.file.Path;
+import org.springframework.context.annotation.Profile;
 
 /**
- * Spring configuration for the storage type to be used for raster data. The storage type
- * is selected by evaluating the ManagerConfiguration property rasterConfigurationType.
- * Supported are geotiff and mapserver using a local file system. To use an AWS S3 bucket
- * as a storage backend with MapServer use the <code>AmazonS3Context</code> for
- * configuration.
+ * Spring configuration for the storage type to be used for raster data. The
+ * GeotiffRasterStorage is selected when the profile 'mapserver' is absent.
  *
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
  * @since 7.0
- * @see AmazonS3RasterStorageContext
  */
 @Configuration
 @ComponentScan("de.latlon.xplan.manager.storage.filesystem.listener")
-public class RasterStorageContext {
+@Profile("!mapserver")
+public class GeotiffRasterStorageContext {
 
 	@Bean
 	public RasterStorage rasterStorage(WmsWorkspaceWrapper wmsWorkspaceWrapper, RasterEvaluation rasterEvaluation,
@@ -63,24 +60,19 @@ public class RasterStorageContext {
 
 	@Bean
 	public RasterEvaluation rasterEvaluation(ManagerConfiguration managerConfiguration) {
-		switch (managerConfiguration.getRasterConfigurationType()) {
-			case mapserver:
-				return new MapserverRasterEvaluation(managerConfiguration.getRasterConfigurationCrs());
-			default:
-				return new GeotiffRasterEvaluation(managerConfiguration.getRasterConfigurationCrs());
-		}
+		return new GeotiffRasterEvaluation(managerConfiguration.getRasterConfigurationCrs());
 	}
 
 	@Bean
 	public RasterConfigManager rasterConfigManager(WmsWorkspaceWrapper wmsWorkspaceWrapper,
 			ManagerConfiguration managerConfiguration) {
-		switch (managerConfiguration.getRasterConfigurationType()) {
-			case mapserver:
-				return new NoConfigRasterConfigManager();
-			case geotiff:
-			default:
-				return new DeegreeRasterConfigManager(wmsWorkspaceWrapper, managerConfiguration);
-		}
+		return new DeegreeRasterConfigManager(wmsWorkspaceWrapper, managerConfiguration);
+	}
+
+	@Bean
+	public StorageCleanUpManager storageCleanUpManager(WmsWorkspaceWrapper wmsWorkspaceWrapper,
+			DeegreeRasterCacheCleaner deegreeRasterCacheCleaner) {
+		return new FilesystemStorageCleanUpManager(wmsWorkspaceWrapper.getDataDirectory(), deegreeRasterCacheCleaner);
 	}
 
 }
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/MapserverRasterStorageContext.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/MapserverRasterStorageContext.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ed939d7cec9447a52742393095b0b841ed87532
--- /dev/null
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/config/MapserverRasterStorageContext.java
@@ -0,0 +1,94 @@
+/*-
+ * #%L
+ * xplan-core-manager - XPlan Manager Core Komponente
+ * %%
+ * Copyright (C) 2008 - 2024 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package de.latlon.xplan.manager.wmsconfig.config;
+
+import java.nio.file.Path;
+import java.nio.file.Paths;
+
+import de.latlon.xplan.manager.configuration.ConfigurationException;
+import de.latlon.xplan.manager.configuration.ManagerConfiguration;
+import de.latlon.xplan.manager.storage.StorageCleanUpManager;
+import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
+import de.latlon.xplan.manager.storage.filesystem.FilesystemStorageCleanUpManager;
+import de.latlon.xplan.manager.wmsconfig.raster.config.NoConfigRasterConfigManager;
+import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
+import de.latlon.xplan.manager.wmsconfig.raster.evaluation.MapserverRasterEvaluation;
+import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
+import de.latlon.xplan.manager.wmsconfig.raster.storage.FileSystemStorage;
+import de.latlon.xplan.manager.wmsconfig.raster.storage.RasterStorage;
+import de.latlon.xplan.manager.wmsconfig.raster.storage.s3.config.AmazonS3RasterStorageContext;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
+
+/**
+ * Spring configuration for the storage type to be used for raster data. The
+ * MapserverRasterStorage is selected with the profile 'mapserver'. To use an AWS S3
+ * bucket as a storage backend with MapServer use the <code>AmazonS3Context</code> for
+ * configuration.
+ *
+ * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @since 8.0
+ * @see AmazonS3RasterStorageContext
+ */
+@Configuration
+@ComponentScan("de.latlon.xplan.manager.storage.filesystem.listener")
+@Profile("mapserver")
+public class MapserverRasterStorageContext {
+
+	@Bean
+	@Profile("!s3img")
+	public RasterStorage rasterStorage(Path dataDirectory, RasterEvaluation rasterEvaluation)
+			throws ConfigurationException {
+		return new FileSystemStorage(dataDirectory, rasterEvaluation, null);
+	}
+
+	@Bean
+	@Profile("!s3img")
+	public StorageCleanUpManager storageCleanUpManager(Path dataDirectory,
+			DeegreeRasterCacheCleaner deegreeRasterCacheCleaner) {
+		return new FilesystemStorageCleanUpManager(dataDirectory, deegreeRasterCacheCleaner);
+	}
+
+	@Bean
+	@Profile("!s3img")
+	public static Path dataPath(@Value("#{environment.XPLAN_MAPSERVER_DATA_DIR}") String dataDir)
+			throws ConfigurationException {
+		if (dataDir == null || dataDir.isEmpty())
+			throw new ConfigurationException(
+					"Profile mapserver is enabled, but not s3img. Environment variable XPLAN_MAPSERVER_DATA_DIR is required to store the raster images in filesystem.");
+		final Path dataDirectory = Paths.get(dataDir);
+		return dataDirectory;
+	}
+
+	@Bean
+	public RasterEvaluation rasterEvaluation(ManagerConfiguration managerConfiguration) {
+		return new MapserverRasterEvaluation(managerConfiguration.getRasterConfigurationCrs());
+	}
+
+	@Bean
+	public RasterConfigManager rasterConfigManager() {
+		return new NoConfigRasterConfigManager();
+	}
+
+}
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/RasterConfigurationSource.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/RasterConfigurationSource.java
deleted file mode 100644
index a916ee78ff22707a3e37358874eabe2cdd4a41b2..0000000000000000000000000000000000000000
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/RasterConfigurationSource.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*-
- * #%L
- * xplan-core-manager - XPlan Manager Core Komponente
- * %%
- * Copyright (C) 2008 - 2024 Freie und Hansestadt Hamburg, developed by lat/lon gesellschaft für raumbezogene Informationssysteme mbH
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU Affero General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- * #L%
- */
-package de.latlon.xplan.manager.wmsconfig.raster;
-
-/**
- * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
- */
-public enum RasterConfigurationSource {
-
-	geotiff, mapserver
-
-}
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/DeegreeRasterConfigManager.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/DeegreeRasterConfigManager.java
index eb77780a10bbaaa3a922244b633395d7d1f4bc39..61e9d0f9e93e4c6bb9be8e9d99fd8f92ede8d635 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/DeegreeRasterConfigManager.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/DeegreeRasterConfigManager.java
@@ -20,22 +20,22 @@
  */
 package de.latlon.xplan.manager.wmsconfig.raster.config;
 
+import static de.latlon.xplan.manager.wmsconfig.raster.config.ConfigWriterUtils.detectType;
+
+import java.io.IOException;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
 import de.latlon.xplan.commons.XPlanType;
 import de.latlon.xplan.manager.configuration.ConfigurationException;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
 import de.latlon.xplan.manager.web.shared.PlanStatus;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
+import jakarta.xml.bind.JAXBException;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import jakarta.xml.bind.JAXBException;
-import java.io.IOException;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-
-import static de.latlon.xplan.manager.wmsconfig.raster.config.ConfigWriterUtils.detectType;
-
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
  */
@@ -54,7 +54,7 @@ public class DeegreeRasterConfigManager implements RasterConfigManager {
 		this.rasterThemeManager = new WorkspaceRasterThemeManager(wmsWorkspaceWrapper);
 		this.managerConfiguration = managerConfiguration;
 		this.rasterLayerManager = new WorkspaceRasterLayerManager(wmsWorkspaceWrapper.getLocation(),
-				managerConfiguration.getRasterConfigurationType(), managerConfiguration.getRasterConfigurationCrs());
+				managerConfiguration.getRasterConfigurationCrs());
 	}
 
 	@Override
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManager.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManager.java
index fc9a97bc7635e75bffa5648ec7f5ac4b84763af2..afe10b920d6907800809f4cae565182a7a72bb23 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManager.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManager.java
@@ -20,7 +20,17 @@
  */
 package de.latlon.xplan.manager.wmsconfig.raster.config;
 
-import de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource;
+import static jakarta.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT;
+import static java.lang.Boolean.TRUE;
+
+import java.io.File;
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.function.BiPredicate;
+import java.util.stream.Stream;
+
 import jakarta.xml.bind.JAXBContext;
 import jakarta.xml.bind.JAXBException;
 import jakarta.xml.bind.Marshaller;
@@ -33,17 +43,6 @@ import org.deegree.tile.tilematrixset.geotiff.jaxb.GeoTIFFTileMatrixSetConfig;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.File;
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.attribute.BasicFileAttributes;
-import java.util.function.BiPredicate;
-import java.util.stream.Stream;
-
-import static jakarta.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT;
-import static java.lang.Boolean.TRUE;
-
 /**
  * Creates/deletes configuration and data files for raster layers in the WMS workspace.
  *
@@ -56,30 +55,23 @@ public class WorkspaceRasterLayerManager {
 
 	private final Path wmsWorkspace;
 
-	private final RasterConfigurationSource tileStoreType;
-
 	private final String rasterConfigurationCrs;
 
 	/**
 	 * @param wmsWorkspace the location of the workspace the configuration should be
 	 * stored, never <code>null</code>
-	 * @param tileStoreType the type of the tile store to create, never <code>null</code>
 	 * @param rasterConfigurationCrs the crs of the configuration, never <code>null</code>
 	 */
-	public WorkspaceRasterLayerManager(File wmsWorkspace, RasterConfigurationSource tileStoreType,
-			String rasterConfigurationCrs) {
+	public WorkspaceRasterLayerManager(File wmsWorkspace, String rasterConfigurationCrs) {
 		this.wmsWorkspace = wmsWorkspace.toPath();
-		this.tileStoreType = tileStoreType;
 		this.rasterConfigurationCrs = rasterConfigurationCrs;
 	}
 
 	public void createRasterConfigurations(String rasterId, String rasterFileName, double minScaleDenominator,
 			double maxScaleDenominator) throws JAXBException, IOException {
-		switch (tileStoreType) {
-			case geotiff:
-				createGeotiffConfiguration(rasterId, rasterFileName, minScaleDenominator, maxScaleDenominator);
-				break;
-		}
+		createGeotiffTileMatrixSetConfig(rasterId, rasterFileName);
+		createGeotiffTileStoreConfig(rasterId, rasterFileName);
+		createTileLayerConfig(rasterId, minScaleDenominator, maxScaleDenominator);
 	}
 
 	/**
@@ -141,13 +133,6 @@ public class WorkspaceRasterLayerManager {
 		});
 	}
 
-	private void createGeotiffConfiguration(String rasterId, String rasterFileName, double minScaleDenominator,
-			double maxScaleDenominator) throws JAXBException, IOException {
-		createGeotiffTileMatrixSetConfig(rasterId, rasterFileName);
-		createGeotiffTileStoreConfig(rasterId, rasterFileName);
-		createTileLayerConfig(rasterId, minScaleDenominator, maxScaleDenominator);
-	}
-
 	private void createTileLayerConfig(String rasterId, double minScaleDenominator, double maxScaleDenominator)
 			throws JAXBException, IOException {
 		TileLayers cfg = new TileLayers();
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/FileSystemStorage.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/FileSystemStorage.java
index dbf6aa2780b1a161ec38e081f4c6266ef2ab5194..9f10a66b004e3b1a4f8ae0256916c2b6a0f53e56 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/FileSystemStorage.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/FileSystemStorage.java
@@ -20,6 +20,10 @@
  */
 package de.latlon.xplan.manager.wmsconfig.raster.storage;
 
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import de.latlon.xplan.commons.archive.XPlanArchiveContentAccess;
 import de.latlon.xplan.manager.storage.StorageEvent;
 import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
@@ -27,10 +31,6 @@ import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.IOException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
  */
@@ -66,7 +66,8 @@ public class FileSystemStorage implements RasterStorage {
 	@Override
 	public void deleteRasterFile(int planId, String fileName, StorageEvent storageEvent) {
 		final String rasterLayerFileName = planId + "_" + fileName;
-		deegreeRasterCacheCleaner.clearCache(rasterLayerFileName);
+		if (deegreeRasterCacheCleaner != null)
+			deegreeRasterCacheCleaner.clearCache(rasterLayerFileName);
 		Path file = dataDirectory.resolve(rasterLayerFileName);
 		LOG.info("- Entferne Raster-Datei '" + file + "'...");
 		try {
diff --git a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/s3/config/AmazonS3RasterStorageContext.java b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/s3/config/AmazonS3RasterStorageContext.java
index 03fdeff4a0f611eff57b57e61bc6b5ce18cf4eff..a10f3c74031520c3aff8850bb6ee3b4416932fee 100644
--- a/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/s3/config/AmazonS3RasterStorageContext.java
+++ b/xplan-core/xplan-core-manager/src/main/java/de/latlon/xplan/manager/wmsconfig/raster/storage/s3/config/AmazonS3RasterStorageContext.java
@@ -22,6 +22,7 @@ package de.latlon.xplan.manager.wmsconfig.raster.storage.s3.config;
 
 import com.amazonaws.services.s3.AmazonS3;
 import de.latlon.xplan.manager.storage.s3.config.AmazonS3Context;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.s3.S3RasterStorage;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Bean;
@@ -37,7 +38,7 @@ import org.springframework.context.annotation.Profile;
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
  * @author <a href="mailto:friebe@lat-lon.de">Torsten Friebe</a>
  * @since 7.0
- * @see de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext
+ * @see MapserverRasterStorageContext
  */
 @Configuration
 @Profile("s3img")
diff --git a/xplan-core/xplan-core-manager/src/main/resources/de/latlon/xplan/manager/configuration/managerConfiguration.properties b/xplan-core/xplan-core-manager/src/main/resources/de/latlon/xplan/manager/configuration/managerConfiguration.properties
index 7db389932a2be6ef690c3aafc1c9df7cf67db6aa..afa5c3dc10e1603c49141f158a33aeb77c4100b4 100644
--- a/xplan-core/xplan-core-manager/src/main/resources/de/latlon/xplan/manager/configuration/managerConfiguration.properties
+++ b/xplan-core/xplan-core-manager/src/main/resources/de/latlon/xplan/manager/configuration/managerConfiguration.properties
@@ -22,8 +22,6 @@
 rasterConfigurationCrs=EPSG:25832
 rasterLayerMinScaleDenominator=0
 rasterLayerMaxScaleDenominator=50000
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=geotiff
 
 # workspace reloader configuration, workspaceReloadAction must be one of ALL (default), RELOAD, PLANWERKWMS
 # workspaceReloadUser and workspaceReloadPassword are deprecated! Use workspaceReloadApiKey instead.
diff --git a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/XPlanManagerTest.java b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/XPlanManagerTest.java
index fb530592934807ffb2a1f6a273d782e443fd02a3..c76242f2617d296a2b70b5e7d75b2812b92f5d2d 100644
--- a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/XPlanManagerTest.java
+++ b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/XPlanManagerTest.java
@@ -20,16 +20,30 @@
  */
 package de.latlon.xplan.manager;
 
+import static org.apache.commons.io.IOUtils.close;
+import static org.apache.commons.io.IOUtils.copy;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.MatcherAssert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.util.List;
+
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.configuration.SortConfiguration;
+import de.latlon.xplan.manager.configuration.ConfigurationException;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
 import de.latlon.xplan.manager.database.XPlanDao;
-import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
 import de.latlon.xplan.manager.web.shared.PlanStatus;
 import de.latlon.xplan.manager.web.shared.RasterEvaluationResult;
 import de.latlon.xplan.manager.web.shared.Rechtsstand;
-import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.XPlanRasterManager;
 import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
@@ -38,24 +52,11 @@ import de.latlon.xplan.manager.wmsconfig.raster.storage.RasterStorage;
 import org.deegree.commons.utils.Pair;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.Rule;
 import org.junit.Test;
+import org.junit.rules.TemporaryFolder;
 import org.springframework.context.ApplicationEventPublisher;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.util.List;
-
-import static de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource.mapserver;
-import static org.apache.commons.io.IOUtils.close;
-import static org.apache.commons.io.IOUtils.copy;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a>
  * @version 1.0
@@ -68,14 +69,20 @@ public class XPlanManagerTest {
 
 	private static final String CONFIGURED_CRS = "epsg:4326";
 
+	@Rule
+	public TemporaryFolder tempFolder = new TemporaryFolder();
+
 	private File managerWorkspaceDirectory;
 
 	private File wmsWorkspaceDirectory;
 
+	private File dataDirectory;
+
 	@Before
 	public void createWorkspaceFiles() throws IOException {
-		managerWorkspaceDirectory = Files.createTempDirectory("manager").toFile();
-		wmsWorkspaceDirectory = Files.createTempDirectory("wms").toFile();
+		managerWorkspaceDirectory = tempFolder.newFolder("manager");
+		wmsWorkspaceDirectory = tempFolder.newFolder("wms");
+		dataDirectory = tempFolder.newFolder("data");
 		File themesDir = new File(managerWorkspaceDirectory, "themes");
 		Files.createDirectory(themesDir.toPath());
 		File file = new File(themesDir, "bplanraster.xml");
@@ -117,47 +124,39 @@ public class XPlanManagerTest {
 		XPlanDao xPlanDao = mock(XPlanDao.class);
 		XPlanArchiveCreator archiveCreator = new XPlanArchiveCreator();
 		ManagerConfiguration managerConfiguration = mockManagerConfig();
-		WmsWorkspaceWrapper wmsWorkspaceWrapper = mock(WmsWorkspaceWrapper.class);
-		when(wmsWorkspaceWrapper.getLocation()).thenReturn(wmsWorkspaceDirectory.getAbsoluteFile());
 		RasterEvaluation rasterEvaluation = createRasterEvaluation(managerConfiguration);
 		XPlanRasterEvaluator xPlanRasterEvaluator = new XPlanRasterEvaluator(rasterEvaluation);
-		DeegreeRasterCacheCleaner deegreeRasterCacheCleaner = new DeegreeRasterCacheCleaner(
-				managerConfiguration.getWorkspaceReloaderConfiguration());
-		RasterStorage rasterStorage = createRasterStorage(wmsWorkspaceWrapper, rasterEvaluation,
-				deegreeRasterCacheCleaner);
-		RasterConfigManager rasterConfigManager = createRasterConfigManager(wmsWorkspaceWrapper, managerConfiguration);
+		RasterStorage rasterStorage = createRasterStorage(dataDirectory.toPath(), rasterEvaluation);
+		RasterConfigManager rasterConfigManager = createRasterConfigManager();
 		ApplicationEventPublisher applicationEventPublisher = createApplicationEventPublisher();
 		XPlanRasterManager xPlanRasterManager = new XPlanRasterManager(rasterStorage, rasterConfigManager,
 				applicationEventPublisher);
-		return new XPlanManager(xPlanDao, archiveCreator, managerConfiguration, wmsWorkspaceWrapper, null,
-				xPlanRasterEvaluator, xPlanRasterManager, null, null, null, null, null);
+		return new XPlanManager(xPlanDao, archiveCreator, managerConfiguration, null, xPlanRasterEvaluator,
+				xPlanRasterManager, null, null, null, null, null);
 	}
 
 	private ApplicationEventPublisher createApplicationEventPublisher() {
 		return mock(ApplicationEventPublisher.class);
 	}
 
-	private RasterConfigManager createRasterConfigManager(WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			ManagerConfiguration managerConfiguration) {
+	private RasterConfigManager createRasterConfigManager() {
 		// TODO turn into autowired field
-		return new RasterStorageContext().rasterConfigManager(wmsWorkspaceWrapper, managerConfiguration);
+		return new MapserverRasterStorageContext().rasterConfigManager();
 	}
 
-	private RasterStorage createRasterStorage(WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			RasterEvaluation rasterEvaluation, DeegreeRasterCacheCleaner deegreeRasterCacheCleaner) {
+	private RasterStorage createRasterStorage(Path dataDir, RasterEvaluation rasterEvaluation)
+			throws ConfigurationException {
 		// TODO turn into autowired field
-		return new RasterStorageContext().rasterStorage(wmsWorkspaceWrapper, rasterEvaluation,
-				deegreeRasterCacheCleaner);
+		return new MapserverRasterStorageContext().rasterStorage(dataDir, rasterEvaluation);
 	}
 
 	private RasterEvaluation createRasterEvaluation(ManagerConfiguration managerConfiguration) {
 		// TODO turn into autowired field
-		return new RasterStorageContext().rasterEvaluation(managerConfiguration);
+		return new MapserverRasterStorageContext().rasterEvaluation(managerConfiguration);
 	}
 
 	private ManagerConfiguration mockManagerConfig() {
 		ManagerConfiguration mockedConfiguration = mock(ManagerConfiguration.class);
-		when(mockedConfiguration.getRasterConfigurationType()).thenReturn(mapserver);
 		when(mockedConfiguration.getRasterConfigurationCrs()).thenReturn(CONFIGURED_CRS);
 		when(mockedConfiguration.getSortConfiguration()).thenReturn(new SortConfiguration());
 		return mockedConfiguration;
diff --git a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/config/CoreTestContext.java b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/config/CoreTestContext.java
index 6306281c40e9a7062996f8ebb1eba83eb32e778f..4b4f0b9a5e6c47714a62267d9d3f2a1a6bf79a12 100644
--- a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/config/CoreTestContext.java
+++ b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/config/CoreTestContext.java
@@ -20,7 +20,15 @@
  */
 package de.latlon.xplan.manager.config;
 
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import de.latlon.xplan.commons.configuration.SortConfiguration;
+import de.latlon.xplan.manager.configuration.ConfigurationException;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
 import de.latlon.xplan.manager.workspace.DeegreeWorkspaceWrapper;
@@ -30,15 +38,6 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 
-import java.io.IOException;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import static de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource.geotiff;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-
 @Configuration
 public class CoreTestContext {
 
@@ -46,7 +45,6 @@ public class CoreTestContext {
 	@Primary
 	public ManagerConfiguration managerConfiguration() {
 		ManagerConfiguration mockedConfiguration = mock(ManagerConfiguration.class);
-		when(mockedConfiguration.getRasterConfigurationType()).thenReturn(geotiff);
 		when(mockedConfiguration.getRasterConfigurationCrs()).thenReturn("EPSG:25832");
 		when(mockedConfiguration.getSortConfiguration()).thenReturn(new SortConfiguration());
 		return mockedConfiguration;
@@ -54,13 +52,14 @@ public class CoreTestContext {
 
 	@Bean
 	@Primary
-	public WmsWorkspaceWrapper wmsWorkspaceWrapper() throws WorkspaceException, IOException, URISyntaxException {
+	public WmsWorkspaceWrapper wmsWorkspaceWrapper(ManagerConfiguration managerConfiguration)
+			throws WorkspaceException, IOException, ConfigurationException {
 		DeegreeWorkspace deegreeWorkspace = mock(DeegreeWorkspace.class);
 		DeegreeWorkspaceWrapper wmsWorkspace = mock(DeegreeWorkspaceWrapper.class);
 		when(wmsWorkspace.getWorkspaceInstance()).thenReturn(deegreeWorkspace);
 		Path tempWorkspaceDir = Files.createTempDirectory("xplan-manager-core");
 		when(deegreeWorkspace.getLocation()).thenReturn(tempWorkspaceDir.toFile());
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 }
diff --git a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManagerTestManual.java b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManagerTestManual.java
index b6cffaef11329f3ddf85bef0b4933f939c2a3985..7234eecb83fb0eea3eb4f9970137896bb31f422e 100644
--- a/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManagerTestManual.java
+++ b/xplan-core/xplan-core-manager/src/test/java/de/latlon/xplan/manager/wmsconfig/raster/config/WorkspaceRasterLayerManagerTestManual.java
@@ -20,7 +20,19 @@
  */
 package de.latlon.xplan.manager.wmsconfig.raster.config;
 
-import de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource;
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
+import static java.nio.file.Files.copy;
+import static java.nio.file.Files.createDirectory;
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.notNullValue;
+import static org.hamcrest.MatcherAssert.assertThat;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.file.Files;
+import java.nio.file.Path;
+
 import org.deegree.commons.config.DeegreeWorkspace;
 import org.deegree.commons.utils.DoublePair;
 import org.deegree.layer.persistence.LayerStore;
@@ -32,19 +44,6 @@ import org.junit.ClassRule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
 
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.file.Files;
-import java.nio.file.Path;
-
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
-import static java.nio.file.Files.copy;
-import static java.nio.file.Files.createDirectory;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz</a>
  * @version $Revision: $, $Date: $
@@ -77,7 +76,7 @@ public class WorkspaceRasterLayerManagerTestManual {
 	@Test
 	public void testCreateRasterConfigurationsWithGeotiffTilestore() throws Exception {
 		WorkspaceRasterLayerManager workspaceRasterLayerManager = new WorkspaceRasterLayerManager(workspaceDirectory,
-				RasterConfigurationSource.geotiff, "EPSG:4326");
+				"EPSG:4326");
 		double minScaleDenominator = 10;
 		double maxScaleDenominator = 1500;
 		workspaceRasterLayerManager.createRasterConfigurations(RASTER_ID, TIFF_FILE, minScaleDenominator,
@@ -98,7 +97,7 @@ public class WorkspaceRasterLayerManagerTestManual {
 	@Test
 	public void testCreateRasterConfigurations_LayerWithDefaultScaleDenominators() throws Exception {
 		WorkspaceRasterLayerManager workspaceRasterLayerManager = new WorkspaceRasterLayerManager(workspaceDirectory,
-				RasterConfigurationSource.geotiff, "EPSG:4326");
+				"EPSG:4326");
 		workspaceRasterLayerManager.createRasterConfigurations(RASTER_ID, TIFF_FILE, Double.NaN, Double.NaN);
 
 		DeegreeWorkspace workspace = instantiateWorkspace(workspaceDirectory.getName());
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java
index 3d42ef0d833daddbf12055adedc199c64240b776..11aa66ca3238e8f3d35d49df444dd71fcc0a8f87 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfiguration.java
@@ -77,7 +77,9 @@ public class ValidatorConfiguration {
 	/**
 	 * Returns the configured XPlanValidatorWMS endpoint.
 	 * @return XPlanValidatorWMS endpoint, may be <code>null</code>
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
 	 */
+	@Deprecated
 	public String getValidatorWmsEndpoint() {
 		return validatorWmsEndpoint;
 	}
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java
index 5e7e5a7806386621a557c8804eab57d7fe25d4dd..a9b9c5b7a0783d00b30a2e5bbd3cb18005c8d463 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/configuration/ValidatorConfigurationParser.java
@@ -98,7 +98,7 @@ public class ValidatorConfigurationParser {
 		LOG.info("   - {}", configuration.getValidationRulesDirectory() != null
 				? configuration.getValidationRulesDirectory() : "internal rules are used");
 		LOG.info("  XPlanValidatorWMS Endpoint");
-		LOG.info("   - {}", configuration.getValidatorWmsEndpoint());
+		LOG.info("   - {} (deprecated)", configuration.getValidatorWmsEndpoint());
 		LOG.info("-------------------------------------------");
 		if (!configuration.getValidatorProfiles().isEmpty()) {
 			LOG.info("  validation profiles");
@@ -126,6 +126,10 @@ public class ValidatorConfigurationParser {
 		return null;
 	}
 
+	/**
+	 * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
+	 */
+	@Deprecated
 	private String parseValidatorWmsEndpoint(Properties properties) {
 		String validatorWmsEndpoint = properties.getProperty(VALIDATOR_WMS_ENDPOINT);
 		return validatorWmsEndpoint == null || validatorWmsEndpoint.trim().isEmpty() ? null : validatorWmsEndpoint;
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewCreationException.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewCreationException.java
index 6ea26abef49d93b030e11021a8da25252dfbbbf3..8c2a9089fa16f24d4394aa052cefcd9ccf0b5fc9 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewCreationException.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewCreationException.java
@@ -22,7 +22,9 @@ package de.latlon.xplan.validator.wms;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class MapPreviewCreationException extends Exception {
 
 	public MapPreviewCreationException(String msg) {
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java
index 5842c16c3822c48a0188da4f776be278a590e54d..55a7ba1d96aa870a5712c171d60b4a8fadfc7774 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MapPreviewManager.java
@@ -42,7 +42,9 @@ import org.slf4j.LoggerFactory;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class MapPreviewManager {
 
 	private static final Logger LOG = LoggerFactory.getLogger(MapPreviewManager.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MasterportalConfigWriter.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MasterportalConfigWriter.java
index cb072ffe61ad18ea043171a5cf94b57bed247cc8..2035be18fac03f9e4b7b360190683733af78d417 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MasterportalConfigWriter.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/MasterportalConfigWriter.java
@@ -40,7 +40,9 @@ import org.slf4j.LoggerFactory;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class MasterportalConfigWriter {
 
 	private static final Logger LOG = LoggerFactory.getLogger(MasterportalConfigWriter.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/ValidatorWmsManager.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/ValidatorWmsManager.java
index 6afb2d69028a219310214d455b86d6af8ff2a060..47b8bd51b405b5afc073c58fd16cb5b77a6c9e51 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/ValidatorWmsManager.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/ValidatorWmsManager.java
@@ -34,7 +34,9 @@ import static de.latlon.xplan.commons.XPlanVersion.XPLAN_SYN;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class ValidatorWmsManager {
 
 	private static final Logger LOG = LoggerFactory.getLogger(ValidatorWmsManager.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java
index 9be7fb4fa29ab1f5f156413f68327f2adb02ee51..f82978dab8db01ba7cbf1632c43a4fc440507ce1 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsContext.java
@@ -34,9 +34,11 @@ import org.springframework.context.annotation.Import;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Import({ ValidatorWmsWorkspaceContext.class, ValidatorWmsSqlContext.class })
+@Deprecated
 public class ValidatorWmsContext {
 
 	private static final Logger LOG = LoggerFactory.getLogger(ValidatorWmsContext.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsSqlContext.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsSqlContext.java
index 430705ad9b140dba190a21638073244f15a93a63..521b4f89796afcb623ef477fe0853ea191cd0d07 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsSqlContext.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsSqlContext.java
@@ -35,10 +35,12 @@ import org.springframework.context.annotation.Profile;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Profile("validatorwmssql")
 @Import({ JobContext.class, SqlJobContext.class })
+@Deprecated
 public class ValidatorWmsSqlContext {
 
 	private static final Logger LOG = LoggerFactory.getLogger(ValidatorWmsSqlContext.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsWorkspaceContext.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsWorkspaceContext.java
index 9289293dd36b6de248dd20fee4747846e416ee91..25660c6467d49dc4977e6c25c640e5ba9c95e218 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsWorkspaceContext.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/config/ValidatorWmsWorkspaceContext.java
@@ -35,9 +35,11 @@ import java.nio.file.Paths;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
 @Configuration
 @Profile("validatorwmsmemory")
+@Deprecated
 public class ValidatorWmsWorkspaceContext {
 
 	private static final Logger LOG = LoggerFactory.getLogger(ValidatorWmsWorkspaceContext.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/PlanStorage.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/PlanStorage.java
index 8e6fccaf1c27943cee094d8e9b57a2e17f24be06..2ade4c67941395ad479bae62efd8ade9ca09a474 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/PlanStorage.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/PlanStorage.java
@@ -25,7 +25,9 @@ import org.deegree.feature.FeatureCollection;
 
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public interface PlanStorage {
 
 	/**
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/SqlPlanStorage.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/SqlPlanStorage.java
index 0d487e8f2b962be1204f5719789677ea1123f717..2a0b1af41d04bf0a902ae5279f387f9948a487e2 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/SqlPlanStorage.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/SqlPlanStorage.java
@@ -44,7 +44,9 @@ import java.util.List;
  * using the deegree SQLFeatureStore in xplan-valdiator-workspace.
  *
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class SqlPlanStorage implements PlanStorage {
 
 	private static final Logger LOG = LoggerFactory.getLogger(SqlPlanStorage.class);
diff --git a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/WorkspacePlanStorage.java b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/WorkspacePlanStorage.java
index a5d7c6c9f81f8318f5c84c60ad798d723fdc72bf..d2576fc1824d5cd926e8ed7eb2dc0d585cad8d2b 100644
--- a/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/WorkspacePlanStorage.java
+++ b/xplan-core/xplan-core-validator/src/main/java/de/latlon/xplan/validator/wms/storage/WorkspacePlanStorage.java
@@ -51,7 +51,9 @@ import static org.deegree.gml.GMLVersion.GML_32;
  * directory in the workspace directory.
  *
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
+ * @deprecated XPlanValidatorWMS is deprecated and will be removed in a future version
  */
+@Deprecated
 public class WorkspacePlanStorage implements PlanStorage {
 
 	private static final Logger LOG = LoggerFactory.getLogger(WorkspacePlanStorage.class);
diff --git a/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties b/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
index 66295be1436a15745876e3b842c93c8122ad591c..44f45d8eb38110d9a06961858e55ff1f7c4c3679 100644
--- a/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
+++ b/xplan-core/xplan-core-validator/src/main/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
@@ -22,10 +22,11 @@
 # Default: tmp-Verzeichnis
 validationReportDirectory=
 
-# Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen.
+# Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen.
 # Default: Der interne Regelsatz wird verwendet
 validationRulesDirectory=
 
-# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau
-# Default: keine URL, die Kartenvorschau ist nicht verfügbar
+# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau
+# Default: keine URL, die Kartenvorschau ist nicht verfügbar
+# XPlanValidatorWMS is deprecated and will be removed in a future version
 validatorWmsEndpoint=
diff --git a/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties b/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
index a0ffd719ea23b69fd0faf9450a05feabba106c9b..339fd3c500843ba1b9b2b181c54720b0834a553e 100644
--- a/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
+++ b/xplan-core/xplan-core-validator/src/test/resources/de/latlon/xplan/validator/configuration/validatorConfiguration.properties
@@ -22,10 +22,11 @@
 # Default: tmp-Verzeichnis
 validationReportDirectory=/home/xplanbox/file/configuration/report/
 
-# Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen.
+# Verzeichnis in dem die semantischen Validierungsregel liegen, die für die Validierung verwendet werden sollen.
 # Default: Der interne Regelsatz wird verwendet
 validationRulesDirectory=
 
-# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau
-# Default: keine URL, die Kartenvorschau ist nicht verfügbar
+# URL des XPlanValidatorWMS Endpunkts für die Anzeige der Kartenvorschau
+# Default: keine URL, die Kartenvorschau ist nicht verfügbar
+# XPlanValidatorWMS is deprecated and will be removed in a future version
 validatorWmsEndpoint=
diff --git a/xplan-docker/xplan-docker-volume-init/setupVolumes.sh b/xplan-docker/xplan-docker-volume-init/setupVolumes.sh
index 990f128fa15fe56f05c335bb5c544adbbfff53e1..8951de68c448238d2eebfa06dd610d158234d08a 100755
--- a/xplan-docker/xplan-docker-volume-init/setupVolumes.sh
+++ b/xplan-docker/xplan-docker-volume-init/setupVolumes.sh
@@ -88,7 +88,6 @@ XPLAN_SERVICES_WMS_MAXWIDTH="${XPLAN_SERVICES_WMS_MAXWIDTH:-3840}"
 XPLAN_SERVICES_WMS_MAXHEIGHT="${XPLAN_SERVICES_WMS_MAXHEIGHT:-2160}"
 XPLAN_SERVICES_METADATA_URL="${XPLAN_SERVICES_METADATA_URL}"
 
-XPLAN_INIT_RASTERTYPE="${XPLAN_INIT_RASTERTYPE:-mapserver}"
 XPLAN_INIT_INSPIREPLU="${XPLAN_INIT_INSPIREPLU:-disabled}"
 
 XPLAN_S3_PUBLIC_URL="${XPLAN_S3_PUBLIC_URL}"
@@ -193,13 +192,9 @@ find xplan-workspaces/xplan-services-wfs-syn-workspace/services -iname xplansynw
 echo $XPLAN_SERVICES_API_KEY >> xplan-workspaces/config.apikey
 
 # Rastertype
-echo "[$(date -Iseconds)] Configured rastertype: $XPLAN_INIT_RASTERTYPE"
-if [ $XPLAN_INIT_RASTERTYPE = "geotiff" ]
+if [[ -z "${spring_profiles_active##*mapserver*}" ]]
 then
-  echo "[$(date -Iseconds)] Configure rastertype geotiff"
-else
   echo "[$(date -Iseconds)] Configure rastertype mapserver"
-  sed -i 's/rasterConfigurationType=geotiff/rasterConfigurationType=mapserver/g' xplan-manager-config/managerConfiguration.properties
   mv xplan-workspaces/xplan-services-wms-workspace/layers/mapserver.ignore xplan-workspaces/xplan-services-wms-workspace/layers/mapserver.xml
   mv xplan-workspaces/xplan-services-wms-workspace/datasources/remoteows/mapserver.ignore xplan-workspaces/xplan-services-wms-workspace/datasources/remoteows/mapserver.xml
   find xplan-workspaces/xplan-services-wms-workspace/themes -iname *raster.xml -exec sed -i 's/<!--<LayerStoreId>mapserver/<LayerStoreId>mapserver/g' {} \;
@@ -209,6 +204,8 @@ else
   find xplan-workspaces/xplan-services-wms-workspace/themes -iname *raster.xml -exec sed -i 's/_rasterpre<\/Layer>-->/_rasterpre<\/Layer>/g' {} \;
   find xplan-workspaces/xplan-services-wms-workspace/themes -iname *raster.xml -exec sed -i 's/_raster<\/Layer>-->/_raster<\/Layer>/g' {} \;
   sed -i 's|http://localhost:8080/mapserver|'$XPLAN_MAPSERVER_URL_INTERNAL'/mapserver|g' xplan-workspaces/xplan-services-wms-workspace/datasources/remoteows/mapserver.xml
+else
+  echo "[$(date -Iseconds)] Configure rastertype geotiff"
 fi
 
 sed -i 's|validatorWmsEndpoint=|validatorWmsEndpoint='$XPLAN_VALIDATORWMS_URL_PUBLIC'\/xplan-validator-wms\/services\/wms|g' xplan-validator-config/validatorConfiguration.properties
diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc
index 9d902e7d45f765ffea05ed05011eb7625a746192..44577735ceabfbfd86a3dd095ec4df988edf2108 100644
--- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc
+++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/architektur.adoc
@@ -10,7 +10,7 @@ Das Gesamtsystem setzt sich aus folgenden Komponenten zusammen:
 
 * <<xplanmanager-web, XPlanManagerWeb>>
 * <<xplanmanager-api, XPlanManagerAPI>>
-* <<xplanvalidator-web, XPlanValidatorWeb>> inkl. <<xplanvalidator-wms, XPlanValidatorWMS>>
+* <<xplanvalidator-web, XPlanValidatorWeb>> inkl. <<xplanvalidator-wms, XPlanValidatorWMS>> (veraltet)
 * <<xplanvalidator-api, XPlanValidatorAPI>>
 * <<xplandokumente-api, XPlanDokumenteAPI>>
 * <<xplanwms, XPlanWMS, XPlanArtWMS und XPlanWerkWMS>>
@@ -53,6 +53,8 @@ XPlanGML-Dokumente über den Browser zu validieren.
 Bei der Komponente XPlanValidatorWMS handelt es sich um eine Subkomponente
 des XPlanValidatorWeb. Validierte Plänen können über den XPlanValidatorWMS in der Kartenvorschau angezeigt werden, ohne das ein Plan in die Datenhaltung importiert wird. Dieser Dienst kann ohne persistente Datenhaltung betrieben werden.
 
+IMPORTANT: Der XPlanValidatorWMS ist veraltet und wird in zukünftigen Versionen der xPlanBox entfernt!
+
 [[xplanvalidator-api]]
 === XPlanValidatorAPI
 
diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/geotiff.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/geotiff.adoc
index 782c4123a42991c8b4f63e7228fe8626f10c695a..746ee05d381ecda7c5e43ad3cd387747c53f81d2 100644
--- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/geotiff.adoc
+++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/geotiff.adoc
@@ -1,13 +1,7 @@
 [[konfiguration-manager-geotiff]]
 === GeoTIFF
 
-Damit beim Import von Rasterdaten eine Konfiguration für den XPlanWMS erzeugt wird,
-muss in der Datei _<XPLANBOX_CONFIG>/managerConfiguration.properties_ die folgende Option aktiviert sein:
-
-[source,properties]
-----
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=geotiff
-----
+Standardmäßig wird beim Import von Rasterdaten eine Konfiguration für den XPlanWMS erzeugt (Konfigurationstyp _geotiff_).
 
 Die Konfiguration des XPlanWMS ist im Abschnitt <<konfiguration-xplanwms-geotiff>> beschrieben. Wird der Konfigurationstyp _geotiff_ verwendet, dann wird zusätzlich noch die Konfiguration des <<automatischer-workspace-reload,automatischen Workspace-Reload>> empfohlen.
+Alternativ kann der MapServer für die Bereitstellung von Rasterdaten konfiguriert werden, dies ist im Abschnitt <<konfiguration-xplanwms-mapserver>> beschrieben.
diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/mapserver.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/mapserver.adoc
index 74205e7c88e9cc754692eb7facc7ba1524e4e733..2329dbbbdd42fe62447d5cb1e98db4f03f915e76 100644
--- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/mapserver.adoc
+++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/manager/mapserver.adoc
@@ -1,13 +1,10 @@
 [[konfiguration-manager-mapserver]]
 === MapServer
 
-Damit beim Import von Rasterdaten eine Konfiguration für den MapServer erzeugt wird,
-muss in der Datei _<XPLANBOX_CONFIG>/managerConfiguration.properties_ die folgende Option aktiviert sein:
+Damit beim Import von Rasterdaten eine Konfiguration für den MapServer erzeugt wird, muss das Spring-Profil `mapserver` für die Komponenten aktiviert werden.
+
+Die Konfiguration des XPlanWMS mit MapServer ist im Abschnitt <<konfiguration-xplanwms-mapserver>> beschrieben. Wenn der MapServer zusammen mit einem S3-Objektspeicher verwendet werden soll, dann ist zusätzlich noch die Konfiguration aus Abschnitt <<s3-storage>> erforderlich. Andernfalls ist die Konfiguration eines Verzeichnis im Dateisystem erforderlich, in dem die Rasterdaten abgelegt werden. Dazu muss folgende Umgebungsvariable gesetzt sein:
 
-[source,properties]
 ----
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=mapserver
+XPLAN_MAPSERVER_DATA_DIR=/pfad/zu/verzeichnis
 ----
-
-Die Konfiguration des XPlanWMS mit MapServer ist im Abschnitt <<konfiguration-xplanwms-mapserver>> beschrieben. Wenn der MapServer zusammen mit einem S3-Objektspeicher verwendet werden soll, dann ist zusätzlich noch die Konfiguration aus Abschnitt <<s3-storage>> erforderlich.
diff --git a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/validator/kartenvorschau.adoc b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/validator/kartenvorschau.adoc
index 288bbd85687f91f55f2c9c1b8083051e47509e24..ed5ca2317349ec9487f826a077ed379b0e5509fd 100644
--- a/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/validator/kartenvorschau.adoc
+++ b/xplan-documentation/xplan-betriebshandbuch/src/main/asciidoc/konfiguration/validator/kartenvorschau.adoc
@@ -29,6 +29,8 @@ jar uf xplan-validator-web.war masterportal/template/services-internet.template.
 
 NOTE: Die Zeilen mit den Angaben für `${SERVICESCONFIG}`, `id` und `name` dürfen nicht angepasst werden!
 
+IMPORTANT: Der XPlanValidatorWMS ist veraltet und wird in zukünftigen Versionen der xPlanBox entfernt!
+
 [[konfiguration-xplanvalidatorwms]]
 ==== Konfiguration des XPlanValidatorWMS
 
diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java
index eb9f3a7d0799fadd1db4edd3fc5438ffcc853ea7..377acfc353160b1ab4d6176419cb925591d2d86a 100644
--- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java
+++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/config/ApplicationContext.java
@@ -8,18 +8,28 @@
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
  */
 package de.latlon.xplanbox.api.manager.config;
 
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.configuration.PropertiesLoader;
 import de.latlon.xplan.commons.configuration.SortConfiguration;
@@ -40,7 +50,6 @@ import de.latlon.xplan.manager.export.XPlanExporter;
 import de.latlon.xplan.manager.metadata.DataServiceCouplingException;
 import de.latlon.xplan.manager.metadata.MetadataCouplingHandler;
 import de.latlon.xplan.manager.storage.StorageCleanUpManager;
-import de.latlon.xplan.manager.storage.config.StorageCleanUpContext;
 import de.latlon.xplan.manager.storage.filesystem.DeegreeRasterCacheCleaner;
 import de.latlon.xplan.manager.synthesizer.XPlanSynthesizer;
 import de.latlon.xplan.manager.synthesizer.rules.SynRulesAccessor;
@@ -53,7 +62,8 @@ import de.latlon.xplan.manager.transaction.service.XPlanEditService;
 import de.latlon.xplan.manager.transaction.service.XPlanInsertService;
 import de.latlon.xplan.manager.web.shared.ConfigurationException;
 import de.latlon.xplan.manager.wmsconfig.WmsWorkspaceWrapper;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.GeotiffRasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.XPlanRasterManager;
 import de.latlon.xplan.manager.wmsconfig.raster.config.RasterConfigManager;
 import de.latlon.xplan.manager.wmsconfig.raster.evaluation.RasterEvaluation;
@@ -88,18 +98,9 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.ComponentScan;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
+import org.springframework.context.annotation.Profile;
 import org.springframework.core.io.ResourceLoader;
 
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
-
 /**
  * Spring Application Context for initialising XPlanManagerAPI components.
  *
@@ -108,8 +109,8 @@ import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_
  */
 @Configuration
 @ComponentScan(basePackages = { "de.latlon.xplanbox.api.manager.handler" })
-@Import({ SecurityContext.class, JpaContext.class, RasterStorageContext.class, AmazonS3RasterStorageContext.class,
-		DocumentStorageContext.class, StorageCleanUpContext.class })
+@Import({ SecurityContext.class, JpaContext.class, GeotiffRasterStorageContext.class,
+		MapserverRasterStorageContext.class, AmazonS3RasterStorageContext.class, DocumentStorageContext.class })
 public class ApplicationContext {
 
 	@Autowired
@@ -188,9 +189,11 @@ public class ApplicationContext {
 	}
 
 	@Bean
-	public WmsWorkspaceWrapper wmsWorkspaceWrapper() throws WorkspaceException {
+	@Profile("!mapserver")
+	public WmsWorkspaceWrapper wmsWorkspaceWrapper(ManagerConfiguration managerConfiguration)
+			throws WorkspaceException, de.latlon.xplan.manager.configuration.ConfigurationException {
 		DeegreeWorkspaceWrapper wmsWorkspace = new DeegreeWorkspaceWrapper(DEFAULT_XPLANSYN_WMS_WORKSPACE);
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 	@Bean
@@ -206,13 +209,12 @@ public class ApplicationContext {
 
 	@Bean
 	public XPlanManager xPlanManager(XPlanManagerDao xPlanManagerDao, XPlanArchiveCreator archiveCreator,
-			ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			XPlanExporter xPlanExporter, XPlanRasterEvaluator xPlanRasterEvaluator,
-			XPlanRasterManager xPlanRasterManager, SortPropertyReader sortPropertyReader,
-			XPlanInsertManager xPlanInsertManager, XPlanEditManager xPlanEditManager,
-			XPlanDeleteManager xPlanDeleteManager) throws Exception {
-		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, wmsWorkspaceWrapper,
-				xPlanExporter, xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager,
+			ManagerConfiguration managerConfiguration, XPlanExporter xPlanExporter,
+			XPlanRasterEvaluator xPlanRasterEvaluator, XPlanRasterManager xPlanRasterManager,
+			SortPropertyReader sortPropertyReader, XPlanInsertManager xPlanInsertManager,
+			XPlanEditManager xPlanEditManager, XPlanDeleteManager xPlanDeleteManager) throws Exception {
+		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, xPlanExporter,
+				xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager,
 				xPlanEditManager, xPlanDeleteManager);
 	}
 
diff --git a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/ConfigHandler.java b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/ConfigHandler.java
index 2b43476d8d3574aa058c9042da5ab6d1f9dd7110..75ad85a65458906092c8e785fd07a88e8ea3ea1d 100644
--- a/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/ConfigHandler.java
+++ b/xplan-manager/xplan-manager-api/src/main/java/de/latlon/xplanbox/api/manager/handler/ConfigHandler.java
@@ -20,21 +20,22 @@
  */
 package de.latlon.xplanbox.api.manager.handler;
 
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.io.IOException;
+import java.util.Arrays;
+
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
-import de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource;
 import de.latlon.xplanbox.api.commons.handler.SystemConfigHandler;
 import de.latlon.xplanbox.api.manager.config.DefaultValidationConfiguration;
 import de.latlon.xplanbox.api.manager.config.ManagerApiConfiguration;
 import de.latlon.xplanbox.api.manager.v1.model.ManagerSystemConfig;
+import jakarta.inject.Singleton;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
 import org.springframework.stereotype.Component;
 
-import jakarta.inject.Singleton;
-import java.io.IOException;
-
-import static org.slf4j.LoggerFactory.getLogger;
-
 /**
  * @author <a href="mailto:goltz@lat-lon.de">Lyn Goltz </a>
  */
@@ -53,10 +54,21 @@ public class ConfigHandler {
 	@Autowired
 	private ManagerApiConfiguration managerApiConfiguration;
 
+	@Autowired
+	private Environment env;
+
+	private enum RasterConfigurationSource {
+
+		geotiff, mapserver
+
+	}
+
 	public ManagerSystemConfig describeManagerSystem() throws IOException {
 		LOG.debug("Generating manager config information");
 		String rasterCrs = managerConfiguration.getRasterConfigurationCrs();
-		RasterConfigurationSource rasterType = managerConfiguration.getRasterConfigurationType();
+		RasterConfigurationSource rasterType = Arrays.stream(env.getActiveProfiles())
+			.anyMatch(p -> RasterConfigurationSource.mapserver.name().equals(p)) ? RasterConfigurationSource.mapserver
+					: RasterConfigurationSource.geotiff;
 		DefaultValidationConfiguration defaultValidationConfiguration = managerApiConfiguration
 			.getDefaultValidationConfiguration();
 
diff --git a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/config/TestContext.java b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/config/TestContext.java
index 3efc856ec5091cbbb5b6570fb421a8c21c6391ae..3f01e71968b45db13f6d48f148bacf711548b649 100644
--- a/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/config/TestContext.java
+++ b/xplan-manager/xplan-manager-api/src/test/java/de/latlon/xplanbox/api/manager/config/TestContext.java
@@ -20,11 +20,39 @@
  */
 package de.latlon.xplanbox.api.manager.config;
 
+import static de.latlon.xplan.commons.XPlanVersion.XPLAN_41;
+import static de.latlon.xplan.commons.XPlanVersion.XPLAN_51;
+import static de.latlon.xplan.manager.web.shared.PlanStatus.FESTGESTELLT;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
+import static org.mockito.ArgumentMatchers.nullable;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+import static org.slf4j.LoggerFactory.getLogger;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.sql.Connection;
+import java.sql.DatabaseMetaData;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
 import de.latlon.xplan.commons.XPlanSchemas;
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.configuration.SortConfiguration;
 import de.latlon.xplan.commons.feature.SortPropertyReader;
 import de.latlon.xplan.manager.XPlanManager;
+import de.latlon.xplan.manager.configuration.ConfigurationException;
 import de.latlon.xplan.manager.configuration.ManagerConfiguration;
 import de.latlon.xplan.manager.database.ManagerWorkspaceWrapper;
 import de.latlon.xplan.manager.database.PlanNotFoundException;
@@ -55,6 +83,7 @@ import de.latlon.xplanbox.api.manager.v1.DefaultApi;
 import de.latlon.xplanbox.api.manager.v1.InfoApi;
 import de.latlon.xplanbox.api.manager.v1.PlanApi;
 import de.latlon.xplanbox.api.manager.v1.PlansApi;
+import jakarta.annotation.PostConstruct;
 import org.deegree.commons.config.DeegreeWorkspace;
 import org.deegree.feature.persistence.FeatureStore;
 import org.glassfish.jersey.server.ResourceConfig;
@@ -70,35 +99,6 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Primary;
 import org.springframework.context.annotation.Profile;
 
-import jakarta.annotation.PostConstruct;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
-import java.sql.Connection;
-import java.sql.DatabaseMetaData;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import static de.latlon.xplan.commons.XPlanVersion.XPLAN_41;
-import static de.latlon.xplan.commons.XPlanVersion.XPLAN_51;
-import static de.latlon.xplan.manager.web.shared.PlanStatus.FESTGESTELLT;
-import static de.latlon.xplan.manager.wmsconfig.raster.RasterConfigurationSource.geotiff;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyBoolean;
-import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.ArgumentMatchers.nullable;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
-import static org.slf4j.LoggerFactory.getLogger;
-
 /**
  * Creates mock objects for XPlanManager and underlying objects for in-memory unit tests.
  * Indented to register the JAX-RS resources within Spring Application Context. Resources
@@ -129,14 +129,12 @@ public class TestContext {
 
 	@Bean
 	public XPlanManager xPlanManager(XPlanDao xPlanDao, XPlanArchiveCreator archiveCreator,
-			ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			XPlanExporter xPlanExporter, XPlanRasterEvaluator xPlanRasterEvaluator,
-			XPlanRasterManager xPlanRasterManager, SortPropertyReader sortPropertyReader,
-			XPlanInsertManager xPlanInsertManager, XPlanEditManager xPlanEditManager,
-			XPlanDeleteManager xPlanDeleteManager) throws Exception {
-		return new XPlanManager(xPlanDao, archiveCreator, managerConfiguration, wmsWorkspaceWrapper, xPlanExporter,
-				xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager,
-				xPlanEditManager, xPlanDeleteManager);
+			ManagerConfiguration managerConfiguration, XPlanExporter xPlanExporter,
+			XPlanRasterEvaluator xPlanRasterEvaluator, XPlanRasterManager xPlanRasterManager,
+			SortPropertyReader sortPropertyReader, XPlanInsertManager xPlanInsertManager,
+			XPlanEditManager xPlanEditManager, XPlanDeleteManager xPlanDeleteManager) throws Exception {
+		return new XPlanManager(xPlanDao, archiveCreator, managerConfiguration, xPlanExporter, xPlanRasterEvaluator,
+				xPlanRasterManager, sortPropertyReader, null, xPlanInsertManager, xPlanEditManager, xPlanDeleteManager);
 	}
 
 	@Bean
@@ -248,14 +246,15 @@ public class TestContext {
 
 	@Bean
 	@Primary
-	public WmsWorkspaceWrapper wmsWorkspaceWrapper() throws WorkspaceException, IOException, URISyntaxException {
+	public WmsWorkspaceWrapper wmsWorkspaceWrapper(ManagerConfiguration managerConfiguration)
+			throws WorkspaceException, IOException, URISyntaxException, ConfigurationException {
 		DeegreeWorkspace deegreeWorkspace = mock(DeegreeWorkspace.class);
 		DeegreeWorkspaceWrapper wmsWorkspace = mock(DeegreeWorkspaceWrapper.class);
 		when(wmsWorkspace.getWorkspaceInstance()).thenReturn(deegreeWorkspace);
 		Path tempWorkspaceDir = Files.createTempDirectory("xplan-api-manager");
 		initWorkspace(tempWorkspaceDir);
 		when(deegreeWorkspace.getLocation()).thenReturn(tempWorkspaceDir.toFile());
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 	private void initWorkspace(Path dir) throws IOException, URISyntaxException {
@@ -338,7 +337,6 @@ public class TestContext {
 	@Primary
 	public ManagerConfiguration managerConfiguration() {
 		ManagerConfiguration mockedConfiguration = mock(ManagerConfiguration.class);
-		when(mockedConfiguration.getRasterConfigurationType()).thenReturn(geotiff);
 		when(mockedConfiguration.getRasterConfigurationCrs()).thenReturn("EPSG:25832");
 		when(mockedConfiguration.getSortConfiguration()).thenReturn(new SortConfiguration());
 		return mockedConfiguration;
diff --git a/xplan-manager/xplan-manager-config/src/main/filter/filter-default.properties b/xplan-manager/xplan-manager-config/src/main/filter/filter-default.properties
index 8345d237f5a686c073a577dcbd7b8de7f5fe7cfa..27df37fe7c1704b25cb35a57f2bd47a3922d42cb 100644
--- a/xplan-manager/xplan-manager-config/src/main/filter/filter-default.properties
+++ b/xplan-manager/xplan-manager-config/src/main/filter/filter-default.properties
@@ -23,8 +23,6 @@
 rasterConfigurationCrs=EPSG:25832
 rasterLayerVisisbilityMinScaleDenominator=
 rasterLayerVisisbilityMaxScaleDenominator=
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=geotiff
 
 #workspace reloader configuration
 workspaceReloadUrls=
diff --git a/xplan-manager/xplan-manager-config/src/main/resources/managerConfiguration.properties b/xplan-manager/xplan-manager-config/src/main/resources/managerConfiguration.properties
index 4d79fcae664f2d01996cf7e16262d63937681986..d82213c4c7812e8e789b82fb4db93088362e7255 100644
--- a/xplan-manager/xplan-manager-config/src/main/resources/managerConfiguration.properties
+++ b/xplan-manager/xplan-manager-config/src/main/resources/managerConfiguration.properties
@@ -23,8 +23,6 @@
 rasterConfigurationCrs=${rasterConfigurationCrs}
 rasterLayerMinScaleDenominator=${rasterLayerVisisbilityMinScaleDenominator}
 rasterLayerMaxScaleDenominator=${rasterLayerVisisbilityMaxScaleDenominator}
-# must be geotiff or mapserver, default is geotiff
-rasterConfigurationType=${rasterConfigurationType}
 
 # workspace reloader configuration, workspaceReloadAction must be one of ALL (default), RELOAD, PLANWERKWMS
 # workspaceReloadUser and workspaceReloadPassword are deprecated! Use workspaceReloadApiKey instead.
diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/BasicSpringConfig.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/BasicSpringConfig.java
index 955adbbcd6531fca94c801940733238e47ce0c88..cac7f2fb2814f494915921d9f902970a68f8cdda 100644
--- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/BasicSpringConfig.java
+++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/BasicSpringConfig.java
@@ -20,6 +20,18 @@
  */
 package de.latlon.xplan.manager.web.spring.config;
 
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLAN_MANAGER_WORKSPACE;
+import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
+
+import java.io.IOException;
+import java.nio.file.Path;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
+
 import de.latlon.xplan.commons.archive.XPlanArchiveCreator;
 import de.latlon.xplan.commons.configuration.PropertiesLoader;
 import de.latlon.xplan.commons.configuration.SortConfiguration;
@@ -85,20 +97,9 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Profile;
 import org.springframework.core.io.ResourceLoader;
 
-import java.io.IOException;
-import java.nio.file.Path;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLANSYN_WMS_WORKSPACE;
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.DEFAULT_XPLAN_MANAGER_WORKSPACE;
-import static de.latlon.xplan.manager.workspace.WorkspaceUtils.instantiateWorkspace;
-
 /**
  * Spring Application Context for initialising XPlanManagerWeb components.
  *
@@ -186,9 +187,11 @@ public class BasicSpringConfig {
 	}
 
 	@Bean
-	public WmsWorkspaceWrapper wmsWorkspaceWrapper() throws WorkspaceException {
+	@Profile("!mapserver")
+	public WmsWorkspaceWrapper wmsWorkspaceWrapper(ManagerConfiguration managerConfiguration)
+			throws WorkspaceException, de.latlon.xplan.manager.configuration.ConfigurationException {
 		DeegreeWorkspaceWrapper wmsWorkspace = new DeegreeWorkspaceWrapper(DEFAULT_XPLANSYN_WMS_WORKSPACE);
-		return new WmsWorkspaceWrapper(wmsWorkspace.getWorkspaceInstance());
+		return new WmsWorkspaceWrapper(managerConfiguration, wmsWorkspace.getWorkspaceInstance());
 	}
 
 	@Bean
@@ -204,14 +207,14 @@ public class BasicSpringConfig {
 
 	@Bean
 	public XPlanManager xPlanManager(XPlanManagerDao xPlanManagerDao, XPlanArchiveCreator archiveCreator,
-			ManagerConfiguration managerConfiguration, WmsWorkspaceWrapper wmsWorkspaceWrapper,
-			XPlanExporter xPlanExporter, XPlanRasterEvaluator xPlanRasterEvaluator,
-			XPlanRasterManager xPlanRasterManager, SortPropertyReader sortPropertyReader,
-			Optional<InspirePluPublisher> inspirePluPublisher, XPlanInsertManager xPlanInsertManager,
-			XPlanEditManager xPlanEditManager, XPlanDeleteManager xPlanDeleteManager) throws Exception {
-		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, wmsWorkspaceWrapper,
-				xPlanExporter, xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader,
-				inspirePluPublisher.orElse(null), xPlanInsertManager, xPlanEditManager, xPlanDeleteManager);
+			ManagerConfiguration managerConfiguration, XPlanExporter xPlanExporter,
+			XPlanRasterEvaluator xPlanRasterEvaluator, XPlanRasterManager xPlanRasterManager,
+			SortPropertyReader sortPropertyReader, Optional<InspirePluPublisher> inspirePluPublisher,
+			XPlanInsertManager xPlanInsertManager, XPlanEditManager xPlanEditManager,
+			XPlanDeleteManager xPlanDeleteManager) throws Exception {
+		return new XPlanManager(xPlanManagerDao, archiveCreator, managerConfiguration, xPlanExporter,
+				xPlanRasterEvaluator, xPlanRasterManager, sortPropertyReader, inspirePluPublisher.orElse(null),
+				xPlanInsertManager, xPlanEditManager, xPlanDeleteManager);
 	}
 
 	@Bean
diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfig.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfig.java
index 1f1c4fb830801de106310eb7c5bc8b8bc2ed14ed..806743369a3b5c323e4e28b9f620ad26fb02fb12 100644
--- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfig.java
+++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfig.java
@@ -8,12 +8,12 @@
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
@@ -22,9 +22,9 @@ package de.latlon.xplan.manager.web.spring.config;
 
 import de.latlon.xplan.core.manager.db.config.JpaContext;
 import de.latlon.xplan.manager.document.config.DocumentStorageContext;
-import de.latlon.xplan.manager.storage.config.StorageCleanUpContext;
 import de.latlon.xplan.manager.web.server.service.security.AuthorizationManager;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.GeotiffRasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.s3.config.AmazonS3RasterStorageContext;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
@@ -37,8 +37,8 @@ import org.springframework.context.annotation.Import;
  * @version $Revision: $, $Date: $
  */
 @Configuration
-@Import({ BasicSpringConfig.class, JpaContext.class, RasterStorageContext.class, AmazonS3RasterStorageContext.class,
-		DocumentStorageContext.class, StorageCleanUpContext.class })
+@Import({ BasicSpringConfig.class, JpaContext.class, GeotiffRasterStorageContext.class,
+		MapserverRasterStorageContext.class, AmazonS3RasterStorageContext.class, DocumentStorageContext.class })
 public class ManagerWebSpringConfig {
 
 	@Bean
diff --git a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfigWithSimpleSecurity.java b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfigWithSimpleSecurity.java
index bcfc02d77991ee2320497acfeece5df6b50109c6..37fd353414f214a0555c2e55eb85cfae621067bf 100644
--- a/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfigWithSimpleSecurity.java
+++ b/xplan-manager/xplan-manager-web/src/main/java/de/latlon/xplan/manager/web/spring/config/ManagerWebSpringConfigWithSimpleSecurity.java
@@ -8,12 +8,12 @@
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
- * 
+ *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
@@ -22,8 +22,8 @@ package de.latlon.xplan.manager.web.spring.config;
 
 import de.latlon.xplan.core.manager.db.config.JpaContext;
 import de.latlon.xplan.manager.document.config.DocumentStorageContext;
-import de.latlon.xplan.manager.storage.config.StorageCleanUpContext;
-import de.latlon.xplan.manager.wmsconfig.config.RasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.GeotiffRasterStorageContext;
+import de.latlon.xplan.manager.wmsconfig.config.MapserverRasterStorageContext;
 import de.latlon.xplan.manager.wmsconfig.raster.storage.s3.config.AmazonS3RasterStorageContext;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
@@ -37,8 +37,8 @@ import org.springframework.context.annotation.ImportResource;
  * @version $Revision: $, $Date: $
  */
 @Configuration
-@Import({ BasicSpringConfig.class, JpaContext.class, RasterStorageContext.class, AmazonS3RasterStorageContext.class,
-		DocumentStorageContext.class, StorageCleanUpContext.class })
+@Import({ BasicSpringConfig.class, JpaContext.class, GeotiffRasterStorageContext.class,
+		MapserverRasterStorageContext.class, AmazonS3RasterStorageContext.class, DocumentStorageContext.class })
 @ImportResource("classpath:/de/latlon/xplan/manager/web/spring/security-simple.xml")
 public class ManagerWebSpringConfigWithSimpleSecurity {
 
diff --git a/xplan-webservices/xplan-webservices-validator-wms/pom.xml b/xplan-webservices/xplan-webservices-validator-wms/pom.xml
index 9fce6e12e826a48694966dd8e38c14d2530d1455..be04daa1e90cc8e4d7786c64d5cbbb8e47128d6c 100644
--- a/xplan-webservices/xplan-webservices-validator-wms/pom.xml
+++ b/xplan-webservices/xplan-webservices-validator-wms/pom.xml
@@ -4,6 +4,7 @@
   <artifactId>xplan-webservices-validator-wms</artifactId>
   <packaging>war</packaging>
   <description>XPlanValidatorWMS</description>
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
 
   <parent>
     <groupId>de.latlon.product.xplanbox</groupId>
diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-memory-workspace.xml b/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-memory-workspace.xml
index 88ded7289da7278aa78cf84008c748503b060c96..3d4d3f936941f707ba211a4a42e735e8b54a08d3 100644
--- a/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-memory-workspace.xml
+++ b/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-memory-workspace.xml
@@ -20,6 +20,7 @@
   -->
 <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">
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
   <id>xplan-webservices-validator-wms-memory-workspace</id>
   <formats>
     <format>zip</format>
diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-sql-workspace.xml b/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-sql-workspace.xml
index e983364c97bcf02ce84f93a0875beb080ffcb87e..61fa692f6c7b94eeb6bedb169ac876f49800ba1c 100644
--- a/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-sql-workspace.xml
+++ b/xplan-webservices/xplan-webservices-workspaces/src/main/assembly/xplan-webservices-validator-wms-sql-workspace.xml
@@ -20,6 +20,7 @@
   -->
 <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">
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
   <id>xplan-webservices-validator-wms-sql-workspace</id>
   <formats>
     <format>zip</format>
diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/datasources/feature/validator-wms/memory/xplansyn.xml b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/datasources/feature/validator-wms/memory/xplansyn.xml
index 6fdeae9e582005680bda457e434ebbb63735b240..ae394c455bc3541bd036f330dc0ba7db891be65c 100644
--- a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/datasources/feature/validator-wms/memory/xplansyn.xml
+++ b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/datasources/feature/validator-wms/memory/xplansyn.xml
@@ -22,6 +22,7 @@
                     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                     xsi:schemaLocation="http://www.deegree.org/datasource/feature/memory
   https://schemas.deegree.org/core/3.5/datasource/feature/memory/memory.xsd">
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
   <StorageCRS>EPSG:25832</StorageCRS>
   <GMLSchema version="GML_32">../../appschemas/XPlanGML_Syn/XPlanSyn.xsd</GMLSchema>
 
diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms.xml b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms.xml
index aabe062834d57449eced46ed5ffd8e23d325dc9e..a49964236aec0bb88be2221d429c5d3500668490 100644
--- a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms.xml
+++ b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms.xml
@@ -21,7 +21,7 @@
 <wms:deegreeWMS xmlns:wms="http://www.deegree.org/services/wms"
                 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                 xsi:schemaLocation="http://www.deegree.org/services/wms https://schemas.deegree.org/core/3.5/services/wms/wms_configuration.xsd">
-
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
   <wms:ServiceConfiguration>
     <wms:DefaultLayerOptions>
       <wms:FeatureInfoRadius>10</wms:FeatureInfoRadius>
diff --git a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms_metadata.xml b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms_metadata.xml
index b07bbf33883a9bbe0b4e017bc14bc86c83b3e238..00230f183a474bdcdedd1e0540dd2d0531604e55 100644
--- a/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms_metadata.xml
+++ b/xplan-webservices/xplan-webservices-workspaces/src/main/workspace/services/validator-wms/wms_metadata.xml
@@ -23,6 +23,7 @@
 <deegreeServicesMetadata xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                          xmlns:inspire_vs="http://inspire.europa.eu/networkservice/view/1.0"
                          xsi:schemaLocation="http://www.deegree.org/services/metadata https://schemas.deegree.org/core/3.5/services/metadata/metadata.xsd">
+  <!-- XPlanValidatorWMS is deprecated and will be removed in a future version. -->
   <ServiceIdentification>
     <Title>XPlanWMS</Title>
     <Abstract>Dieser WMS Dienst stellt auf dem Standard XPlanung basierende WMS Ebenen bereit. Die umfangreiche Attributierung kann mittels GetFeatureInfo abgefragt werden. Objekte mit Referenzen auf weitere Dateien können über GetFeatureInfo abgefragt werden.</Abstract>