Skip to content

Commit

Permalink
Merge pull request #34 from deegree/handbook
Browse files Browse the repository at this point in the history
Improvements to the handbook + related code fixes
  • Loading branch information
hwbllmnn committed Jan 22, 2013
2 parents 03820fa + 7ef576b commit fec95bc
Show file tree
Hide file tree
Showing 57 changed files with 893 additions and 7,661 deletions.
Expand Up @@ -37,6 +37,7 @@

import static javax.faces.application.FacesMessage.SEVERITY_ERROR;
import static org.deegree.client.core.utils.ActionParams.getParam1;
import static org.deegree.commons.config.DeegreeWorkspace.getWorkspaceRoot;
import static org.deegree.services.controller.OGCFrontController.getServiceWorkspace;
import static org.slf4j.LoggerFactory.getLogger;

Expand Down Expand Up @@ -133,7 +134,7 @@ public String getNewConfigType() {
}

public ConfigManager() {
File proxyLocation = new File( getServiceWorkspace().getLocation(), "proxy.xml" );
File proxyLocation = new File( getWorkspaceRoot(), "proxy.xml" );
URL example = ProxyUtils.class.getResource( "/META-INF/schemas/proxy/3.0.0/example.xml" );
URL schema = ProxyUtils.class.getResource( "/META-INF/schemas/proxy/3.0.0/proxy.xsd" );
proxyConfig = new Config( proxyLocation, schema, example, "/console/jsf/proxy" );
Expand Down
Expand Up @@ -19,7 +19,7 @@
<h:panelGroup rendered="#{logBean.loggedIn}">
<h:panelGroup styleClass="welcomeText">
<br />
<h:outputText value="Use the general menu on the right to:" />
<h:outputText value="Use the general menu on the left to:" />
<ul>
<li>workspaces: Download and activate example configurations</li>
<li>proxy: Configure proxy settings</li>
Expand All @@ -28,7 +28,7 @@
<li>see layers: Display WMS layers</li>
</ul>
<h:outputText
value="The lower menu on the right configures the active workspace:" />
value="The lower menu on the left configures the active workspace:" />
<ul>
<li>web services: Configure offered OGC web services</li>
<li>data stores: Configure access to data sources</li>
Expand Down
Expand Up @@ -246,8 +246,12 @@ public void init( DeegreeServicesMetadataType serviceMetadata, DeegreeServiceCon
this.enableTransactions = enableTransactions.isValue();
this.idGenMode = parseIdGenMode( enableTransactions.getIdGen() );
}
disableBuffering = ( jaxbConfig.isDisableResponseBuffering() != null ) ? jaxbConfig.isDisableResponseBuffering()
: true;
if ( jaxbConfig.isEnableResponseBuffering() != null ) {
disableBuffering = !jaxbConfig.isEnableResponseBuffering();
} else if ( jaxbConfig.isDisableResponseBuffering() != null ) {
disableBuffering = jaxbConfig.isDisableResponseBuffering();
}

queryMaxFeatures = jaxbConfig.getQueryMaxFeatures() == null ? DEFAULT_MAX_FEATURES
: jaxbConfig.getQueryMaxFeatures().intValue();
checkAreaOfUse = jaxbConfig.isQueryCheckAreaOfUse() == null ? false : jaxbConfig.isQueryCheckAreaOfUse();
Expand Down
Expand Up @@ -28,7 +28,11 @@
</simpleContent>
</complexType>
</element>
<element name="DisableResponseBuffering" type="boolean" minOccurs="0" default="true" />
<choice>
<element name="EnableResponseBuffering" type="boolean" minOccurs="0" default="false" />
<!-- DisableResponseBuffering is deprecated -->
<element name="DisableResponseBuffering" type="boolean" minOccurs="0" default="true" />
</choice>
<element name="QueryCRS" type="string" minOccurs="1" maxOccurs="unbounded" />
<element name="QueryMaxFeatures" type="integer" minOccurs="0" default="15000" />
<element name="QueryCheckAreaOfUse" type="boolean" minOccurs="0" default="false" />
Expand Down
485 changes: 375 additions & 110 deletions deegree-services/deegree-webservices-handbook/src/main/sphinx/basics.rst

Large diffs are not rendered by default.

@@ -0,0 +1,14 @@
.. _anchor-configuration-crs:

============================
Coordinate reference systems
============================

Coordinate reference system are used in many places in deegree webservices:

* In incoming service requests (e.g. ``GetFeature``-requests to the WFS)
* In a lot of configuration files (e.g. in :ref:`anchor-configuration-featurestore`)

TODO


Expand Up @@ -204,6 +204,9 @@ Simple SQL feature store

The simple SQL feature store serves simple feature types that are stored in a spatially-enabled database. However, it's not suited for mapping rich GML application schemas and does not support transactions. If you need these capabilities, use the SQL feature store instead.

.. tip::
If you want to use the simple SQL feature store with Oracle, you will need to add Oracle's JDBC driver manually. This is described in :ref:`anchor-oraclejars`.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Minimal configuration example
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down Expand Up @@ -252,15 +255,20 @@ The configuration format is defined by schema file http://schemas.deegree.org/da
| LODStatement | 0..n | Complex | Statements for specific WMS scale ranges |
+-----------------------------+-------------+---------+------------------------------------------------------------------------------+

.. _anchor-configuration-sqlfeaturestore:

-----------------
SQL feature store
-----------------

The SQL feature store allows to configure highly flexible mappings between feature types and database tables. It can be used for simple mapping tasks (mapping a single database table to a feature type) as well as sophisticated ones (mapping a complete INSPIRE Data Theme to dozens or hundreds of database tables). As an alternative to relational decomposition setups, it additionally offers the so-called BLOB-mode which can store features of arbitrary complexity in a single table with almost zero configuration. In contrast to the simple SQL feature store, the SQL feature store is transaction capable (even for complex mappings) and very well suited for mapping rich GML application schemas. It currently supports the following backends:

* PostgreSQL (8.3, 8.4, 9.0, 9.1) with PostGIS extension (1.4, 1.5, 2.0)
* PostgreSQL (8.3, 8.4, 9.0, 9.1, 9.2) with PostGIS extension (1.4, 1.5, 2.0)
* Oracle Spatial (10g, 11g)

.. tip::
If you want to use the SQL feature store with Oracle, you will need to add Oracle's JDBC driver manually. This is described in :ref:`anchor-oraclejars`.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Minimal configuration example
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Expand Up @@ -24,4 +24,7 @@ deegree Webservices
renderstyles
serverconnections
processproviders
glossary
crs
restapi
javamodules

Expand Up @@ -4,7 +4,7 @@ Introduction

deegree webservices are implementations of the geospatial webservice specifications of the `Open Geospatial Consortium (OGC) <http://www.opengeospatial.org>`_ and the `INSPIRE Network Services <http://inspire.jrc.ec.europa.eu>`_. deegree webservices 3.2 includes the following services:

* `Web Feature Service (WFS) <http://www.opengeospatial.org/standards/wfs>`_: Provides access to raw geospatial vector data
* `Web Feature Service (WFS) <http://www.opengeospatial.org/standards/wfs>`_: Provides access to raw geospatial data objects
* `Web Map Service (WMS) <http://www.opengeospatial.org/standards/wms>`_: Serves maps rendered from geospatial data
* `Web Map Tile Service (WMTS) <http://www.opengeospatial.org/standards/wmts>`_: Serves pre-rendered map tiles
* `Catalogue Service for the Web (CSW) <http://www.opengeospatial.org/standards/cat>`_: Performs searches for geospatial datasets and services
Expand All @@ -19,20 +19,20 @@ Characteristics of deegree WFS
deegree WFS is an implementation of the `OGC Web Feature Service specification <http://www.opengeospatial.org/standards/wfs>`_. Notable features:

* Implements WFS standards 1.0.0, 1.1.0 and 2.0.0 [#f1]_
* Fully transactional
* Fully transactional (even for rich data models)
* Supports KVP, XML and SOAP requests
* GML 2/3.0/3.1/3.2 output/input
* Support for GetGmlObject requests and XLinks
* High performance and excellent scalability
* On-the-fly coordinate transformation
* Designed for rich data models from the bottom up
* Mapping of GML application schemas to relational models
* Backends support flexible mapping of GML application schemas to relational models
* ISO 19107-compliant geometry model: Complex geometries (e.g. non-linear curves)
* Advanced filter expression support based on XPath 1.0
* Supports numerous backends, such as PostGIS, Oracle Spatial, Shapefiles or GML instance documents

.. tip::
In order to learn about configuring a deegree-based WFS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-utah` and :ref:`anchor-workspace-inspire` for example deegree WFS configurations. Final steps are understanding :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wfs`.
In order to learn about configuring a deegree-based WFS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-utah` and :ref:`anchor-workspace-inspire` for example deegree WFS configurations. Continue with :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wfs`.

------------------------------
Characteristics of deegree WMS
Expand All @@ -51,9 +51,10 @@ deegree WMS is an implementation of the `OGC Web Map Service specification <http
* Nearly complete support for raster symbolizing as defined in SE (with some extensions)
* Complete support for TIME/ELEVATION and other dimensions for both feature and raster data
* Supports numerous backends, such as PostGIS, Oracle Spatial, Shapefiles or GML instance documents
* Can render rich data models directly

.. tip::
In order to learn about configuring a deegree-based WMS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-utah` and :ref:`anchor-workspace-inspire` for example deegree WMS configurations. Final steps are understanding :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wms`.
In order to learn about configuring a deegree-based WMS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-utah` and :ref:`anchor-workspace-inspire` for example deegree WMS configurations. Continue with :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wms`.

-------------------------------
Characteristics of deegree WMTS
Expand All @@ -67,7 +68,7 @@ deegree WMTS is an implementation of the `OGC Web Map Tile Service specification
* Supports on-the-fly caching (using EHCache)

.. tip::
In order to learn about configuring a deegree-based WMTS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. TODO: provide example workspace for WMTS. Final steps are understanding :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wmts`.
In order to learn about configuring a deegree-based WMTS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. TODO: provide example workspace for WMTS. Continue with :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wmts`.

------------------------------
Characteristics of deegree CSW
Expand All @@ -87,7 +88,7 @@ deegree CSW is an implementation of the `OGC Catalogue Service specification <ht
* Complex filter expressions

.. tip::
In order to learn about configuring a deegree-based CSW, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-csw` for an example deegree CSW configuration. Final steps are understanding :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-csw`.
In order to learn about configuring a deegree-based CSW, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-csw` for an example deegree CSW configuration. Continue with :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-csw`.

------------------------------
Characteristics of deegree WPS
Expand All @@ -108,7 +109,7 @@ deegree WPS is an implementation of the `OGC Processing Service specification <h
* Supports asynchronous execution (with polling of process status)

.. tip::
In order to learn about configuring a deegree-based WPS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-wps` for an example deegree WPS configuration. Final steps are understanding :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wps`.
In order to learn about configuring a deegree-based WPS, it is recommended to read chapters :ref:`anchor-installation` and :ref:`anchor-lightly` first. Check out :ref:`anchor-workspace-wps` for an example deegree WPS configuration. Continue with :ref:`anchor-configuration-basics` and :ref:`anchor-configuration-wps`.

.. rubric:: Footnotes

Expand Down
@@ -0,0 +1,29 @@
.. _anchor-configuration-javamodules:

==========================
Java modules and libraries
==========================

deegree webservices is a Java web application, and therefore the standard means of adding Java libraries to the classpath apply (e.g. you can add JARs to ``WEB-INF/lib`` of the deegree webapp directory). Alternatively, you may add your JARs to the ``modules/`` directory of your deegree workspace. This can be handy, as it allows to ship a self-contained workspace (no fiddling with other directories required) and also has the benefit the you can reload the deegree workspace only after adding your libraries (instead of restarting the deegree webapp or the whole web application container).

The remainder of this chapter describes to common use-cases.

.. _anchor-oraclejars:

^^^^^^^^^^^^^^^^^^^^^^^^^^
Adding Oracle JDBC drivers
^^^^^^^^^^^^^^^^^^^^^^^^^^

The following deegree modules support connecting to Oracle Spatial databases (10g, 11g):

* SimpleSQLFeatureStore
* SQLFeatureStore
* ISOMetadataStore

However, for copyright reasons, deegree webservices cannot ship the required Oracle JDBC driver. In order to enable Oracle connectivity, you need to add a compatible Oracle JDBC6-type driver (e.g. ``ojdbc6-11.2.0.2.jar``) to the classpath as discussed in the introduction of this chapter. Reload your deegree workspace (or the webapp/web application container if you added it by some other means than putting it into the ``modules/`` directory).

^^^^^^^^^^^^^^^^^^^^^^^^^
Code for custom processes
^^^^^^^^^^^^^^^^^^^^^^^^^


0 comments on commit fec95bc

Please sign in to comment.