From 678a68060d211e9f51814f8b93ec073757f558ad Mon Sep 17 00:00:00 2001 From: Gianpaolo Coro Date: Fri, 14 Mar 2014 13:53:37 +0000 Subject: [PATCH] manage standard local algorithms executions git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-analysis/EcologicalEngine@93133 82a268e6-3cf1-43bd-a215-b396298e98cf --- .../configuration/INFRASTRUCTURE.java | 3 +- .../StandardLocalExternalAlgorithm.java | 44 +++++++++++-------- .../signals/PeriodicityDetector.java | 3 ++ .../ecoengine/utils/DatabaseUtils.java | 5 ++- 4 files changed, 34 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/INFRASTRUCTURE.java b/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/INFRASTRUCTURE.java index 92cb0d8..9944bbf 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/INFRASTRUCTURE.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/configuration/INFRASTRUCTURE.java @@ -4,6 +4,7 @@ public enum INFRASTRUCTURE { RAINY_CLOUD, D4SCIENCE, - LOCAL + LOCAL, + EXTERNAL_WPS } diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/StandardLocalExternalAlgorithm.java b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/StandardLocalExternalAlgorithm.java index 3347c4f..a0ea812 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/StandardLocalExternalAlgorithm.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/interfaces/StandardLocalExternalAlgorithm.java @@ -23,49 +23,55 @@ public abstract class StandardLocalExternalAlgorithm implements Transducerer { protected List inputs = new ArrayList(); protected ResourceFactory resourceManager; public LinkedHashMap outputParameters = new LinkedHashMap(); - - + protected void addEnumerateInput(Object itemsList, String name, String description, String defaultvalue) { inputs.add(new PrimitiveType(Enum.class.getName(), itemsList, PrimitiveTypes.ENUMERATED, name, description, defaultvalue)); } protected void addRemoteDatabaseInput(String runtimeResourceName, String urlParameterName, String userParameterName, String passwordParameterName, String driverParameterName, String dialectParameterName) { - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASERRNAME,runtimeResourceName,"RR name")); - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEURL,urlParameterName,"")); - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEUSERNAME,userParameterName,"")); - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEPASSWORD,passwordParameterName,"")); - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEDRIVER,driverParameterName,"")); - inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEDIALECT,dialectParameterName,"")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASERRNAME, runtimeResourceName, "RR name")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEURL, urlParameterName, "")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEUSERNAME, userParameterName, "")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEPASSWORD, passwordParameterName, "")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEDRIVER, driverParameterName, "")); + inputs.add(new DatabaseType(DatabaseParameters.REMOTEDATABASEDIALECT, dialectParameterName, "")); } - + protected void addStringInput(String name, String description, String defaultvalue) { inputs.add(new PrimitiveType(String.class.getName(), null, PrimitiveTypes.STRING, name, description, defaultvalue)); } protected void addIntegerInput(String name, String description, String defaultvalue) { - inputs.add(new PrimitiveType(Integer.class.getName(), null, PrimitiveTypes.NUMBER, name,description,defaultvalue)); + inputs.add(new PrimitiveType(Integer.class.getName(), null, PrimitiveTypes.NUMBER, name, description, defaultvalue)); } - + protected void addDoubleInput(String name, String description, String defaultvalue) { - inputs.add(new PrimitiveType(Double.class.getName(), null, PrimitiveTypes.NUMBER, name,description,defaultvalue)); + inputs.add(new PrimitiveType(Double.class.getName(), null, PrimitiveTypes.NUMBER, name, description, defaultvalue)); } - + protected void addOutputString(String name, String value) { outputParameters.put(name, value); } - + @Override public void compute() throws Exception { AnalysisLogger.setLogger(config.getConfigPath() + AlgorithmConfiguration.defaultLoggerFile); status = 0; - process(); - status = 100; + try { + process(); + } catch (Exception e) { + e.printStackTrace(); + AnalysisLogger.getLogger().debug("StandardLocalExternalAlgorithm->Error in processing"); + throw e; + } finally { + status = 100; + } } - protected void log(Object message){ + protected void log(Object message) { AnalysisLogger.getLogger().debug(message); } - + @Override public abstract void init() throws Exception; @@ -89,7 +95,7 @@ public abstract class StandardLocalExternalAlgorithm implements Transducerer { @Override public StatisticalType getOutput() { - PrimitiveType p = new PrimitiveType(Map.class.getName(), PrimitiveType.stringMap2StatisticalMap(outputParameters), PrimitiveTypes.MAP, "Species Match",""); + PrimitiveType p = new PrimitiveType(Map.class.getName(), PrimitiveType.stringMap2StatisticalMap(outputParameters), PrimitiveTypes.MAP, "Species Match", ""); return p; } diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/signals/PeriodicityDetector.java b/src/main/java/org/gcube/dataanalysis/ecoengine/signals/PeriodicityDetector.java index d0b61a3..c6f7380 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/signals/PeriodicityDetector.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/signals/PeriodicityDetector.java @@ -172,7 +172,10 @@ public class PeriodicityDetector { power = MathFunctions.incrementPerc(power, (float)powers[i], counter); counter++; } + this.periodicityStrength=power; + if (this.periodicityStrength==-0.0) + this.periodicityStrength=0; // reconstruct the F double meanF = MathFunctions.mean(maxfrequencies); diff --git a/src/main/java/org/gcube/dataanalysis/ecoengine/utils/DatabaseUtils.java b/src/main/java/org/gcube/dataanalysis/ecoengine/utils/DatabaseUtils.java index 7a94837..ab6fc43 100644 --- a/src/main/java/org/gcube/dataanalysis/ecoengine/utils/DatabaseUtils.java +++ b/src/main/java/org/gcube/dataanalysis/ecoengine/utils/DatabaseUtils.java @@ -177,7 +177,10 @@ public class DatabaseUtils { for (int j=0;j