ClientAPI Tutorial

In this tutorial you will learn how to communicate with Web Geoprocessing Services using the 52°North WPS Client API for Java.

1. Get the 52°North WPS SDK

Maven

With Maven you need this repository:
<repository>
   <id>n52-releases</id>
   <name>52n Releases</name>
   <url>http://52north.org/maven/repo/releases</url>
   <releases>
      <enabled>true</enabled>
   </releases>
   <snapshots>
      <enabled>true</enabled>
   </snapshots>
</repository>

and this dependency:
<dependency>
    <groupId>org.n52.wps</groupId>
    <artifactId>52n-wps-client-lib</artifactId>
    <version>3.3.1</version>
</dependency>

You also need the wps_config.xml from here. Either put it in the classpath or in your code reference it as your first call.

WPSConfig.getInstance("path to your wps_config.xml");

2. GetCapabilities

This section shows you how you can request a WPS Capabilities document and how to handle the response. Example:

public CapabilitiesDocument requestGetCapabilities(String url)
            throws WPSClientException {

        WPSClientSession wpsClient = WPSClientSession.getInstance();

        wpsClient.connect(url);

        CapabilitiesDocument capabilities = wpsClient.getWPSCaps(url);

        ProcessBriefType[] processList = capabilities.getCapabilities()
                .getProcessOfferings().getProcessArray();

        for (ProcessBriefType process : processList) {
            System.out.println(process.getIdentifier().getStringValue());
        }
        return capabilities;
    }

At first you need instantiate the WPSClient via:

WPSClientSession wpsClient = WPSClientSession.getInstance();

And to register the WPS URL via:

wpsClient.connect(url);

The capabilities request is simply sent like this:

CapabilitiesDocument capabilities = = wpsClient.getWPSCaps(url);

The resulting CapabilitiesDocument has the same structure as in the WPS specification. For further detail, please have a look in there. For instance, to get the list of processes, you need to get the ProcessOfferings via:
capabilities.getCapabilities().getProcessOfferings().getProcessArray();

Each process is of type ProcessBriefType also following the OGC WPS specification. You can for instance get the process identifier via :
process.getIdentifier().getStringValue());

3. DescribeProcess

This section shows you how you can request a WPS DescribeProcess document and how to handle the response. Example:

public ProcessDescriptionType requestDescribeProcess(String url,
            String processID) throws IOException {

        WPSClientSession wpsClient = WPSClientSession.getInstance();

        ProcessDescriptionType processDescription = wpsClient
                .getProcessDescription(url, processID);

        InputDescriptionType[] inputList = processDescription.getDataInputs()
                .getInputArray();

        for (InputDescriptionType input : inputList) {
            System.out.println(input.getIdentifier().getStringValue());
        }
        return processDescription;
    }

As in section 2, you need to instantiate the WPSClient. The actual ProcessDescription is obtained via:
ProcessDescriptionType processDescription = wpsClient.getProcessDescription(url, processID);

Where the processID is one of the identifier extracted in Section 2. The results are of type ProcessDescriptionType which also follows the OGC datastructures. For instance, to get the all input descriptions for a process, you need to navigate to:
InputDescriptionType[] inputList = processDescription.getDataInputs().getInputArray(); 

4. Execute

This section shows you how you can execute a WPS process and how to handle the response. The execution is a bit more complicated than the GetCapabilities and DescribeProcess operations. Example:

public IData executeProcess(String url, String processID,
            ProcessDescriptionType processDescription,
            HashMap<String, Object> inputs) throws Exception {
        org.n52.wps.client.ExecuteRequestBuilder executeBuilder = new org.n52.wps.client.ExecuteRequestBuilder(
                processDescription);

        for (InputDescriptionType input : processDescription.getDataInputs()
                .getInputArray()) {
            String inputName = input.getIdentifier().getStringValue();
            Object inputValue = inputs.get(inputName);
            if (input.getLiteralData() != null) {
                if (inputValue instanceof String) {
                    executeBuilder.addLiteralData(inputName,
                            (String) inputValue);
                }
            } else if (input.getComplexData() != null) {
                // Complexdata by value
                if (inputValue instanceof FeatureCollection) {
                    IData data = new GTVectorDataBinding(
                            (FeatureCollection) inputValue);
                    executeBuilder
                            .addComplexData(
                                    inputName,
                                    data,
                                    "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                                    null, "text/xml");
                }
                // Complexdata Reference
                if (inputValue instanceof String) {
                    executeBuilder
                            .addComplexDataReference(
                                    inputName,
                                    (String) inputValue,
                                    "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                                    null, "text/xml");
                }

                if (inputValue == null && input.getMinOccurs().intValue() > 0) {
                    throw new IOException("Property not set, but mandatory: "
                            + inputName);
                }
            }
        }
        executeBuilder.setMimeTypeForOutput("text/xml", "result");
        executeBuilder.setSchemaForOutput(
                "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                "result");
        ExecuteDocument execute = executeBuilder.getExecute();
        execute.getExecute().setService("WPS");
        WPSClientSession wpsClient = WPSClientSession.getInstance();
        Object responseObject = wpsClient.execute(url, execute);
        if (responseObject instanceof ExecuteResponseDocument) {
            ExecuteResponseDocument response = (ExecuteResponseDocument) responseObject;
            ExecuteResponseAnalyser analyser = new ExecuteResponseAnalyser(
                    execute, response, processDescription);
            IData data = (IData) analyser.getComplexDataByIndex(0,
                    GTVectorDataBinding.class);
            return data;
        }
        throw new Exception("Exception: " + responseObject.toString());
    }

At first, an ExecuteRequestBuilder Object needs to be instantiated. This class is used to construct the actual WPS Execute request. It needs a ProcessDescriptionType object as input, which can be obtained via the DescribeProcess method described in Section 3. In the next step, the input data has to be set. This can be done in three ways:

Literaldata input

For literaldata, such as a number or a string, use:
executeBuilder.addLiteralData(inputName, (String)inputValue);

It needs the input identifier of and the value. The input identifiers can be looked up in the ProcessDescription.

Complexdata input by value

For complex data, such as GML Features use:
IData data = new GTVectorDataBinding((FeatureCollection) inputValue);
executeBuilder.addComplexData(inputName, data, "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", null,"text/xml");

The input identifier is needed, as well as the actual data as an IData Object. IData is an interface, which has several classes that implement it. The most common are:
  • GTVectorDataBinding for or vectordata that is in the Geotools datastructure
  • GenericFileDataBinding for any data that is available as a file. It also needs the schema, encoding and mimetype of the input data. The supported formats can be looked up in the ProcessDescription.

Complexdata input by reference

For complex data, such as GML Features, which is only referenced via a URL, use:
executeBuilder.addComplexDataReference(inputName, (String) inputValue, "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", null,"text/xml");

The input identifier is needed, as well as a String holding a URL to the georesource, such as a WFS Getlayers request. In addition the schema, encoding and mimetype of the input data is needed. The supported formats can be looked up in the process description

After the inputs are set, the output format must be set. You need to set the mimetype and optionally the schema (for vector data) like:
executeBuilder.setMimeTypeForOutput("text/xml", "result");
executeBuilder.setSchemaForOutput("http://schemas.opengis.net/gml/3.1.1/base/feature.xsd", "result");

This method set the schema for an specific output identifier ("result"), in which the output format should be. Of cource, only supported schemas should be used. The list of supported schemas can be looked up in the ProcessDescription obtained in Section 3. The setting of a mimetype is done in the same way.

Note: The encoding should only be set if it differs from the default encoding, i.e. if you need to transfer binary data by value in your request. In this case use "base64" for the encoding.

5. Getting it all together

Below you can see a class containing a main method, which makes use of the methods described in Section 2, 3 and 4.
package org.n52.wps.client.example;

import java.io.IOException;
import java.util.HashMap;

import net.opengis.wps.x100.CapabilitiesDocument;
import net.opengis.wps.x100.ExecuteDocument;
import net.opengis.wps.x100.ExecuteResponseDocument;
import net.opengis.wps.x100.InputDescriptionType;
import net.opengis.wps.x100.ProcessBriefType;
import net.opengis.wps.x100.ProcessDescriptionType;

import org.geotools.feature.FeatureCollection;
import org.n52.wps.client.ExecuteResponseAnalyser;
import org.n52.wps.client.WPSClientException;
import org.n52.wps.client.WPSClientSession;
import org.n52.wps.io.data.IData;
import org.n52.wps.io.data.binding.complex.GTVectorDataBinding;

public class WPSClientExample {

    public void testExecute() {

        String wpsURL = "http://localhost:8080/wps/WebProcessingService";

        String processID = "org.n52.wps.server.algorithm.SimpleBufferAlgorithm";

        try {
            ProcessDescriptionType describeProcessDocument = requestDescribeProcess(
                    wpsURL, processID);
            System.out.println(describeProcessDocument);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        try {
            CapabilitiesDocument capabilitiesDocument = requestGetCapabilities(wpsURL);
            ProcessDescriptionType describeProcessDocument = requestDescribeProcess(
                    wpsURL, processID);
            // define inputs
            HashMap<String, Object> inputs = new HashMap<String, Object>();
            // complex data by reference
            inputs.put(
                    "data",
                    "http://geoprocessing.demo.52north.org:8080/geoserver/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:tasmania_roads&outputFormat=GML3");
            // literal data
            inputs.put("width", "0.05");
            IData data = executeProcess(wpsURL, processID,
                    describeProcessDocument, inputs);

            if (data instanceof GTVectorDataBinding) {
                FeatureCollection featureCollection = ((GTVectorDataBinding) data)
                        .getPayload();
                System.out.println(featureCollection.size());
            }
        } catch (WPSClientException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    public CapabilitiesDocument requestGetCapabilities(String url)
            throws WPSClientException {

        WPSClientSession wpsClient = WPSClientSession.getInstance();

        wpsClient.connect(url);

        CapabilitiesDocument capabilities = wpsClient.getWPSCaps(url);

        ProcessBriefType[] processList = capabilities.getCapabilities()
                .getProcessOfferings().getProcessArray();

        for (ProcessBriefType process : processList) {
            System.out.println(process.getIdentifier().getStringValue());
        }
        return capabilities;
    }

    public ProcessDescriptionType requestDescribeProcess(String url,
            String processID) throws IOException {

        WPSClientSession wpsClient = WPSClientSession.getInstance();

        ProcessDescriptionType processDescription = wpsClient
                .getProcessDescription(url, processID);

        InputDescriptionType[] inputList = processDescription.getDataInputs()
                .getInputArray();

        for (InputDescriptionType input : inputList) {
            System.out.println(input.getIdentifier().getStringValue());
        }
        return processDescription;
    }

    public IData executeProcess(String url, String processID,
            ProcessDescriptionType processDescription,
            HashMap<String, Object> inputs) throws Exception {
        org.n52.wps.client.ExecuteRequestBuilder executeBuilder = new org.n52.wps.client.ExecuteRequestBuilder(
                processDescription);

        for (InputDescriptionType input : processDescription.getDataInputs()
                .getInputArray()) {
            String inputName = input.getIdentifier().getStringValue();
            Object inputValue = inputs.get(inputName);
            if (input.getLiteralData() != null) {
                if (inputValue instanceof String) {
                    executeBuilder.addLiteralData(inputName,
                            (String) inputValue);
                }
            } else if (input.getComplexData() != null) {
                // Complexdata by value
                if (inputValue instanceof FeatureCollection) {
                    IData data = new GTVectorDataBinding(
                            (FeatureCollection) inputValue);
                    executeBuilder
                            .addComplexData(
                                    inputName,
                                    data,
                                    "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                                    null, "text/xml");
                }
                // Complexdata Reference
                if (inputValue instanceof String) {
                    executeBuilder
                            .addComplexDataReference(
                                    inputName,
                                    (String) inputValue,
                                    "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                                    null, "text/xml");
                }

                if (inputValue == null && input.getMinOccurs().intValue() > 0) {
                    throw new IOException("Property not set, but mandatory: "
                            + inputName);
                }
            }
        }
        executeBuilder.setMimeTypeForOutput("text/xml", "result");
        executeBuilder.setSchemaForOutput(
                "http://schemas.opengis.net/gml/3.1.1/base/feature.xsd",
                "result");
        ExecuteDocument execute = executeBuilder.getExecute();
        execute.getExecute().setService("WPS");
        WPSClientSession wpsClient = WPSClientSession.getInstance();
        Object responseObject = wpsClient.execute(url, execute);
        if (responseObject instanceof ExecuteResponseDocument) {
            ExecuteResponseDocument response = (ExecuteResponseDocument) responseObject;
            ExecuteResponseAnalyser analyser = new ExecuteResponseAnalyser(
                    execute, response, processDescription);
            IData data = (IData) analyser.getComplexDataByIndex(0,
                    GTVectorDataBinding.class);
            return data;
        }
        throw new Exception("Exception: " + responseObject.toString());
    }

    public static void main(String[] args) {
        WPSClientExample client = new WPSClientExample();
        client.testExecute();
    }

}

You can download the complete Java class from here.

If you run this, you should get as an output:

data
width
<xml-fragment statusSupported="true" storeSupported="true" wps:processVersion="1.1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:wps="http://www.opengis.net/wps/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <ows:Identifier>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Identifier>
  <ows:Title>org.n52.wps.server.algorithm.SimpleBufferAlgorithm</ows:Title>
  <DataInputs>
    <Input maxOccurs="1" minOccurs="1">
      <ows:Identifier>data</ows:Identifier>
      <ows:Title>data</ows:Title>
      <ComplexData>
        <Default>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Schema>
          </Format>
        </Default>
        <Supported>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.0.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.0.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.1.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.2.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://www.opengeospatial.org/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://geoserver.itc.nl:8080/wps/schemas/gml/2.1.2/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.0.0/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.0.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.0.0/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.2</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.2.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>application/x-zipped-shp</MimeType>
            <Encoding>base64</Encoding>
          </Format>
          <Format>
            <MimeType>application/x-zipped-shp</MimeType>
          </Format>
          <Format>
            <MimeType>application/vnd.google-earth.kml+xml</MimeType>
            <Schema>http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd</Schema>
          </Format>
          <Format>
            <MimeType>application/x-zipped-wkt</MimeType>
            <Encoding>Base64</Encoding>
          </Format>
        </Supported>
      </ComplexData>
    </Input>
    <Input maxOccurs="1" minOccurs="1">
      <ows:Identifier>width</ows:Identifier>
      <ows:Title>width</ows:Title>
      <LiteralData>
        <ows:DataType ows:reference="xs:double"/>
        <ows:AnyValue/>
      </LiteralData>
    </Input>
  </DataInputs>
  <ProcessOutputs>
    <Output>
      <ows:Identifier>result</ows:Identifier>
      <ows:Title>result</ows:Title>
      <ComplexOutput>
        <Default>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Schema>
          </Format>
        </Default>
        <Supported>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.0.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.0.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.0.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.1.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.0/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.1.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.1.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/3.2.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/3.2.1/base/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.0.0/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.0.0</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.0.0/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.2</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml; subtype=gml/2.1.2.1</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2.1/feature.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://www.opengeospatial.org/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://geoserver.itc.nl:8080/wps/schemas/gml/2.1.2/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Schema>http://schemas.opengis.net/gml/2.1.2/gmlpacket.xsd</Schema>
          </Format>
          <Format>
            <MimeType>application/x-zipped-shp</MimeType>
            <Encoding>base64</Encoding>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
            <Encoding>base64</Encoding>
          </Format>
          <Format>
            <MimeType>application/x-zipped-shp</MimeType>
          </Format>
          <Format>
            <MimeType>text/xml</MimeType>
          </Format>
          <Format>
            <MimeType>application/vnd.google-earth.kml+xml</MimeType>
            <Schema>http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd</Schema>
          </Format>
        </Supported>
      </ComplexOutput>
    </Output>
  </ProcessOutputs>
</xml-fragment>
org.n52.wps.server.algorithm.spatialquery.TouchesAlgorithm
org.n52.wps.server.algorithm.test.MultiReferenceInputAlgorithm
org.n52.wps.server.algorithm.JTSConvexHullAlgorithm
org.n52.wps.server.algorithm.test.MultiReferenceBinaryInputAlgorithm
org.n52.wps.server.algorithm.SimpleBufferAlgorithm
org.n52.wps.server.algorithm.raster.AddRasterValues
org.n52.wps.server.algorithm.simplify.DouglasPeuckerAlgorithm
org.n52.wps.server.algorithm.coordinatetransform.CoordinateTransformAlgorithm
org.n52.wps.server.algorithm.spatialquery.IntersectsAlgorithm
org.n52.wps.server.algorithm.test.DummyTestClass
org.n52.wps.server.algorithm.convexhull.ConvexHullAlgorithm
org.n52.wps.server.algorithm.intersection.IntersectionAlgorithm
data
width
Jun 06, 2013 8:17:34 AM org.geotools.referencing.factory.epsg.ThreadedEpsgFactory <init>
Information: Setting the EPSG factory org.geotools.referencing.factory.epsg.DefaultFactory to a 1800000ms timeout
Jun 06, 2013 8:17:34 AM org.geotools.referencing.factory.epsg.ThreadedEpsgFactory <init>
Information: Setting the EPSG factory org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory to a 1800000ms timeout
Jun 06, 2013 8:17:34 AM org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory createDataSource
Information: Building new data source for org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory
Jun 06, 2013 8:17:34 AM org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory createBackingStore
Information: Building backing store for org.geotools.referencing.factory.epsg.ThreadedHsqlEpsgFactory
14

Metadata

  • Topic created by: DanielNuest
  • Topic created on: 2013-03-21
Topic revision: r5 - 06 Jan 2015, benjaminpross
Legal Notice | Privacy Statement


This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Wiki? Send feedback