Skip to content

Commit b5811a4

Browse files
Merge pull request #268 from integratedmodelling/develop
Merge develop to master
2 parents 18b89f0 + 1175ccc commit b5811a4

File tree

63 files changed

+1911
-671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1911
-671
lines changed

adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/ogc/WfsAdapter.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@
2727
import org.geotools.referencing.ReferencingFactoryFinder;
2828
import org.geotools.util.factory.Hints;
2929
import org.integratedmodelling.kim.api.IPrototype;
30+
import org.integratedmodelling.klab.Authentication;
3031
import org.integratedmodelling.klab.Dataflows;
32+
import org.integratedmodelling.klab.Klab;
3133
import org.integratedmodelling.klab.Version;
34+
import org.integratedmodelling.klab.api.auth.IIdentity;
35+
import org.integratedmodelling.klab.api.auth.IUserIdentity;
3236
import org.integratedmodelling.klab.api.data.IResource;
3337
import org.integratedmodelling.klab.api.data.IResourceCalculator;
3438
import org.integratedmodelling.klab.api.data.adapters.IResourceAdapter;
@@ -43,6 +47,11 @@
4347
import org.integratedmodelling.klab.ogc.vector.wfs.WfsPublisher;
4448
import org.integratedmodelling.klab.ogc.vector.wfs.WfsValidator;
4549

50+
import klab.commons.customProperties.CustomPropertyKey;
51+
import klab.commons.customProperties.auth.AuthType;
52+
import klab.commons.customProperties.auth.AuthenticatedUrlClient;
53+
import klab.commons.customProperties.auth.BasicAuth;
54+
4655
/**
4756
* The Class WfsAdapter.
4857
*/
@@ -97,7 +106,7 @@ public IResourceEncoder getEncoder() {
97106
public static WFSDataStore getDatastore(String serverUrl, Version version) {
98107

99108
WFSDataStore ret = dataStores.get(serverUrl);
100-
109+
101110
if (ret == null) {
102111

103112
if (lastTry.get(serverUrl) != null
@@ -118,12 +127,16 @@ public static WFSDataStore getDatastore(String serverUrl, Version version) {
118127

119128
String getCapabilities = serverUrl + "?SERVICE=wfs&REQUEST=getCapabilities&version=" + version;
120129
WFSDataStoreFactory dsf = new WFSDataStoreFactory();
121-
130+
122131
Map<String, Serializable> connectionParameters = new HashMap<>();
132+
133+
IUserIdentity userData = Authentication.INSTANCE.getAuthenticatedIdentity(IUserIdentity.class);
134+
AuthenticatedUrlClient.prepareWFSAuthenticationParameters(serverUrl, connectionParameters ,userData.getGroups(), CustomPropertyKey.GEOSERVER_KEYS);
135+
123136
connectionParameters.put(WFSDataStoreFactory.URL.key, getCapabilities);
124137
connectionParameters.put(WFSDataStoreFactory.TIMEOUT.key, wfsTimeout);
125138
connectionParameters.put(WFSDataStoreFactory.BUFFER_SIZE.key, wfsBufsize);
126-
139+
127140
/*
128141
* TODO all other parameters
129142
*/

adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/openeo/OpenEO.java

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@
3737
import org.integratedmodelling.klab.rest.Notification;
3838
import org.integratedmodelling.klab.utils.JsonUtils;
3939
import org.integratedmodelling.klab.utils.NameGenerator;
40-
import org.integratedmodelling.klab.utils.Parameters;
4140
import org.integratedmodelling.klab.utils.Utils;
4241

42+
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
4343
import com.fasterxml.jackson.annotation.JsonProperty;
4444

4545
import kong.unirest.HttpResponse;
@@ -131,6 +131,7 @@ public String toString() {
131131

132132
}
133133

134+
@JsonIgnoreProperties(ignoreUnknown = true)
134135
public static class Schema {
135136

136137
private String type = "number";
@@ -154,6 +155,7 @@ public void setSubtype(String subtype) {
154155

155156
}
156157

158+
@JsonIgnoreProperties(ignoreUnknown = true)
157159
public static class Parameter {
158160

159161
private String name;
@@ -303,6 +305,7 @@ public void setTitle(String title) {
303305
* A user defined OpenEO process. Can be used as a "namespace" when running a
304306
* job.
305307
*/
308+
@JsonIgnoreProperties(ignoreUnknown = true)
306309
public static class Process {
307310

308311
private String id;
@@ -512,7 +515,7 @@ public Map<String, Object> getJobResults(Job job) {
512515
* @param budget
513516
* @return
514517
*/
515-
public String createRemoteJob(String processId, Parameters<String> parameters, Process... processes) {
518+
public String createRemoteJob(String processId, JSONObject parameters, Process... processes) {
516519

517520
Map<String, Object> request = new LinkedHashMap<>();
518521

@@ -548,7 +551,7 @@ public String createRemoteJob(String processId, Parameters<String> parameters, P
548551
* server side before the run and removed afterwards.
549552
*/
550553
@SuppressWarnings("unchecked")
551-
public <T> T runJob(String processId, Parameters<String> parameters, IMonitor monitor, Class<T> resultClass,
554+
public <T> T runJob(String processId, JSONObject parameters, IMonitor monitor, Class<T> resultClass,
552555
Process... namespace) {
553556

554557
Map<String, Object> request = new LinkedHashMap<>();
@@ -581,17 +584,15 @@ public <T> T runJob(String processId, Parameters<String> parameters, IMonitor mo
581584
* is used in the namespace. Otherwise the process is stored at
582585
* server side before the run and removed afterwards.
583586
*/
584-
public void runJob(String processId, Parameters<String> parameters, IMonitor monitor,
587+
public void runJob(String processId, JSONObject parameters, IMonitor monitor,
585588
Consumer<InputStream> resultConsumer, Process... namespace) {
586589

587-
Map<String, Object> request = new LinkedHashMap<>();
588-
589-
request.put("process", createJobDefinition(processId, parameters, namespace));
590-
request.put("plan", plan);
591-
request.put("budget", budget <= 0 ? null : budget);
590+
parameters.put("process", createJobDefinition(processId, parameters, namespace));
591+
parameters.put("plan", plan);
592+
parameters.put("budget", budget <= 0 ? null : budget);
592593

593594
Unirest.post(endpoint + "/result").contentType("application/json").socketTimeout(responseTimeoutMs)
594-
.header("Authorization", authorization.getAuthorization()).body(request).thenConsume((rawr) -> {
595+
.header("Authorization", authorization.getAuthorization()).body(parameters).thenConsume((rawr) -> {
595596
boolean error = false;
596597
if (rawr.getStatus() - 400 >= 0) {
597598
monitor.error(new KlabRemoteException("Server returned error code " + rawr.getStatus()));
@@ -632,14 +633,14 @@ private String getNamespaceUrl(Process udp) {
632633
* at server side before the run and removed afterwards.
633634
* @return
634635
*/
635-
private Map<String, Object> createJobDefinition(String processId, Parameters<String> parameters,
636+
private Map<String, Object> createJobDefinition(String processId, JSONObject parameters,
636637
Process... namespace) {
637638

638639
Map<String, Object> processGraph = new LinkedHashMap<>();
639640
Map<String, Object> processCall = new LinkedHashMap<>();
640641

641642
processCall.put("process_id", processId);
642-
processCall.put("arguments", parameters == null ? new HashMap<>() : parameters.getData());
643+
processCall.put("arguments", parameters == null ? new HashMap<>() : parameters.toMap());
643644
processCall.put("result", true);
644645

645646
if (namespace != null) {
@@ -723,7 +724,7 @@ public void startJob(String jobId, IMonitor monitor, Consumer<Map<String, Object
723724
* afterwards.
724725
* @return
725726
*/
726-
public boolean submit(String processId, Parameters<String> parameters, IMonitor monitor,
727+
public boolean submit(String processId, JSONObject parameters, IMonitor monitor,
727728
Consumer<Map<String, Object>> resultHandler, BiConsumer<String, String> errorHandler,
728729
Process... namespace) {
729730

@@ -745,12 +746,12 @@ public boolean submit(String processId, Parameters<String> parameters, IMonitor
745746
* @param namespace
746747
* @return
747748
*/
748-
public OpenEOFuture submit(String processId, Parameters<String> parameters, IMonitor monitor,
749+
public OpenEOFuture submit(String processId, JSONObject parameters, IMonitor monitor,
749750
Process... namespace) {
750751
return new OpenEOFuture(processId, parameters, monitor, namespace);
751752
}
752753

753-
public boolean validateProcess(Process process, Parameters<String> parameters,
754+
public boolean validateProcess(Process process, JSONObject parameters,
754755
BiConsumer<String, String> errorHandler) {
755756

756757
HttpResponse<JsonNode> response = Unirest.post(endpoint + "/validation").contentType("application/json")
@@ -862,7 +863,7 @@ public class OpenEOFuture implements Future<Map<String, Object>> {
862863
AtomicBoolean canceled = new AtomicBoolean(false);
863864
String error;
864865

865-
public OpenEOFuture(String processId, Parameters<String> parameters, IMonitor monitor, Process... namespace) {
866+
public OpenEOFuture(String processId, JSONObject parameters, IMonitor monitor, Process... namespace) {
866867
this.processId = processId;
867868
String jobId = createRemoteJob(processId, parameters, namespace);
868869
if (jobId == null) {

adapters/klab.ogc/src/main/java/org/integratedmodelling/klab/openeo/OpenEOEncoder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,10 @@
4646
import org.integratedmodelling.klab.scale.Scale;
4747
import org.integratedmodelling.klab.utils.JsonUtils;
4848
import org.integratedmodelling.klab.utils.Pair;
49-
import org.integratedmodelling.klab.utils.Parameters;
5049
import org.integratedmodelling.klab.utils.Utils;
5150

51+
import kong.unirest.json.JSONObject;
52+
5253
public class OpenEOEncoder implements IResourceEncoder, FlowchartProvider {
5354

5455
static Set<String> knownParameters;
@@ -103,7 +104,7 @@ public void getEncodedData(IResource resource, Map<String, String> urnParameters
103104
OpenEO service = OpenEOAdapter.getClient(resource.getParameters().get("serviceUrl").toString());
104105
if (service != null && service.isOnline()) {
105106

106-
Parameters<String> arguments = Parameters.create();
107+
JSONObject arguments = new JSONObject();
107108
IScale rscal = Scale.create(resource.getGeometry());
108109
IScale scale = geometry instanceof IScale ? (IScale) geometry : Scale.create(geometry);
109110

0 commit comments

Comments
 (0)