diff --git a/.classpath b/.classpath
index 8e7e4ab..02d755f 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -28,10 +28,10 @@
-
+
-
+
-
+
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 6e80039..443e085 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,8 +1,8 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
+org.eclipse.jdt.core.compiler.compliance=1.7
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.source=1.8
+org.eclipse.jdt.core.compiler.source=1.7
diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml
index f4bf050..4f92af5 100644
--- a/.settings/org.eclipse.wst.common.project.facet.core.xml
+++ b/.settings/org.eclipse.wst.common.project.facet.core.xml
@@ -1,5 +1,5 @@
-
+
diff --git a/distro/changelog.xml b/distro/changelog.xml
index 1f5e6c3..8cb5e3f 100644
--- a/distro/changelog.xml
+++ b/distro/changelog.xml
@@ -1,4 +1,8 @@
+
+ Updated to support netcdf files
+
Support Java 8 compatibility [ticket #8471]
diff --git a/pom.xml b/pom.xml
index df97933..f5654f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,7 +11,7 @@
org.gcube.data.analysis
data-miner-manager-cl
- 1.3.0-SNAPSHOT
+ 1.4.0-SNAPSHOT
data-miner-manager-cl
DataMiner Manager Client Library
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml b/src/main/java/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
index 285036b..928acc7 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
@@ -3,13 +3,7 @@
-
-
-
-
-
-
-
+
-
+
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/SClient4WPS.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/SClient4WPS.java
index d0afa71..ad381cc 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/SClient4WPS.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/SClient4WPS.java
@@ -53,6 +53,7 @@ import org.gcube.data.analysis.dataminermanagercl.shared.data.output.MapResource
import org.gcube.data.analysis.dataminermanagercl.shared.data.output.ObjectResource;
import org.gcube.data.analysis.dataminermanagercl.shared.data.output.Resource;
import org.gcube.data.analysis.dataminermanagercl.shared.exception.ServiceException;
+import org.gcube.data.analysis.dataminermanagercl.shared.parameters.FileParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.ObjectParameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.Parameter;
import org.gcube.data.analysis.dataminermanagercl.shared.parameters.TabularListParameter;
@@ -410,8 +411,7 @@ public class SClient4WPS extends SClient {
return processInformations;
} catch (Throwable e) {
- logger.error(e.getLocalizedMessage());
- e.printStackTrace();
+ logger.error(e.getLocalizedMessage(),e);
throw new ServiceException(e.getLocalizedMessage(), e);
} finally {
wpsClient.disconnect(wpsProcessingServlet);
@@ -928,8 +928,7 @@ public class SClient4WPS extends SClient {
return statusLocation;
} catch (Throwable e) {
- logger.error(e.getLocalizedMessage());
- e.printStackTrace();
+ logger.error(e.getLocalizedMessage(),e);
throw new ServiceException(e.getLocalizedMessage(), e);
}
}
@@ -1041,8 +1040,7 @@ public class SClient4WPS extends SClient {
}
} catch (Throwable e) {
- logger.error("MonitorProcess: " + e.getLocalizedMessage());
- e.printStackTrace();
+ logger.error("MonitorProcess: " + e.getLocalizedMessage(),e);
throw new ServiceException(e.getLocalizedMessage(), e);
} finally {
wpsClient.disconnect(wpsProcessingServlet);
@@ -1146,9 +1144,24 @@ public class SClient4WPS extends SClient {
if (responseWPS.getData().startsWith("http:")
|| responseWPS.getData().startsWith("https:")
|| responseWPS.getData().startsWith("smp:")) {
- resource = new FileResource(key, responseWPS.getDescription(),
- responseWPS.getDescription(), responseWPS.getData(),
- responseWPS.getMimeType());
+
+ Parameter complexParameter = outputParameters.get(outputID);
+ if (complexParameter instanceof FileParameter) {
+ FileParameter fileParameter = (FileParameter) complexParameter;
+ if (fileParameter.isNetcdf()) {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), true);
+ } else {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), false);
+ }
+ } else {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), false);
+ }
outputResource.put(key, resource);
} else {
resource = new ObjectResource(key, responseWPS.getDescription(),
@@ -1167,9 +1180,23 @@ public class SClient4WPS extends SClient {
if (responseWPS.getData().startsWith("http:")
|| responseWPS.getData().startsWith("https:")
|| responseWPS.getData().startsWith("smp:")) {
- resource = new FileResource(key, responseWPS.getDescription(),
- responseWPS.getDescription(), responseWPS.getData(),
- responseWPS.getMimeType());
+ Parameter complexParameter = outputParameters.get(outputID);
+ if (complexParameter instanceof FileParameter) {
+ FileParameter fileParameter = (FileParameter) complexParameter;
+ if (fileParameter.isNetcdf()) {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), true);
+ } else {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), false);
+ }
+ } else {
+ resource = new FileResource(key, responseWPS.getDescription(),
+ responseWPS.getDescription(), responseWPS.getData(),
+ responseWPS.getMimeType(), false);
+ }
outputResource.put(key, resource);
} else {
resource = new ObjectResource(key, responseWPS.getDescription(),
@@ -1206,7 +1233,7 @@ public class SClient4WPS extends SClient {
return result;
} catch (Throwable e) {
- e.printStackTrace();
+ logger.error(e.getLocalizedMessage(), e);
throw new ServiceException(e.getLocalizedMessage(), e);
} finally {
if (wpsClient != null) {
@@ -1216,6 +1243,7 @@ public class SClient4WPS extends SClient {
}
+ @Override
public ComputationId resubmitComputation(Map computationProperties) throws ServiceException {
ProcessInformations processInformations;
if (computationProperties == null || computationProperties.isEmpty()) {
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/SClient4WPSSession.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/SClient4WPSSession.java
index d50620b..03a395e 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/SClient4WPSSession.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/SClient4WPSSession.java
@@ -537,17 +537,20 @@ public class SClient4WPSSession implements Serializable {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
+
conn.setRequestMethod("POST");
conn.setRequestProperty("Authorization", "Basic " + encoded);
conn.setRequestProperty("Accept-Encoding", "gzip");
- conn.setRequestProperty("Content-Type", "text/xml");
+ conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
conn.setDoOutput(true);
obj.save(conn.getOutputStream());
InputStream input = null;
String encoding = conn.getContentEncoding();
if (encoding != null && encoding.equalsIgnoreCase("gzip")) {
+ logger.debug("Read encoding GZIP");
input = new GZIPInputStream(conn.getInputStream());
} else {
+ logger.debug("Read encoding: "+encoding);
input = conn.getInputStream();
}
return input;
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/WPS2DM.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/WPS2DM.java
index 2e71600..20f1f55 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/WPS2DM.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/WPS2DM.java
@@ -50,16 +50,16 @@ public class WPS2DM {
* @param title
* title
* @param minOcc
- * min occurences
+ * min occurrences
* @param maxOcc
- * max occurences
+ * max occurrences
* @param rangeOccs
- * range occurences
+ * range occurrences
* @param id
* id
* @param crs
* crs
- * @return Parameter
+ * @return parameter
*/
public static Parameter manageBoundingBoxInformation(String title, int minOcc, int maxOcc, int rangeOccs, String id,
String crs) {
@@ -83,7 +83,7 @@ public class WPS2DM {
* @param title
* title
* @param minOcc
- * min occurences
+ * min occurrences
* @param maxOcc
* max occurences
* @param rangeOccs
@@ -96,7 +96,7 @@ public class WPS2DM {
* uoms
* @param type
* type
- * @return Parameter
+ * @return parameter
*/
public static Parameter manageLiteral(String title, int minOcc, int maxOcc, int rangeOccs, String defaultValue,
String id, String uoms, DomainMetadataType type) {
@@ -255,18 +255,18 @@ public class WPS2DM {
* @param title
* title
* @param minOcc
- * min occurences
+ * min occurrences
* @param maxOcc
- * max occurences
+ * max occurrences
* @param rangeOccs
- * range occurences
+ * range occurrences
* @param id
* id
* @param defaultType
* default type
* @param supportedTypes
- * supported types
- * @return Parameter
+ * supported type
+ * @return parameter
*/
public static Parameter manageComplexData(String maxMegaBytes, String title, int minOcc, int maxOcc, int rangeOccs,
String id, ComplexDataDescriptionType defaultType, ComplexDataDescriptionType[] supportedTypes) {
@@ -297,7 +297,11 @@ public class WPS2DM {
supportedMimeTypes);
} else {
if (title.contains("[a http link to a file")) {
- converted = new FileParameter(id, title, mimeType, supportedMimeTypes);
+ if (title.contains("[NETCDF]")) {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, true);
+ } else {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, false);
+ }
} else {
if (title.contains("[a sequence of http links")) {
Pattern pattern = Pattern.compile(
@@ -317,18 +321,26 @@ public class WPS2DM {
converted = new TabularListParameter(id, title, separator, mimeType,
supportedMimeTypes);
} else {
- converted = new FileParameter(id, title, mimeType, supportedMimeTypes);
+ if (title.contains("[NETCDF]")) {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, true);
+ } else {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, false);
+ }
}
} else {
- converted = new FileParameter(id, title, mimeType, supportedMimeTypes);
+ if (title.contains("[NETCDF]")) {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, true);
+ } else {
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, false);
+ }
}
}
}
} else {
- converted = new FileParameter(id, title, mimeType, supportedMimeTypes);
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, false);
}
} else {
- converted = new FileParameter(id, title, mimeType, supportedMimeTypes);
+ converted = new FileParameter(id, title, mimeType, supportedMimeTypes, false);
}
return converted;
}
@@ -445,7 +457,7 @@ public class WPS2DM {
* @param maxMegabytes
* max mega bytes
* @param UoM
- * uom
+ * UoM
* @param minElements
* min elements
* @param maxElements
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/computationsvalue/ComputationValueBuilder.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/computationsvalue/ComputationValueBuilder.java
index 95d5917..994f48b 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/computationsvalue/ComputationValueBuilder.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/server/dmservice/wps/computationsvalue/ComputationValueBuilder.java
@@ -33,10 +33,9 @@ public class ComputationValueBuilder {
this.valueParameters = valueParameters;
}
-
/**
*
- * @return map of computation value
+ * @return map from parameter to computation value
*/
public LinkedHashMap create() {
computationsValueParameters = new LinkedHashMap();
@@ -97,7 +96,7 @@ public class ComputationValueBuilder {
} catch (Throwable e) {
logger.error("Retrieve File Name: " + e.getLocalizedMessage());
e.printStackTrace();
- return new ComputationValueFile(value, null, null);
+ return new ComputationValueFile(value, null, null,false);
}
}
@@ -148,8 +147,12 @@ public class ComputationValueBuilder {
computationValue = new ComputationValueImage(value, fileName,
mimeType);
} else {
- computationValue = new ComputationValueFile(value, fileName,
- mimeType);
+ if ((mimeType != null && mimeType.compareToIgnoreCase("application/x-netcdf") == 0)
+ || fileName != null && fileName.endsWith(".nc")) {
+ computationValue = new ComputationValueFile(value, fileName, mimeType, true);
+ } else {
+ computationValue = new ComputationValueFile(value, fileName, mimeType, false);
+ }
}
return computationValue;
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/Constants.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/Constants.java
index f36b025..ce4425d 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/Constants.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/Constants.java
@@ -12,12 +12,7 @@ public class Constants {
public static final String DEFAULT_USER = "giancarlo.panichi";
public final static String DEFAULT_SCOPE = "/gcube/devNext/NextNext";
- public final static String DEFAULT_TOKEN = "ae1208f0-210d-47c9-9b24-d3f2dfcce05f-98187548";
-
- //public final static String DEFAULT_SCOPE = "/gcube/preprod/preVRE";
- //public final static String DEFAULT_TOKEN = "04269c7d-dab7-498a-841d-8d38ae2d482b-98187548";
-
-
+ public final static String DEFAULT_TOKEN = "";
public static final String DATAMINER_SERVICE_CATEGORY = "DataAnalysis";
public static final String DATA_MINER_SERVICE_NAME = "DataMiner";
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/computations/ComputationValueFile.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/computations/ComputationValueFile.java
index 6ab4212..7e7ba02 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/computations/ComputationValueFile.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/computations/ComputationValueFile.java
@@ -11,15 +11,17 @@ public class ComputationValueFile extends ComputationValue {
private String fileName;
private String mimeType;
+ private boolean netcdf;
public ComputationValueFile() {
super(ComputationValueType.File);
}
- public ComputationValueFile(String url, String fileName, String mimeType) {
+ public ComputationValueFile(String url, String fileName, String mimeType, boolean netcdf) {
super(ComputationValueType.File, url);
this.fileName = fileName;
this.mimeType = mimeType;
+ this.netcdf = netcdf;
}
public String getFileName() {
@@ -38,12 +40,17 @@ public class ComputationValueFile extends ComputationValue {
this.mimeType = mimeType;
}
- @Override
- public String toString() {
- return "ComputationValueFile [fileName=" + fileName + ", mimeType="
- + mimeType + ", type=" + type + ", value=" + value + "]";
+ public boolean isNetcdf() {
+ return netcdf;
}
-
+ public void setNetcdf(boolean netcdf) {
+ this.netcdf = netcdf;
+ }
+
+ @Override
+ public String toString() {
+ return "ComputationValueFile [fileName=" + fileName + ", mimeType=" + mimeType + ", netcdf=" + netcdf + "]";
+ }
}
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/output/FileResource.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/output/FileResource.java
index 3a7466c..4b9b600 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/output/FileResource.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/data/output/FileResource.java
@@ -18,6 +18,7 @@ public class FileResource extends Resource {
private String url;
private String mimeType;
+ private boolean netcdf;
/**
*
@@ -39,11 +40,15 @@ public class FileResource extends Resource {
* url
* @param mimeType
* mime type
+ * @param netcdf
+ * netcdf
*/
- public FileResource(String resourceId, String name, String description, String url, String mimeType) {
+ public FileResource(String resourceId, String name, String description, String url, String mimeType,
+ boolean netcdf) {
super(resourceId, name, description, ResourceType.FILE);
this.url = url;
this.mimeType = mimeType;
+ this.netcdf = netcdf;
}
/**
@@ -76,11 +81,33 @@ public class FileResource extends Resource {
this.mimeType = mimeType;
}
- @Override
- public String toString() {
- return "FileResource [url=" + url + ", mimeType=" + mimeType + ", getResourceId()=" + getResourceId()
- + ", getName()=" + getName() + ", getDescription()=" + getDescription() + ", getResourceType()="
- + getResourceType() + "]";
+ /**
+ *
+ * @return true if is NetCDF file
+ */
+ public boolean isNetcdf() {
+ return netcdf;
}
+ /**
+ *
+ * @param netcdf
+ * true if is NetCDF file
+ */
+ public void setNetcdf(boolean netcdf) {
+ this.netcdf = netcdf;
+ }
+
+ @Override
+ public String toString() {
+ return "FileResource [url=" + url + ", mimeType=" + mimeType + ", netcdf=" + netcdf + ", getResourceId()="
+ + getResourceId() + ", getName()=" + getName() + ", getDescription()=" + getDescription()
+ + ", getResourceType()=" + getResourceType() + ", isTabular()=" + isTabular() + ", isObject()="
+ + isObject() + ", isFile()=" + isFile() + ", isMap()=" + isMap() + ", isImages()=" + isImages()
+ + ", toString()=" + super.toString() + ", getClass()=" + getClass() + ", hashCode()=" + hashCode()
+ + "]";
+ }
+
+
+
}
diff --git a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/parameters/FileParameter.java b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/parameters/FileParameter.java
index 8893209..6514df6 100644
--- a/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/parameters/FileParameter.java
+++ b/src/main/java/org/gcube/data/analysis/dataminermanagercl/shared/parameters/FileParameter.java
@@ -16,6 +16,7 @@ public class FileParameter extends Parameter {
private static final long serialVersionUID = -2967577990287112937L;
private String defaultMimeType;
private ArrayList supportedMimeTypes;
+ private boolean netcdf;
/**
*
@@ -23,6 +24,7 @@ public class FileParameter extends Parameter {
public FileParameter() {
super();
this.typology = ParameterType.FILE;
+ netcdf = false;
}
/**
@@ -34,13 +36,16 @@ public class FileParameter extends Parameter {
* @param defaultMimeType
* default mime type
* @param supportedMimeTypes
- * supported mime type
+ * supported mime types
+ * @param netcdf
+ * is netcdf file
*/
- public FileParameter(String name, String description, String defaultMimeType,
- ArrayList supportedMimeTypes) {
+ public FileParameter(String name, String description, String defaultMimeType, ArrayList supportedMimeTypes,
+ boolean netcdf) {
super(name, ParameterType.FILE, description);
this.defaultMimeType = defaultMimeType;
this.supportedMimeTypes = supportedMimeTypes;
+ this.netcdf = netcdf;
}
public String getDefaultMimeType() {
@@ -59,11 +64,19 @@ public class FileParameter extends Parameter {
this.supportedMimeTypes = supportedMimeTypes;
}
+ public boolean isNetcdf() {
+ return netcdf;
+ }
+
+ public void setNetcdf(boolean netcdf) {
+ this.netcdf = netcdf;
+ }
+
@Override
public String toString() {
- return "FileParameter [value=" + value + ", defaultMimeType=" + defaultMimeType + ", supportedMimeTypes="
- + supportedMimeTypes + ", name=" + name + ", description=" + description + ", typology=" + typology
- + "]";
+ return "FileParameter [defaultMimeType=" + defaultMimeType + ", supportedMimeTypes=" + supportedMimeTypes
+ + ", netcdf=" + netcdf + ", name=" + name + ", description=" + description + ", typology=" + typology
+ + ", value=" + value + "]";
}
}
diff --git a/src/main/resources/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml b/src/main/resources/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
index 285036b..1f40507 100644
--- a/src/main/resources/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
+++ b/src/main/resources/org/gcube/data/analysis/dataminermanagercl/dataminermanagercl.gwt.xml
@@ -3,13 +3,7 @@
-
-
-
-
-
-
-
+
-
+