diff --git a/52n-wps-r/src/main/java/org/n52/wps/server/r/LocalRAlgorithmRepository.java b/52n-wps-r/src/main/java/org/n52/wps/server/r/LocalRAlgorithmRepository.java index b0c0f677a..86b00a762 100644 --- a/52n-wps-r/src/main/java/org/n52/wps/server/r/LocalRAlgorithmRepository.java +++ b/52n-wps-r/src/main/java/org/n52/wps/server/r/LocalRAlgorithmRepository.java @@ -280,6 +280,13 @@ public boolean removeAlgorithm(Object processID) { @Override public ProcessDescriptionType getProcessDescription(String processID) { + if ( !this.rConfig.getCacheDescriptions()) { + LOGGER.debug("Process description cache disabled, creating new process and returning its description for id {}", + processID); + GenericRProcess process = new GenericRProcess(processID); + return process.getDescription(); + } + if ( !this.algorithmDescriptionMap.containsKey(processID)) { LOGGER.debug("Creating new process to get the description for " + processID); GenericRProcess process = new GenericRProcess(processID); diff --git a/52n-wps-r/src/main/java/org/n52/wps/server/r/RWPSConfigVariables.java b/52n-wps-r/src/main/java/org/n52/wps/server/r/RWPSConfigVariables.java index 1acc044f9..d68ca046b 100644 --- a/52n-wps-r/src/main/java/org/n52/wps/server/r/RWPSConfigVariables.java +++ b/52n-wps-r/src/main/java/org/n52/wps/server/r/RWPSConfigVariables.java @@ -31,7 +31,7 @@ public enum RWPSConfigVariables { - SCRIPT_DIR, RESOURCE_DIR, ALGORITHM_PROPERTY_NAME, ENABLE_BATCH_START, RSERVE_HOST, RSERVE_PORT, RSERVE_USER, RSERVE_PASSWORD, R_DATATYPE_CONFIG, R_WORK_DIR_STRATEGY, R_WORK_DIR_NAME; + SCRIPT_DIR, RESOURCE_DIR, ALGORITHM_PROPERTY_NAME, ENABLE_BATCH_START, RSERVE_HOST, RSERVE_PORT, RSERVE_USER, RSERVE_PASSWORD, R_DATATYPE_CONFIG, R_WORK_DIR_STRATEGY, R_WORK_DIR_NAME, R_CACHE_DESCRIPTIONS; public String toString() { switch (this) { @@ -57,6 +57,8 @@ public String toString() { return "R_RservePassword"; case R_DATATYPE_CONFIG: return "R_datatypeConfig"; + case R_CACHE_DESCRIPTIONS: + return "R_cacheDescriptions"; default: return "NO STRING REPRESENTATION DEFINED FOR ENUM CONSTANT!"; } diff --git a/52n-wps-r/src/main/java/org/n52/wps/server/r/R_Config.java b/52n-wps-r/src/main/java/org/n52/wps/server/r/R_Config.java index 7e5e474df..150ac2c28 100644 --- a/52n-wps-r/src/main/java/org/n52/wps/server/r/R_Config.java +++ b/52n-wps-r/src/main/java/org/n52/wps/server/r/R_Config.java @@ -479,4 +479,9 @@ public URL getProcessDescriptionURL(String processWKN) { return null; } } + + public boolean getCacheDescriptions() { + String s = getConfigVariable(RWPSConfigVariables.R_CACHE_DESCRIPTIONS); + return Boolean.valueOf(s); + } } diff --git a/52n-wps-webapp/src/main/webapp/R/scripts/demo_meuse-rdata.R b/52n-wps-webapp/src/main/webapp/R/scripts/demo_meuse-rdata.R index 2d4fa3ebe..2b1e90b6e 100644 --- a/52n-wps-webapp/src/main/webapp/R/scripts/demo_meuse-rdata.R +++ b/52n-wps-webapp/src/main/webapp/R/scripts/demo_meuse-rdata.R @@ -5,10 +5,14 @@ # wps.off; filename <- "meuse" +setwd(tempdir()) +cat("wd: ", getwd(), "\n") # wps.on; library(sp) data(meuse) +data(meuse.grid) +data(meuse.riv) summary(meuse) summary(meuse.grid) diff --git a/52n-wps-webapp/src/main/webapp/config/wps_config_geotools.xml b/52n-wps-webapp/src/main/webapp/config/wps_config_geotools.xml index 37106eb1c..eccecad01 100644 --- a/52n-wps-webapp/src/main/webapp/config/wps_config_geotools.xml +++ b/52n-wps-webapp/src/main/webapp/config/wps_config_geotools.xml @@ -498,6 +498,7 @@ NA NA R/scripts + true org.n52.wps.server.r.test.calculator