diff --git a/deegree-documentation/src/main/asciidoc/appendix.adoc b/deegree-documentation/src/main/asciidoc/appendix.adoc index 94619cee50..d352ea0bfe 100644 --- a/deegree-documentation/src/main/asciidoc/appendix.adoc +++ b/deegree-documentation/src/main/asciidoc/appendix.adoc @@ -24,7 +24,7 @@ When using JNDI environment, more complex configurations are possible. For examp type="java.lang.Float" override="false" description="deegree Rendering - Miter Limit Factor"/> ---- -More details on the datails of configuration can be found inside the documentation of the used Java Servlet containter +More details on the details of configuration can be found inside the documentation of the used Java Servlet container like https://tomcat.apache.org/tomcat-9.0-doc/config/context.html#Environment_Entries[Apache Tomcat]. .List of current available parameters diff --git a/deegree-documentation/src/main/asciidoc/basics.adoc b/deegree-documentation/src/main/asciidoc/basics.adoc index 077a49717b..67da1c306f 100644 --- a/deegree-documentation/src/main/asciidoc/basics.adoc +++ b/deegree-documentation/src/main/asciidoc/basics.adoc @@ -2,7 +2,7 @@ == Configuration basics In the previous chapter, you learned how to access and log in to the -deegree service console and how to download and activate example +deegree webservices administration console and how to download and activate example workspaces. This chapter introduces the basic concepts of deegree webservices configuration: @@ -10,7 +10,7 @@ webservices configuration: * Workspace files and resources * Workspace directories and resource types * Resource identifiers and dependencies -* Usage of the service console for workspace configuration +* Usage of the administration console for workspace configuration The final section of this chapter describes recommended practices for creating your own workspace. The remaining chapters of the documentation @@ -75,7 +75,7 @@ sections: For example, to offer a Web Feature Service, a feature store (based on a -shapefile, database, etc) must be configured. With a rasterfile, like a +shapefile, database, etc.) must be configured. With a rasterfile, like a GeoTIFF, you can configure a tile store and a coverage store to offer a Web Map Service. @@ -121,7 +121,7 @@ read/write access to this directory! [[anchor-global-configuration]] ==== Global configuration files and the active workspace -If you downloaded all four example workspaces (as described in <>), set a console password and the proxy parameters, +If you downloaded all four example workspaces (as described in <>), set an administration console password and the proxy parameters, your _.deegree_ directory will look like this: .Example _.deegree_ directory @@ -136,7 +136,7 @@ files exist: |=== |File name |Function | |Workspace directory -|console.pw |Password for services console +|console.pw |Password for the administration console |proxy.xml |Proxy settings |webapps.properties |Selects the active workspace |config.apikey |Contains the key to protect the REST API @@ -146,7 +146,7 @@ NOTE: Only one single workspace can be active at a time! The information on the active one is stored in file _webapps.properties_. TIP: Usually, you don't need to care about the three files that are located -at the top level of this directory. The service console creates and +at the top level of this directory. The administration console creates and modifies them as required (e.g. when switching to a different workspace). In order to create a deegree webservices setup, you will need to create or edit resource configuration files in the active @@ -159,7 +159,7 @@ _webapps.properties_ stores the active workspace for every deegree webapp separately. TIP: If there is no _config.apikey_ file, one will be generated on startup -with an random value. Alternatively, a value of `*` in config.apikey will +with a random value. Alternatively, a value of `*` in config.apikey will turn off security for the REST API. We strongly advise against doing this in productive environments. @@ -290,7 +290,7 @@ documented for each resource configuration format. The configuration format for the deegree proxy configuration is defined by schema file https://schemas.deegree.org/core/3.5/proxy/proxy.xsd. The following table lists all available configuration options. When -specifiying them, their order must be respected. +specifying them, their order must be respected. [width="100%",cols="24%,10%,7%,59%",options="header",] |=== @@ -313,21 +313,21 @@ specifiying them, their order must be respected. |FtpProxyPort | 0..1 | Integer | The port number of the proxy server for protocol `FTP` -|ProxyUser |0..1 | String | Username for proxy server authtentication +|ProxyUser |0..1 | String | Username for proxy server authentication -|HttpProxyUser |0..1 | String | Username for proxy server authtentication for protocol `HTTP` +|HttpProxyUser |0..1 | String | Username for proxy server authentication for protocol `HTTP` -|HttpsProxyUser |0..1 | String | Username for proxy server authtentication for protocol `HTTPS` +|HttpsProxyUser |0..1 | String | Username for proxy server authentication for protocol `HTTPS` -|FtpProxyUser |0..1 | String | Username for proxy server authtentication for protocol `FTP` +|FtpProxyUser |0..1 | String | Username for proxy server authentication for protocol `FTP` -|ProxyPassword |0..1 | String | Password for proxy server authtentication +|ProxyPassword |0..1 | String | Password for proxy server authentication -|HttpProxyPassword |0..1 | String | Password for proxy server authtentication for protocol `HTTP` +|HttpProxyPassword |0..1 | String | Password for proxy server authentication for protocol `HTTP` -|HttpsProxyPassword |0..1 | String | Password for proxy server authtentication for protocol `HTTPS` +|HttpsProxyPassword |0..1 | String | Password for proxy server authentication for protocol `HTTPS` -|FtpProxyPassword |0..1 | String | Password for proxy server authtentication for protocol `FTP` +|FtpProxyPassword |0..1 | String | Password for proxy server authentication for protocol `FTP` |NonProxyHosts |0..1 | String | Indicates the hosts that should be accessed without going through the proxy. Multiple values can be separated by the `{vbar}` character. @@ -358,37 +358,37 @@ specifiying them, their order must be respected. ____ NOTE: When specifying the proxy server, this can be defined individually -per protocol or in general. It is recommend to specify the proxy servers with +per protocol or in general. It is recommended to specify the proxy servers with protocol if possible and to define the settings for `HttpProxy...` and `HttpsProxy...` identically. ____ -=== Using the service console for managing resources +=== Using the deegree webservices administration console for managing resources As an alternative to dealing with the workspace resource configuration -files directly on the filesystem, you can also use the service console -for this task. The service console has a corresponding menu entry for +files directly on the filesystem, you can also use the administration console +for this task. The administration console has a corresponding menu entry for every type of workspace resource. All resource menu entries are grouped in the lower menu on the left: .Workspace resource menu entries image::console_resources.png[Workspace resource menu entries,scaledwidth=50.0%] -Although the console offers additional functionality for some resource +Although the administration console offers additional functionality for some resource types, the basic management of resources is always identical. ==== Displaying configured resources In order to display the configured workspace resources of a certain type, click on the corresponding menu entry. The following screenshot -shows the metadata store resources in deegree-workspace-csw: +shows the tile store resources in deegree-workspace-utah: -.Displaying metadata store resources -image::console_metadata_stores.png[Displaying metadata store resources,scaledwidth=50.0%] +.Displaying tile store resources +image::console_tile_stores.png[Displaying tile store resources,scaledwidth=50.0%] The right part of the window displays a table with all configured -metadata store resources. In this case, the workspace contains a single -resource with identifier "iso19115" which is in status "On". +tile store resources. In this case, the workspace contains a single +resource with identifier "utah_ortho" which is in status "On". ==== Deactivating a resource @@ -426,20 +426,18 @@ image::console_editing.png[Editing a resource configuration,scaledwidth=50.0%] You can now perform configuration changes in the text area and click on "Save". Or click any of the links: -* Display Schema: Displays the XML schema file for the resource -configuration format. * Cancel: Discards any changes. -* Turn on highlighting: Perform syntax highlighting. +* Validate: Perform an XML validation. If there are no (syntactical) errors in the configuration, the "Save" link will take you back to the corresponding resource view. Before -actually saving the file, the service console will perform an XML +actually saving the file, the administration console will perform an XML validation of the file and display any syntactical errors: .Displaying a syntax error image::console_edit_error.png[Displaying a syntax error,scaledwidth=50.0%] -In this case, the mandatory "JDBCConnId" element was removed, which +In this case, the mandatory "TileMatrixSetId" element was removed, which violates the configuration schema. This needs to be corrected, before "Save" will actually save the file to the workspace directory. @@ -467,7 +465,7 @@ configuration file in the workspace. [[anchor-console-errors]] ==== Displaying error messages -One of the most helpful features of the console is that it can help to +One of the most helpful features of the administration console is that it can help to detect and fix errors in a workspace setup. For example, if you delete (or deactivate) JDBC connection "conn1" in deegree-workspace-csw and click "[Reload]", you will see the following: @@ -513,11 +511,7 @@ chapters, but here's a short overview: service metadata ("Edit metadata"), edit controller configuration ("Edit global config") * Feature Stores: Display feature types and number of stored features -("Info"), Import GML feature collections ("Loader"), Mapping wizard -("Create new" SQL feature store) -* Metadata Stores: Import metadata sets ("Loader"), create database -tables ("Setup tables") -* Server Connections (JDBC): Test database connection ("Test") +("Info") === Best practices for creating workspaces @@ -529,9 +523,7 @@ For creating your own workspace, you have two options. Option 1 is to use an existing workspace as a template and adapt it to your needs. Option 2 is to start from scratch, using an empty workspace. Adapting an existing workspace makes a lot of sense if your use-case is close to the -scenario of the workspace. For example, if you want to set up INSPIRE -View and Download Services, it is a good option to use -<> as a starting point. +scenario of the workspace. In order to create a new workspace, simply create a new directory in the _.deegree_ directory. @@ -539,7 +531,7 @@ _.deegree_ directory. .Creating the new workspace _myscenario_ image::workspace-new.png[Creating the new workspace _myscenario_] -Afterwards, switch to the new workspace using the services console, as +Afterwards, switch to the new workspace using the administration console, as described in <>. ==== Find out which resources you need @@ -584,12 +576,12 @@ created later (references have to be added to the layers configuration). All deegree XML configuration files have a corresponding XML schema, which allows to detect syntactical errors easily. The editor built into -the services console performs validation when you save a configuration +the administration console performs validation when you save a configuration file. If the contents is not valid according to the schema, the file will not be saved, but an error message will be displayed: -.The services console displays an XML syntax error -image::console_edit_error.png[The services console displays an XML syntax error,scaledwidth=50.0%] +.The administration console displays an XML syntax error +image::console_edit_error.png[The administration console displays an XML syntax error,scaledwidth=50.0%] If you prefer to use a different editor for editing deegree's configuration files, it is highly recommended to choose a validating XML @@ -602,7 +594,7 @@ schema files are hosted at https://schemas.deegree.org. ==== Check the resource status and error messages -As pointed out in <>, the service console +As pointed out in <>, the administration console indicates errors if resources cannot be initialized. Here's an example: .Error message diff --git a/deegree-documentation/src/main/asciidoc/cli-utility.adoc b/deegree-documentation/src/main/asciidoc/cli-utility.adoc index 2f5e6ac415..b03ae2c07a 100644 --- a/deegree-documentation/src/main/asciidoc/cli-utility.adoc +++ b/deegree-documentation/src/main/asciidoc/cli-utility.adoc @@ -1,6 +1,6 @@ [[deegree-gml-tools]] == deegree GML tools CLI -The deegree GML tools command line interface (CLI) provides commands to generate SQL DDL scripts and deegree SQLFeatureStore configuration files from GML application schemas. Furthermore it provides a interface to load a GML file from disk into a deegree SQLFeatureStore splitting large files into smaller chunks so that even huge (1 GB and more) files can be imported. +The deegree GML tools command line interface (CLI) provides commands to generate SQL DDL scripts and deegree SQLFeatureStore configuration files from GML application schemas. Furthermore, it provides a interface to load a GML file from disk into a deegree SQLFeatureStore splitting large files into smaller chunks so that even huge (1 GB and more) files can be imported. You can download the latest release from https://repo.deegree.org/repository/public/org/deegree/deegree-tools-gml/. diff --git a/deegree-documentation/src/main/asciidoc/coveragestores.adoc b/deegree-documentation/src/main/asciidoc/coveragestores.adoc index 9be11ea0e9..0a13206ce4 100644 --- a/deegree-documentation/src/main/asciidoc/coveragestores.adoc +++ b/deegree-documentation/src/main/asciidoc/coveragestores.adoc @@ -4,7 +4,7 @@ Coverage stores are resources that provide access to raster data. The most common use case for coverage stores is to provide data for coverage layers. You can access this configuration level by clicking the -*coverage stores* link in the service console. The corresponding +*coverage stores* link in the administration console. The corresponding resource configuration files are located in subdirectory *datasources/coverage/* of the active deegree workspace directory. @@ -48,11 +48,11 @@ declare the pixel origin of the coverage. If omitted, center is used as origin location. * The nodata attribute can be optionally used to declare a nodata value. * The readWorldFiles parameter can have the values true or false to -indicate if worlfiles will be read. Default value is true. -* The StorageCRS paramter is optional but recommended. It contains the +indicate if world files will be read. Default value is true. +* The StorageCRS parameter is optional but recommended. It contains the EPSG code of the coverage sources. * The RasterFile and RasterDirectory parameters contain the path to your -coverage sources. The RasterDirectory paramter can additionally have the +coverage sources. The RasterDirectory parameter can additionally have the recursive attribute with true and false as value to declare subdirectories to be included. @@ -61,7 +61,7 @@ Depending on the raster data used, the size of the cache files may vary. In individual cases, the use of cache files can be prevented by creating a file _.no-cache_ or _.no-cache-_ for whole files or individual levels. Disabling the cache files can have a negative effect -on memory consumption. It is recommend to leave the cache enabled if possible. +on memory consumption. It is recommended to leave the cache enabled if possible. === MultiResolutionRaster @@ -93,7 +93,7 @@ Here is an example for a MultiResolutionRaster: * A MultiResolustionRaster contains at least one Resolution * The Raster parameter has a res attribute. Its value is related to the provided resolution. -* The StorageCRS paramter is optional but recommended. It contains the +* The StorageCRS parameter is optional but recommended. It contains the EPSG code of the coverage sources. * All elements and attributes from the Raster configuration can be used for the resolutions. @@ -105,7 +105,7 @@ it is required that the raster pyramid must be a GeoTIFF, containing the extent and coordinate system of the data. Overlays must be multiples of 2. This is best tested with source data being processed with GDAL. -==== Prerequisities for Pyramids +==== Prerequisites for Pyramids * Must be a GeoTiff as BigTiff * Must be RGB or RGBA @@ -144,7 +144,7 @@ To be able to use the module it is required that the Oracle GeoRaster libraries are available, see <> for details. The following example shows, how to configure a GeoRaster coverage -(minmal required options): +(minimal required options): [source,xml] ---- @@ -189,14 +189,14 @@ store. ---- -If your GeoRaster coverage only consist in a greyscale coverage or you -only want to server a single band you could specifiy the following: +If your GeoRaster coverage only consist in a greyscale coverage, or you +only want to server a single band you could specify the following: [source,xml] ---- 1 -] + ---- [width="100%",cols="20%,11%,7%,62%",options="header",] diff --git a/deegree-documentation/src/main/asciidoc/featurestores.adoc b/deegree-documentation/src/main/asciidoc/featurestores.adoc index c1fc322502..238164e441 100644 --- a/deegree-documentation/src/main/asciidoc/featurestores.adoc +++ b/deegree-documentation/src/main/asciidoc/featurestores.adoc @@ -9,7 +9,7 @@ features. The two most common use cases for feature stores are: The remainder of this chapter describes some relevant terms and the feature store configuration files in detail. You can access this -configuration level by clicking *feature stores* in the service console. +configuration level by clicking *feature stores* in the administration console. The corresponding resource configuration files are located in subdirectory _datasources/feature/_ of the active deegree workspace directory. @@ -310,7 +310,7 @@ _urn:ogc:def:crs:EPSG::4258_. The configuration format for the deegree memory feature store is defined by schema file https://schemas.deegree.org/core/3.5/datasource/feature/memory/memory.xsd. The following table lists all available configuration options (the -complex ones contain nested options themselves). When specifiying them, +complex ones contain nested options themselves). When specifying them, their order must be respected. [width="100%",cols="24%,10%,7%,59%",options="header",] @@ -399,7 +399,7 @@ _BBoxStatement_. A minimal configuration example looks like this: The configuration format is defined by schema file https://schemas.deegree.org/core/3.5/datasource/feature/simplesql/simplesql.xsd. The following table lists all available configuration options (the -complex ones contain nested options themselves). When specifiying them, +complex ones contain nested options themselves). When specifying them, their order must be respected. [width="100%",cols="24%,10%,7%,59%",options="header",] @@ -441,7 +441,7 @@ contrast to the simple SQL feature store, the SQL feature store is transaction capable (even for complex mappings) and ideally suited for mapping rich GML application schemas. -TIP: SQLFeatureStore configurations can be filed in sub directories. To reference a feature store the id must include the directory. Example: 'dir/featureStore' if the SQLFeatureStore configuration file 'featureStore.xml' is filed in the directory 'dir'. +TIP: SQLFeatureStore configurations can be filed in subdirectories. To reference a feature store the id must include the directory. Example: 'dir/featureStore' if the SQLFeatureStore configuration file 'featureStore.xml' is filed in the directory 'dir'. ==== Minimal configuration example @@ -721,7 +721,7 @@ subsections. By default, the name of a mapped feature type will be derived from the table name. If the table is named _country_, the feature type name will be _app:country_ (app=http://www.deegree.org/app). The _name_ -attribute allows to set the feature type name explicity. In the +attribute allows to set the feature type name explicitly. In the following example, it will be _app:Land_ (Land is German for country). *SQL feature store: Customizing the feature type name* @@ -819,7 +819,7 @@ __ must have a unique feature id prefix. ===== Customizing the default sort order of features -By default the sort order of the features returned is given by the underlying database. +By default, the sort order of the features returned is given by the underlying database. To configure a defined sort order the __ element can be used. The configuration applies to simple properties only. It is possible to define multiple properties and if sorting should be ascending or descending. If this configuration is applied it is @@ -984,21 +984,16 @@ GML application schema files: ===== Recommended workflow -NOTE: This section assumes that you already have an existing database that you -want to map to a GML application schema. If you want to derive a -database model from a GML application schema, see -<>. - Manually creating a mapping for a rich GML application schema may appear -to be a dauting task at first sight. Especially when you are still +to be a daunting task at first sight. Especially when you are still trying to figure out how the configuration concepts work, you will be using a lot of trial-and-error. Here are some general practices to make this as painless as possible. * Map one property of a feature type at a time. -* Use the *Reload* link in the services console to activate changes. +* Use the *Reload* link in the administration console to activate changes. * After changing the configuration file, make sure that the status of -the feature store stays green (in the console). If an exclamation mark +the feature store stays green (in the administration console). If an exclamation mark occurs, you have an error in your configuration. Check the error message and fix it. * Check the results of your change (see below) @@ -1029,13 +1024,6 @@ data model of an application schema: * Manually (or with the help of a generic XML tool such as XMLSpy) analyze the GML application schema to determine the feature types and understand their data model -* Use the services console to auto-generate a mapping configuration (see -<>). It should reflect the structure and -datatypes correctly. Auto-generate the mapping, create a copy of the -file and start with a minimal version (_FeatureTypeMapping_ by -_FeatureTypeMapping_, property by property). Adapt it to your own -database tables and columns and remove optional elements and attributes -that you don't want to map. * Use the deegree support options (mailing lists, commercial support) to get help. @@ -1050,7 +1038,7 @@ In schema-driven mode, the __ element basically works as in table-driven mode (see <>). It defines a mapping between a table in the database and a feature type. However, there are additional -possibilities and it's usually more suitable to focus on feature types +possibilities, and it's usually more suitable to focus on feature types and XML nodes instead of tables and table columns. Here's an overview of the __ options and their meaning in schema-driven mode: @@ -1119,7 +1107,7 @@ element and the current table context is a row of table _ad_address_. The first (required) property that we're going to map is _ad:inspireId_. The schema defines that _ad:inspireId_ has as child element named _base:Identifier_ which in turn has two child elements -named _base:localId_ and _base:namespace_. Lets's assume that we +named _base:localId_ and _base:namespace_. Let's assume that we have a column _localid_ in our table, that we want to map to _base:localId_, but for _base:namespace_, we don't have a corresponding column. We want this element to have the fixed value @@ -1552,7 +1540,7 @@ to _true_. * In all other cases, the _NULL_ is escalated to the container element using the same strategy (until the feature level has been reached). -This works well most of the times, but sometimes, it can be handy to +This works well most of the time, but sometimes, it can be handy to override this behaviour. For that, each __, __, __ or __ configuration element supports the optional attribute _nullEscalation_. The following config snippet @@ -1644,14 +1632,10 @@ type NOTE: In order for __ to work, you need to have the correct tables in your database and initialize the feature type table with the -names of all feature types you want to use. We recommend not to do this -manually, see <>. The wizard will also create -suitable indexes to speed up queries. +names of all feature types you want to use. NOTE: You may wonder how to get data into the database in BLOB mode. As for -standard mapping, you can do this by executing WFS-T requests or by -using the feature store loader. Its usage is described in the last steps -of <>. +standard mapping, you can do this by executing WFS-T requests. NOTE: In BLOB mode, only spatial and feature id queries can be mapped to SQL WHERE-constraints. All other kinds of filter conditions are performed in @@ -1738,11 +1722,11 @@ newly assigned feature id. ===== UUID generator -The UUID generator generator uses Java's UUID implementation to generate +The UUID generator uses Java's UUID implementation to generate new and unique identifiers. This requires that the database column for the id is a character column that can store strings with a length of 36 characters and that the database does not perform any kind of insertion -value generation for this column (e.g triggers). +value generation for this column (e.g. triggers). *SQL feature store: UUID generator example* @@ -1775,8 +1759,8 @@ column _attr_gml_id_. The sequence id generator queries a database sequence to generate new and unique identifiers. This requires that the database column for the id is compatible with the values generated by the sequence and that the -database does not perform any kind of automatical value insertion for -this column (e.g triggers). +database does not perform any kind of automatic value insertion for +this column (e.g. triggers). *SQL feature store: Database sequence generator example* @@ -1823,201 +1807,6 @@ server. If you want to turn off in-memory filtering completely, use __. If this option is specified and a filter requires in-memory filtering, the query will be rejected. -[[anchor-mapping-wizard]] -==== Auto-generating a mapping configuration and tables - -Although this functionality is still in beta stage, the services console -can be used to automatically derive an SQL feature store configuration -and set up tables from an existing GML application schema. If you don't -have an existing database structure that you want to use, you can use -this option to create a working database set up very quickly. And even -if you have an existing database you need to map manually, this -functionality can be prove very helpful to generate a valid mapping -configuration to start with. - -NOTE: As every (optional) attribute and element will be considered in the -mapping, you may easily end up with hundreds of tables or columns. - -This walkthrough is based on the INSPIRE Annex I schemas, but you should -be able to use these instructions with other GML application schemas as -well. Make sure that the INSPIRE workspace has been downloaded and -activated as described in <>. As another -prerequisite, you will have to create an empty, spatially-enabled -PostGIS database that you can connect to from your deegree installation. - -TIP: Instead of PostGIS, you can also use an Oracle Spatial or an Microsoft -SQL Server database. In order to enable support for these databases, see -<>. - -NOTE: If the application schema contains UTF-8 characters which are not part -of the 7-bit ASCII subset they are normalised during the generation of -the feature store configuration for the database mapping (but kept for -the feature type names). So the mapping to table and column names -contains only 7-bit ASCII character and it is no requirement to the -database to use UTF-8. - -As a first step, create a JDBC connection to your database. Click -*server connections -> jdbc* and enter *inspire* (or an other -identifier) as connection id: - -.Creating a JDBC connection -image::console_featurestore_mapping1.jpg[Creating a JDBC connection,scaledwidth=50.0%] - -Afterwards, click *Create new* and enter the connection details to your -database: - -.Creating a JDBC connection -image::console_featurestore_mapping2.jpg[Creating a JDBC connection,scaledwidth=50.0%] - -By clicking *Test connection*, you can ensure that deegree can connect -to your database: - -.Testing the JDBC connection -image::console_featurestore_mapping3.jpg[Testing the JDBC connection,scaledwidth=50.0%] - -If everything works, click *Create* to finish the creation of your JDBC -resource: - -.Testing the JDBC connection -image::console_featurestore_mapping4.jpg[Testing the JDBC connection,scaledwidth=50.0%] - -Now, change to *data stores -> feature*. We will have to delete the -existing (memory-based) feature store first. Click *Delete*: - -.Deleting the memory-based feature store -image::console_featurestore_mapping5.jpg[Deleting the memory-based feature store,scaledwidth=50.0%] - -Enter "inspire" as name for the new feature store, select "SQL" from the -drop-down box and click *Create new*: - -.Creating a new SQL feature store resource -image::console_featurestore_mapping6.jpg[Creating a new SQL feature store resource,scaledwidth=50.0%] - -Select "Create tables from GML application schema" and click *Next*: - -.Mapping a new SQL feature store configuration -image::console_featurestore_mapping7.jpg[Mapping a new SQL feature store configuration,scaledwidth=50.0%] - -You can now select the GML application schema files to be used. For this -walkthrough, tick _Addresses.xsd_, _AdministrativeUnits.xsd_ and -_CadastralParcels.xsd_ (if you select all schema files, hundreds of -feature types from INPIRE Annex I will be mapped): - -.Selecting the GML schema files to be considered -image::console_featurestore_mapping8.jpg[Selecting the GML schema files to be considered,scaledwidth=50.0%] - -NOTE: This view presents any .xsd files that are located below the -*appschemas/* directory of your deegree workspace. If you want to map -any other GML application schema (such as GeoSciML or CityGML), place a -copy of the application schema files into the *appschemas/* directory -(using your favorite method, e.g. a file browser) and click *Rescan*. -You should now have the option to select the files of this application -schema in the services console view. - -.Selecting the GML schema files to be considered -image::console_featurestore_mapping9.jpg[Selecting the GML schema files to be considered,scaledwidth=50.0%] - -Scroll down and click *Next*. - -.Selecting mapping type and storage CRS -image::console_featurestore_mapping10.jpg[Selecting mapping type and storage CRS,scaledwidth=50.0%] - -You will be presented with a rough analysis of the feature types -contained in the selected GML application schema files. Select -"Relational" (you may also select BLOB if your prefer this kind of -storage) and enter "EPSG:4258" as storage CRS (this is the code for -ETRS89, the recommmended CRS for harmonized INSPIRE datasets). After -clicking *Next*, an SQL feature store configuration will be -automatically derived from the application schema: - -.The auto-generated SQL feature store configuration -image::console_featurestore_mapping11.jpg[The auto-generated SQL feature store configuration,scaledwidth=50.0%] - -Click *Save* to store this configuration: - -.Auto-generated SQL statements for creating tables -image::console_featurestore_mapping12.jpg[Auto-generated SQL statements for creating tables,scaledwidth=50.0%] - -Now, click *Create DB tables*. You will be presented with an -auto-generated SQL script for creating the required tables in the -database: - -.Auto-generated SQL statements for creating tables -image::console_featurestore_mapping13.jpg[Auto-generated SQL statements for creating tables,scaledwidth=50.0%] - -Click *Execute*. The SQL statements will now be executed against your -database and the tables will be created: - -.Mapping finished -image::console_featurestore_mapping15.jpg[Mapping finished,scaledwidth=50.0%] - -Click *Start feature store*: - -.Finished -image::console_featurestore_mapping17.jpg[Finished,scaledwidth=50.0%] - -Click *Reload* to force a reinitialization of the other workspace -resources. We're finished. Features access of the WFS and WMS uses your -database now. However, as your database is empty, the WMS will not -render anything and the WFS will not return any features when queried. -In order to insert some harmonized INSPIRE features, click *send -requests* and select one of the insert requests: - -Use the third drop-down menu to select an example request. Entries -"Insert_200.xml" or "Insert_110.xml" can be used to insert a small -number of INSPIRE Address features using WFS-T insert requests: - -.WFS-T example requests -image::console_workspace_inspire3.png[WFS-T example requests,scaledwidth=50.0%] - -Click *Send* to execute the request. After successful insertion, the -database contains a few addresses, and you may want to move back to the -layer overview (*see layers*). If you activate the AD.Address layer, the -newly inserted features will be rendered by the deegree WMS (look for -them in the area of Enkhuizen): - -.Ad.Address layer after insertion of example Address features -image::console_workspace_inspire4.png[Ad.Address layer after insertion of example Address features,scaledwidth=50.0%] - -Of course, you can also perform WFS queries against the database -backend, such as requesting of INSPIRE Addresses by street name: - -.More WFS examples -image::console_workspace_inspire5.png[More WFS examples,scaledwidth=50.0%] - -Besides WFS-T requests, there's another handy option for inserting -GML-encoded features. Click *data stores -> feature* to access the -feature store view again: - -.Accessing the feature store loader -image::console_featurestore_mapping18.jpg[Accessing the feature store loader,scaledwidth=50.0%] - -After clicking *Loader*, you will be presented with a simple view where -you can insert a URL of a valid GML dataset: - -.The feature store loader -image::console_featurestore_mapping19.jpg[The feature store loader,scaledwidth=50.0%] - -Basically, you can use this view to insert any valid, GML-encoded -dataset, as long as it conforms to the application schema. The INSPIRE -workspace contains some suitable example datasets, so you may use a -file-URL like: - -* file:/home/kelvin/.deegree/deegree-workspace-inspire/data/au-provincies.gml -* file:/home/kelvin/.deegree/deegree-workspace-inspire/data/au-gemeenten.gml -* file:/home/kelvin/.deegree/deegree-workspace-inspire/data/au-land.gml -* file:/home/kelvin/.deegree/deegree-workspace-inspire/data/cadastralparcels-limburg.xml -* file:/home/kelvin/.deegree/deegree-workspace-inspire/data/cadastralparcels-northholland.xml - -TIP: The above URLs are for a UNIX system with a user named "kelvin". You -will need to adapt the URLs to match the location of your workspace -directory. - -After entering the URL, click *Import*: - -.Imported INSPIRE datasets via the Loader -image::console_featurestore_mapping20.jpg[Imported INSPIRE datasets via the Loader,scaledwidth=50.0%] - ==== Spatial extent of FeatureTypes The spatial extent of all feature types defined in all SQLFeatureStore configurations are cached in a file named _bbox_cache.properties_. The file is created when the workspace is initialised. diff --git a/deegree-documentation/src/main/asciidoc/filterencoding.adoc b/deegree-documentation/src/main/asciidoc/filterencoding.adoc index d22245257d..1310cd8c74 100644 --- a/deegree-documentation/src/main/asciidoc/filterencoding.adoc +++ b/deegree-documentation/src/main/asciidoc/filterencoding.adoc @@ -3,7 +3,7 @@ deegree makes extensive use of the OGC Filter Encoding standard. Within deegree there are implementations of the versions 1.1.0 and 2.0.0 of -this standards and several extensions and additional functions. This +these standards and several extensions and additional functions. This chapter is meant to explain the filter capabilities of deegree which can be used within <> and <> requests. @@ -12,7 +12,7 @@ be used within <> and <>. The +setting a password for the administration console. How to set the password for +the administration console is described in <>. The same applies to the deegree REST API. Since both transfer the credentials as clear text (with a little bit of obscurity) it is highly recommended to enable encryption on the protocol level as described above! For further information how to protect the deegree REST API read more in <>. You should also consider to limit the access to both resources. Apply a filter by IP or hostname to -only allow a subset of machines to connect and access the deegree +only allow a subset of machines to connect and access the administration console and REST API. -WARNING: The deegree console provides access to the server file system. Therefore, +WARNING: The administration console provides access to the server file system. Therefore, you must not operate the Java Servlet container as root user! Furthermore, you should consider to enable the Java Security Manager and define restrictive file permissions.footnote:[How to run securely Java diff --git a/deegree-documentation/src/main/asciidoc/intro.adoc b/deegree-documentation/src/main/asciidoc/intro.adoc index 845687482a..cfc7b04f17 100644 --- a/deegree-documentation/src/main/asciidoc/intro.adoc +++ b/deegree-documentation/src/main/asciidoc/intro.adoc @@ -48,8 +48,7 @@ Server, Shapefiles or GML instance documents TIP: In order to learn the setup and configuration of a deegree-based WFS, we recommend to read chapters <> and -<> first. Check out <> and -<> for example deegree WFS configurations. +<> first. Check out <> for an example deegree WFS configuration. Continue with <> and <>. @@ -82,8 +81,7 @@ Shapefiles or GML instance documents TIP: In order to learn the setup and configuration of a deegree-based WMS, we recommend to read chapters <> and -<> first. Check out <> and -<> for example deegree WMS configurations. +<> first. Check out <> for an example deegree WMS configuration. Continue with <> and <>. diff --git a/deegree-documentation/src/main/asciidoc/javamodules.adoc b/deegree-documentation/src/main/asciidoc/javamodules.adoc index 55e1b9eaa6..2c7386bb37 100644 --- a/deegree-documentation/src/main/asciidoc/javamodules.adoc +++ b/deegree-documentation/src/main/asciidoc/javamodules.adoc @@ -68,8 +68,8 @@ NOTE: In addition to workspace directory _modules/_, directory _classes/_ can be used to add individual Java classes (and other files) to the classpath. This is usually not required. -WARNING: Since deegree 3.4 jdbc drivers are not longer loaded from workspace -classpath. Instead deegree follows the commonly used method to only use +WARNING: Since deegree 3.4 jdbc drivers are no longer loaded from workspace +classpath. Instead, deegree follows the commonly used method to only use jdbc drivers which are available either by the system (shared or server libraries) or by the application (_WEB-INF/lib_). @@ -77,14 +77,12 @@ libraries) or by the application (_WEB-INF/lib_). In order to see which JARs are available to your deegree webservices instance/workspace, use the "module info" link in the general section of -the service console: +the administration console: -.Displaying available JARs using the service console -image::module_info.png[Displaying available JARs using the service console,scaledwidth=50.0%] +.Displaying available JARs using the administration console +image::module_info.png[Displaying available JARs using the administration console,scaledwidth=50.0%] -The list of JARs section displays the JARs found on the web application -classpath, while the lower section displays the JARs found on the -workspace classpath. +The deegree module section displays the JARs found on the web application classpath. [[anchor-db-libraries]] === Adding database modules diff --git a/deegree-documentation/src/main/asciidoc/lightly.adoc b/deegree-documentation/src/main/asciidoc/lightly.adoc index 265601b27b..ad4a08a922 100644 --- a/deegree-documentation/src/main/asciidoc/lightly.adoc +++ b/deegree-documentation/src/main/asciidoc/lightly.adoc @@ -2,8 +2,8 @@ == Getting started In the previous chapter, you learned how to install and start deegree -webservices. In this chapter, we will introduce the deegree service -console and learn how to use it to perform basic tasks such as +webservices. In this chapter, we will introduce the deegree webservices +administration console and learn how to use it to perform basic tasks such as downloading and activating example configurations. In deegree terminology, a complete configuration for a deegree instance is called "deegree workspace". @@ -15,17 +15,17 @@ contains a complete configuration for a deegree webservice instance. You may have multiple deegree workspaces on your machine, but only a single workspace can be active. -=== Accessing deegree's service console +=== Accessing the deegree webservices administration console -The service console is a web-based administration interface for +The console is a web-based administration interface for configuring your deegree webservices installation. If deegree -webservices are running on your machine, you can usually access the +webservices are running on your machine, you can usually access the administration console from your browser via http://localhost:8080/deegree-webservices .deegree webservices administration console image::console_start.png[deegree webservices administration console,scaledwidth=50.0%] -TIP: You can access the service console from other machines on your network +TIP: You can access the administration console from other machines on your network by exchanging _localhost_ with the name or IP address of the machine that runs deegree webservices. @@ -34,7 +34,7 @@ relevant. The menu items in this section: * *workspaces*: Download and activate example configurations * *proxy*: Configure network proxy settings -* *password*: Set a password for accessing the service console +* *password*: Set a password for accessing the administration console * *module info*: Display loaded deegree modules * *send requests*: Send raw OGC web service requests * *see layers*: Display WMS layers @@ -50,13 +50,12 @@ image::console_workspaces.png[Workspaces view,scaledwidth=50.0%] The bottom of the workspaces view lists example workspaces provided by the deegree project. You should see the following items: -* *deegree-workspace-csw*: <> -* *deegree-workspace-inspire*: <> * *deegree-workspace-utah*: <> +* *deegree-workspace-csw*: <> * *deegree-workspace-wps*: <> TIP: If the machine running deegree webservices uses a proxy to access the -internet and you don't see any available example configurations, you +internet, and you don't see any available example configurations, you will probably have to configure the proxy settings. Ask your network administrator for details and use the *proxy* link to setup deegree's proxy settings. @@ -80,87 +79,8 @@ displayed next to "Active workspace:" (below the deegree logo). Your deegree instance is now running the configuration that is contained in the downloaded workspace. -[[anchor-workspace-inspire]] -=== Example workspace 1: INSPIRE Network Services - -This workspace is a basic INSPIRE View and Download Services setup. It -contains a transactional WFS (2.0.0 and 1.1.0) configured for all Annex -I Data Themes and a WMS (1.3.0 and 1.1.1) that is configured for three -layers from three Annex I Data Themes. The workspace contains some -harmonized dutch base data for Administrative Units, Cadastral Parcels -and Addresses. The WFS is configured to behave as an INSPIRE Download -service (Direct Access) that delivers the base data as valid, harmonized -INSPIRE GML and supports rich querying facilities. - -TIP: This workspace is pre-configured to load harmonized INSPIRE features -from GML files into memory, but can easily be adapted to use PostGIS, -Oracle Spatial or Microsoft SQL Server databases as storage backend (see -<> and <>). - -After downloading and activating the "deegree-workspace-inspire" -workspace, you can click the *see layers* link, which opens a simple map -client that displays a base map (not rendered by deegree, but loaded -from the OpenStreetMap servers). - -.Map client showing base map -image::console_workspace_inspire1.png[Map client showing base map,scaledwidth=50.0%] - -Click the *+* on the right to see a list of available layers. You can -now tick the INSPIRE layers offered by the deegree WMS. - -.INSPIRE layers rendered by the deegree WMS -image::console_workspace_inspire2.png[INSPIRE layers rendered by the deegree WMS,scaledwidth=50.0%] - -TIP: The map client is based on https://openlayers.org/[OpenLayers]. Drag the -map by holding the mouse button and moving your mouse. Zoom using the -controls on the left or with the mouse wheel. Alternatively, you can -open a zoom rectangle by holding the SHIFT key and clicking the mouse -button in the map area. - -Note that nothing will be rendered for layer AD.Address, as the -configured storage (memory) doesn't contain any Address features yet. -However, the workspace ships with example WFS-T requests that can be -used to insert a few harmonized INSPIRE Address features. Use the *send -requests* link in the service console to access the example requests -(you may need to go back in your browser first): - -Use the third drop-down menu to select an example request. Entries -*Insert_200.xml* or *Insert_110.xml* can be used to insert a small -number of INSPIRE Address features using WFS-T insert requests: - -.WFS-T example requests -image::console_workspace_inspire3.png[WFS-T example requests,scaledwidth=50.0%] - -Click *Send* to execute the request. After successful insertion, the -internal storage contains a few addresses, and you may want to move back -to the layer overview (*see layers*). If you activate layer AD.Address -this time, the newly inserted features will be rendered by the deegree -WMS (look for them in the area of Enkhuizen): - -.Ad.Address layer after insertion of example Address features -image::console_workspace_inspire4.png[Ad.Address layer after insertion of example Address features,scaledwidth=50.0%] - -The example requests also contain a lot of query examples, e.g. -requesting of INSPIRE Addresses by street name: - -.WFS query examples -image::console_workspace_inspire5.png[WFS query examples,scaledwidth=50.0%] - -TIP: This workspace is a good starting point for implementing scalable and -compliant INSPIRE View and/or Download Services. It can easily be -adapted to use PostGIS, Oracle Spatial or Microsoft SQL Server databases -as storage backend (see <> and -<>). Other things you may want to -adapt is the configuration of <>, the -<> or the reported -<>. - -TIP: You can also delete features using WFS transactions. After deletion, -they will not be rendered anymore as WMS and WFS operate on the same -feature store. - [[anchor-workspace-utah]] -=== Example workspace 2: Utah Webmapping Services +=== Example workspace 1: Utah Web Mapping Services The Utah example workspace contains a web mapping setup based on data from the state of Utah. It contains a WMS configuration (1.3.0 and @@ -170,67 +90,39 @@ shapefiles. Additionally, a WFS (2.0.0, 1.1.0 and 1.0.0) is configured that allows to access the raw vector data in GML format. After downloading and activating the "deegree-workspace-utah" workspace, -you can click on the *see layers* link, which opens a simple map client -that displays a base map (not rendered by deegree, but loaded from the -OpenStreetMap servers). - -.Map client showing base map -image::console_workspace_utah1.png[Map client showing base map,scaledwidth=50.0%] - -Click the *+* on the right to see a list of available layers. Tick the -ones you want to see. They will be rendered by your deegree webservices -instance. - -.Selecting WMS layers to be displayed -image::console_workspace_utah2.png[Selecting WMS layers to be displayed,scaledwidth=50.0%] - -TIP: The map client is based on https://openlayers.org/[OpenLayers]. Drag the -map by holding the mouse button and moving your mouse. Zoom using the -controls on the left or with the mouse wheel. Alternatively, you can -open a zoom rectangle by holding the SHIFT key and clicking the mouse -button in the map area. - -.Exploring Utah layers -image::console_workspace_utah3.png[Exploring Utah layers,scaledwidth=50.0%] +you may use any compliant OGC client for accessing the WMS and WFS. +Successfully tested desktop clients include QGIS, uDig and OpenJUMP. -In order to send requests against the WFS, you may use the *send -requests* link in the service console (you may need to go back in your -browser first). A simple interface for sending XML requests will open -up. This interface is meant for accessing OGC web services on the -protocol level and contains some reasonable example requests. +The service addresses to enter in your client are: -.Sending example requests -image::console_workspace_utah4.png[Sending example requests,scaledwidth=50.0%] +* http://localhost:8080/deegree-webservices/services/wfs +** WFS 2.0.0, 1.1.0 and 1.0.0 +* http://localhost:8080/deegree-webservices/services/wms +** WMS 1.3.0 and 1.1.1 +* http://localhost:8080/deegree-webservices/services/wmts +** WMTS 1.0.0 -Select one of the example requests from the third drop-down menu and -click *Send*. The server response will be displayed in the lower -section. +Here is an example of QGIS displaying multiple WMS layers from the Utah workspace, +including county names, groundwater, energy resources, and dominant vegetation data for Utah: -.Sending example requests -image::console_workspace_utah5.png[Sending example requests,scaledwidth=50.0%] +.QGIS displaying multiple WMS layer from the Utah workspace +image::qgis_workspace_utah.png[QGIS displaying a WMS layer from the Utah workspace,scaledwidth=50.0%] -TIP: WFS request types and their format are specified in the -https://www.ogc.org/standard/wfs/[OGC Web Feature Service -specification]. +The following WFS `GetFeature` request retrieves all airport features available in the Utah workspace: -TIP: Instead of using the built-in layer preview or the generic OGC client, -you may use any compliant OGC client for accessing the WMS and WFS. -Successfully tested desktop clients include QGIS (install WFS -plugin for accessing WFS), uDig and OpenJUMP. The -service address to enter in your client is: -http://localhost:8080/deegree-webservices/services. - -.QGIS displaying a WMS layer from the Utah workspace -image::qgis_workspace_utah.png[QGIS displaying a WMS layer from the Utah workspace,scaledwidth=50.0%] +[source, bash] +---- +curl -i -X GET \ + 'http://localhost:8080/deegree-webservices/services/wfs?service=WFS&request=GetFeature&version=2.0.0&typenames=app:Airports' +---- [[anchor-workspace-csw]] -=== Example workspace 3: An ISO Catalogue Service setup +=== Example workspace 2: An ISO Catalogue Service setup This workspace contains a catalogue service (CSW) setup that complies to -the ISO Application Profile. After downloading and starting it, you will -have to setup tables in a PostGIS database first. You will need to have -an empty and spatially-enabled PostGIS database handy that can be -accessed from the machine that runs deegree webservices. +the ISO Application Profile. After downloading and starting the workspace, +you will first need to set up tables in a PostGIS database. Ensure you +have an empty, spatially-enabled PostGIS database ready for this step. TIP: Instead of PostGIS, you can also use the workspace with an Oracle Spatial or a Microsoft SQL Server database. In order to enable support @@ -259,72 +151,149 @@ You should now have a working connection to your database, and the exclamation mark for *conn1* should disappear. Click *Reload* to force a full reinitialization of the workspace: -.Reinitializing the workspace -image::console_workspace_csw4.png[Reinitializing the workspace,scaledwidth=50.0%] +.Saving the configuration and reinitializing the workspace +image::console_workspace_csw4.png[Saving the configuration and reinitializing the workspace,scaledwidth=50.0%] -The indicated problems are gone now, but we still need to create the -required database tables. Change to the metadata store view (*data -stores -> metadata*) and click *Setup tables*: +The indicated problems are gone now, but the required database tables still need to created. .Metadata store view image::console_workspace_csw5.png[Metadata store view,scaledwidth=50.0%] -In the next view, click *Execute*: - -.Creating tables for storing ISO metadata records -image::console_workspace_csw6.png[Creating tables for storing ISO metadata records,scaledwidth=50.0%] - -.After table creation -image::console_workspace_csw7.png[After table creation,scaledwidth=50.0%] - -If all went well, you should now have a working, but empty CSW setup. -You can connect to the CSW with compliant clients or use the *send -requests* link to send raw CSW requests to the service. The workspace -comes with some suitable example requests. Use the third drop-down menu -to select an example request. Entry *complex_insert.xml* can be used to -insert some ISO example records using a CSW transaction request: - -.Choosing example requests -image::console_workspace_csw8.png[Choosing example requests,scaledwidth=50.0%] - -Click *Send*. After successful insertion, some records have been -inserted into the CSW (respectively the database). You may want to -explore other example requests as well, e.g. for retrieving records: - -.Other example CSW requests -image::console_workspace_csw9.png[Other example CSW requests,scaledwidth=50.0%] +Once you set up the required database tables, you should now have a working, but empty CSW setup. +You can then connect to the CSW with compliant clients and import data. [[anchor-workspace-wps]] -=== Example workspace 4: Web Processing Service demo +=== Example workspace 3: Web Processing Service demo This workspace contains a WPS setup with simple example processes and example requests. It's a good starting point for learning the WPS -protocol and the development of WPS processes. After downloading and -starting it, click *send requests* in order to find example requests -that can be sent to the WPS. Use the third drop-down menu to select an -example request: - -.Choosing a WPS example request -image::console_workspace_wps1.png[Choosing a WPS example request,scaledwidth=50.0%] - -Click *Send* to fire it against the WPS: - -.Sending an example request against the WPS -image::console_workspace_wps2.png[Sending an example request against the WPS,scaledwidth=50.0%] - -The response of the WPS will be displayed in the lower section: - -.WPS response is displayed -image::console_workspace_wps3.png[WPS response is displayed,scaledwidth=50.0%] - -Besides the geometry example processes, the parameter example process -and example requests may be interesting to developers who want to learn -development of WPS processes with deegree webservices: - -.Example requests for the parameter demo process -image::console_workspace_wps4.png[Example requests for the parameter demo process,scaledwidth=50.0%] - -The process has four input parameters (literal, bounding box, xml and +protocol and the development of WPS processes. The WPS workspace includes preconfigured +example requests that can be sent to the deegree WPS after starting the workspace. + +The following `DescribeProcess` request retrieves details about all available processes: + +[source, bash] +---- +curl -i -X GET \ + 'http://localhost:8080/deegree-webservices/services/wps?service=WPS&version=1.0.0&request=DescribeProcess&Identifier=ALL' +---- + +Available WPS processes listed in the response of the request: +[width="100%",cols="26%,80%",options="header",] +|=== +|Process Identifier |Description + +|Touches |Determining whether two GML geometries touch or not. +|Distance |Calculating the distance between two GML geometries. +|Centroid |Process for finding the centroid of a GML geometry. +|Union |Calculates the union of two GML geometries. +|ConvexHull |Calculating the Convex Hull of a GML geometry. +|Buffer |Process for creating a buffer around a GML geometry. +|Equals |Determining whether two GML geometries are equal. +|Intersection |Determining the intersection points between two GML geometries. +|Difference |Calculating the geometric-difference of two GML geometries. +|Contains |Determining whether a GML geometry contain another. +|ParameterDemoProcess |Process for demonstrating the use of different types of input and output parameters. +|=== + +**Example usages:** + +Here is an example `Execute` request using the `Buffer` example process: + +[source, bash] +---- +curl -i -X POST \ + -H "Content-Type:application/json" \ + -d \ +' + + Buffer + + + GMLInput + + + + + + + 10.0 10.0 20.0 10.0 20.0 20.0 10.0 20.0 10.0 10.0 + + + + + + + + + BufferDistance + + 5.0 + + + + + + BufferedGeometry + + + +' \ + 'http://localhost:8080/deegree-webservices/services/wps?service=WPS&version=1.0.0&request=Execute&Identifier=Buffer' +---- + +The response is the resulting GML representation of the buffered geometry based on the provided input geometry and buffer distance. +The output will be returned as XML in the specified text/xml format, containing the buffered geometry in the GML format: +[source,xml] +---- + + + + + 5.000000 10.000000 5.000000 20.000000 5.096074 20.975452 5.380602 21.913417 5.842652 22.777851 6.464466 23.535534 7.222149 24.157348 8.086583 24.619398 9.024548 24.903926 10.000000 25.000000 20.000000 25.000000 20.975452 24.903926 21.913417 24.619398 22.777851 24.157348 23.535534 23.535534 24.157348 22.777851 24.619398 21.913417 24.903926 20.975452 25.000000 20.000000 25.000000 10.000000 24.903926 9.024548 24.619398 8.086583 24.157348 7.222149 23.535534 6.464466 22.777851 5.842652 21.913417 5.380602 20.975452 5.096074 20.000000 5.000000 10.000000 5.000000 9.024548 5.096074 8.086583 5.380602 7.222149 5.842652 6.464466 6.464466 5.842652 7.222149 5.380602 8.086583 5.096074 9.024548 5.000000 10.000000 + + + +---- + +Besides the geometry example processes, the `ParameterDemoProcess` example process +may be interesting to developers who want to learn development of WPS processes with deegree webservices. +The following `DescribeProcess` request retrieves details about this process: +[source, bash] +---- +curl -i -X GET \ + 'http://localhost:8080/deegree-webservices/services/wps?service=WPS&version=1.0.0&request=DescribeProcess&Identifier=ParameterDemoProcess' +---- +Response (simplified): +[source,xml] +---- + + + + ParameterDemoProcess + + LiteralInput + BBOXInput + XMLInput + BinaryInput + + + LiteralOutput + BBOXOutput + XMLOutput + BinaryOutput + + + + +---- + +The process `ParameterDemoProcess` has four input parameters (literal, bounding box, xml and binary) that are simply piped to four corresponding output parameters. There's practically no process logic, but the included example requests demonstrate many of the possibilities of the WPS protocol: @@ -335,9 +304,6 @@ demonstrate many of the possibilities of the WPS protocol: * Storing of response documents * Asynchronous execution -.Example requests for the ParameterDemo process -image::console_workspace_wps5.png[Example requests for the ParameterDemo process,scaledwidth=50.0%] - TIP: WPS request types and their format are specified in the https://www.ogc.org/standard/wps/[OGC Web Processing Service specification]. diff --git a/deegree-documentation/src/main/asciidoc/logging.adoc b/deegree-documentation/src/main/asciidoc/logging.adoc index 355f47c9b1..ddd69ead02 100644 --- a/deegree-documentation/src/main/asciidoc/logging.adoc +++ b/deegree-documentation/src/main/asciidoc/logging.adoc @@ -1,8 +1,10 @@ [[anchor-logging-configuration]] === Logging configuration -The deegree webservices do use the https://logging.apache.org/log4j/2.x[Apache Log4j 2 framework] for logging. The configuration of the logging submodule can be stored in XML, YAML, JSON, or properties format. -The web application contains a default configuration file _/WEB-INF/classes/log4j2.properties_ with two appenders, one logging to the console Stdout (`System.out`) and the other writes the log messages into a file _logs/deegree.log_. +The deegree webservices do use the https://logging.apache.org/log4j/2.x[Apache Log4j 2 framework] for logging. +The configuration of the logging submodule can be stored in XML, YAML, JSON, or properties format. +The web application contains a default configuration file _/WEB-INF/classes/log4j2.properties_ with two appenders, +one logging to the console Stdout (`System.out`) and the other writes the log messages into a file _logs/deegree.log_. The configuration in a nutshell: diff --git a/deegree-documentation/src/main/asciidoc/metadatastores.adoc b/deegree-documentation/src/main/asciidoc/metadatastores.adoc index 3fe5e481ca..09a02a39a0 100644 --- a/deegree-documentation/src/main/asciidoc/metadatastores.adoc +++ b/deegree-documentation/src/main/asciidoc/metadatastores.adoc @@ -115,7 +115,7 @@ property _AnyText_, possible values are: ** Core: the core queryable properties (default) ** Custom: a custom set of properties defined as xpath expressions * _QueryableProperties_: Configuration of additional query properties. -Detailed informations can be found in the following example: +Detailed information can be found in the following example: + [source,xml] @@ -146,7 +146,7 @@ Detailed informations can be found in the following example: ---- NOTE: If a new queryable property is added or the AnyText value changed the -inserted metadata records are not adjusted to this changes! This means +inserted metadata records are not adjusted to these changes! This means for the example above that an existing record with SpatialRepresentationType 'raster' is not found by searching for all records with this type until the record is inserted or updated again! diff --git a/deegree-documentation/src/main/asciidoc/processproviders.adoc b/deegree-documentation/src/main/asciidoc/processproviders.adoc index 472f85f27f..e75595578a 100644 --- a/deegree-documentation/src/main/asciidoc/processproviders.adoc +++ b/deegree-documentation/src/main/asciidoc/processproviders.adoc @@ -194,7 +194,7 @@ public class AdditionProcesslet implements Processlet { The configuration format for the Java process provider is defined by schema file https://schemas.deegree.org/core/3.5/processes/java/java.xsd. The following table lists all available configuration options. When -specifiying them, their order must be respected. +specifying them, their order must be respected. [width="100%",cols="17%,11%,8%,64%",options="header",] |=== @@ -421,7 +421,7 @@ defines KVP, XML and SOAP-encoded requests. All encodings are supported by the deegree WPS, so you can choose the most appropriate one for your use-case. For sending KVP-requests, you can simply use your web browser (or a command line tools like wget or curl). XML or SOAP requests can be -send using deegree's generic client. +sent using deegree's generic client. Some KVP _GetCapabilities_/_DescribeProcess_ request examples for checking the metadata of processes: @@ -469,7 +469,7 @@ metadata (identifier, title, abstract, datatype) of the parameter. The WPS will report it in response to _DescribeProcess_ requests. When performing _Execute_ requests, the deegree WPS will also perform a basic check of the validity of the input parameters (identifier, number -of occurences, type) and respond with an _ExceptionReport_ if the +of occurrences, type) and respond with an _ExceptionReport_ if the constraints are not met. ===== Basics of defining input and output parameters diff --git a/deegree-documentation/src/main/asciidoc/renderstyles.adoc b/deegree-documentation/src/main/asciidoc/renderstyles.adoc index 666ebbb22a..1483d9264b 100644 --- a/deegree-documentation/src/main/asciidoc/renderstyles.adoc +++ b/deegree-documentation/src/main/asciidoc/renderstyles.adoc @@ -14,7 +14,7 @@ not have a custom format. You can use standard SLD or SE documents extensions, which are described below. Please refer to the https://www.ogc.org/standard/sld/[SLD] and https://www.ogc.org/standard/se/[SE] specifications for -reference. Additionally this page contains specific examples below. +reference. Additionally, this page contains specific examples below. In deegree terms, each SLD or SE file will create a _style store_. In case of an SE file (usually beginning at the FeatureTypeStyle or @@ -29,28 +29,28 @@ image::workspace-overview-style.png[Style resources define how geo objects are r TIP: When defining styles, take note of the log file. Upon startup the log will warn you about potential problems or errors during parsing, and upon rendering warnings will be emitted when rendering is unsuccessful -eg. because you had a typo in a geometry property name. When you're +e.g. because you had a typo in a geometry property name. When you're seeing an empty map when expecting a fancy one, check the log before reporting a bug. deegree will tolerate a lot of syntactical errors in your style files, but you're more likely to get a good result when your -files validate and you have no warnings in the log. +files validate, and you have no warnings in the log. === Overview From the point of view of the Symbology Encoding Standard, there are 5 -kinds of symbolizations, which can be present in a map image: +kinds of symbolization, which can be present in a map image: - * *Point symbolizations* - * *Line symbolizations* - * *Polygon symbolizations* - * *Text symbolizations* - * *Raster symbolizations* + * *Point symbolization* + * *Line symbolization* + * *Polygon symbolization* + * *Text symbolization* + * *Raster symbolization* -The first 4 symbolizations usually represent vector feature objects. +The first 4 symbolization usually represent vector feature objects. Raster symbolization is used to visualize raster data. This -documentation chapter describes, how those symbolizations can be +documentation chapter describes, how those symbolization can be realized using OGC symbology encoding. It will lead from the underlying -basics to some more complex constructions for map visulization. +basics to some more complex constructions for map visualization. === Basics @@ -142,7 +142,7 @@ as decimal (e.g. 0,25 => 25% opacity). * `name="with"` => Wide or thin, set your stroke-width however you want. * `name="linecap"` => For linecap (ending) a stroke you can choose the following types: round, edged, square, butt. -* `name="linejoin"` => Also there are different types of linejoin +* `name="linejoin"` => Also, there are different types of linejoin possibilities: round, mitre, bevel. * `name="dasharray"` => The dasharray defines where the stroke is painted and where not (e.g. "1 1" => - - - ). @@ -239,13 +239,13 @@ symbology encoding. ===== Using Graphics There are different ways to use graphical symbols as a base for map -symbolizations. elements can be used to specify well known +symbolization. elements can be used to specify well known graphics, elements can be used to have external graphic files as a base for a symbolization rule. *Mark* -With Marks it is possible to use wellkown objects for symboliation as +With `Marks`, it is possible to use wellknown objects for symbolization as well as user-generated content like SVGs. It is possible to use all of these for , and . @@ -613,7 +613,7 @@ SLD/SE constructs. For polygon rendering, the orientation is always fixed, and will be corrected if a feature store yields inconsistent geometries. The outer -ring is always oriented counter clockwise, inner rings are oriented +ring is always oriented counterclockwise, inner rings are oriented clockwise. A positive perpendicular offset setting results in an offset movement in @@ -672,7 +672,7 @@ For reference each symbol is shown with the following style. ====== Predefined symbols [cols="3"] -.Standard Symbold defined by SLD/SE specification +.Standard Symbols defined by SLD/SE specification |=== a| image:se_wkn/circle.png[] `circle` a| image:se_wkn/triangle.png[] `triangle` @@ -773,7 +773,7 @@ image::se_wkn_example/extshape_arrow_t_00_10.png[] ====== Custom Symbol from SVG path svgpath:// -It is also possible to define a symbol from a SVG path data. +It is also possible to define a symbol from an SVG path data. The syntax of SVG path data is described at https://www.w3.org/TR/SVG/paths.html#PathData .Example of custom symbol with \`svgpath://` @@ -785,9 +785,9 @@ a|`svgpath://m 8,14 0,-6 h -4.5 c 0,0 0,-7.5 6.6,-7.5 6,0 6.5,7.5 6.6,7.5 l -4.5 ====== Use Symbol from character code ttf:// -Also TrueType font files can be used as source for symbols. +Also, TrueType font files can be used as source for symbols. For TrueType fonts installed at System or Java level the syntax is `ttf://Font Name#code`. -If the font is not installed but available it can be sepcified +If the font is not installed but available it can be specified absolute or relative as `ttf://font.ttf#code`. The character code has to be specified in hexadecimal notation prefixed with `0x`, `U+` or `\u`. @@ -859,7 +859,7 @@ a| Symbol with explicit bounds `qgis://circle[-1,-1,3,2]` TIP: The width and height must be entered in the coordinate system of the symbol. Most symbols are defined around the zero point with a width of 1.0. -Accordingly it is recommended to start with the values `[1,1]` or `[-0.5,-0.5,0.5,0.5]`. +Accordingly, it is recommended to start with the values `[1,1]` or `[-0.5,-0.5,0.5,0.5]`. ===== Simplified hatches @@ -941,7 +941,7 @@ In order to determine the correct index value of the used vector symbol in your * The most convenient way would be by using a JavaScript parser like opentype.js, check https://opentype.js.org/glyph-inspector.html for a usable live-demo. -* Otherwise you can check the index value by using Microsoft Word, as explained in https://support.esri.com/en/technical-article/000004293. +* Otherwise, you can check the index value by using Microsoft Word, as explained in https://support.esri.com/en/technical-article/000004293. * At last, you could determine the index value by manually reading the cmap table of your TrueType font file. If you are interested in this approach, take a look into a https://sourceforge.net/p/deegree/mailman/deegree-users/thread/20130110115808.GB3576%40theologicum.occamlabs.local/#msg30331881[post] from the deegree mailing list. @@ -1013,7 +1013,7 @@ support ogc:Expressions as child elements. Example: ===== Text with rectangular Halo For the cartographic design of text, it is possible to place a rectangular box behind the text instead of a halo effect. -To enable the rectangular box behind a text use an negative value for the `Radius` of `Halo` in the `TextSymbolizer`. +To enable the rectangular box behind a text use a negative value for the `Radius` of `Halo` in the `TextSymbolizer`. .Example of regular `Halo` (`Radius` of `3.0`) on the left and rectangular `Halo` (`Radius` of `-3.0`) on the right. image::renderstyles_halo_regular_and_boxed.png[] @@ -1134,7 +1134,7 @@ can be used as a `Mark`. Example: ---- -NOTE: Previous versions would have rendered SVG defined in an +NOTE: Previous versions would have rendered SVG defined in an `Graphic`/`ExternalGraphic`/`OnlineResource` like the `Mark` example above. These have either their configuration converted to `Graphic`/`Mark`/`OnlineResource` or the option to not render SVGs like @@ -1143,7 +1143,7 @@ images has to be set for the instance, see <> for details. ==== SE & FE Functions There are a couple of deegree specific functions which can be expressed -as standard OGC function expressions in SLD/SE. Additionally deegree has +as standard OGC function expressions in SLD/SE. Additionally, deegree has support for all the unctions defined within the SE standard. ===== FormatNumber @@ -1282,7 +1282,7 @@ position from a string property. These functions can operate both on alphanumeric properties of features and on raster data. For color values we extended the syntax a bit to allow for an alpha channel: #99ff0000 is a red value with an alpha value -of 0x99. This allows the user to create eg. an interpolation from +of 0x99. This allows the user to create e.g. an interpolation from completely transparent to a completely opaque color value. To work on raster data you'll have to replace the PropertyName values with Rasterdata. diff --git a/deegree-documentation/src/main/asciidoc/restapi.adoc b/deegree-documentation/src/main/asciidoc/restapi.adoc index f8bc764f6b..8d200a9fc8 100644 --- a/deegree-documentation/src/main/asciidoc/restapi.adoc +++ b/deegree-documentation/src/main/asciidoc/restapi.adoc @@ -12,7 +12,8 @@ use the standard _web.xml_ deployment descriptor. For security reasons the REST API is secured by default with an API key read from the _config.apikey_ file in deegree workspace directory. -The API key can be provide in multiple different ways. +The API key can be provided in multiple different ways. + * As header value of key `X-API-Key` * As authorization header of bearer type * As basic authorization password where username will be ignored @@ -79,7 +80,7 @@ workspace. In order to download the complete workspace, you request _http://localhost:8080/deegree-webservices/config/download_. Since the workspace is made up of many files, you get a _.zip_ file. If you just -want to download the featurestore configuration named _inspire_, you +want to download the FeatureStore configuration named _inspire_, you request _http://localhost:8080/deegree-webservices/config/download/datasources/feature/inspire.xml_. @@ -109,7 +110,7 @@ You can see what workspaces are available to the deegree installation by running _http://localhost:8080/deegree-webservices/config/listworkspaces_. -You can also browse through a workspace's files by requesting eg. +You can also browse through a workspace's files by requesting e.g. _http://localhost:8080/deegree-webservices/config/list/datasources/_, or to see the files in a workspace other than the one currently running _http://localhost:8080/deegree-webservices/config/list/someworkspace/services/_. @@ -117,7 +118,7 @@ _http://localhost:8080/deegree-webservices/config/list/someworkspace/services/_. ==== Storing You can update or add files in a workspace, or upload a completely new -workspace by sending a HTTP PUT request. +workspace by sending an HTTP PUT request. To upload a new workspace, send a _.zip_ file with the workspace contents to @@ -154,7 +155,7 @@ You can get a list of all available CRS definitions by requesting _http://localhost:8080/deegree-webservices/config/crs/list_. Check if a specific CRS is configured in deegree by requesting _http://localhost:8080/deegree-webservices/config/crs/EPSG:12345_. The -response will be the text _true_ or _false_, depending whether the +response will be the text _true_ or _false_, depending on whether the CRS is defined or not. If you have a WKT CRS definition, you can POST against _http://localhost:8080/deegree-webservices/config/crs/getcodes_ to get diff --git a/deegree-documentation/src/main/asciidoc/serverconnections.adoc b/deegree-documentation/src/main/asciidoc/serverconnections.adoc index 66ff98f078..4e60287df2 100644 --- a/deegree-documentation/src/main/asciidoc/serverconnections.adoc +++ b/deegree-documentation/src/main/asciidoc/serverconnections.adoc @@ -506,11 +506,11 @@ connection before throwing an error. Default is 5 seconds. * The request timeout defines (in seconds) how long to wait for data before throwing an error. Default is 60 seconds. * The http basic authentication options can be used to provide -authentication credentials to use a HTTP basic protected service. +authentication credentials to use an HTTP basic protected service. Default is not to authenticate. The WMS version will be detected from the capabilities document version. -When using 1.3.0, there are some limitations (eg. GetFeatureInfo is not +When using 1.3.0, there are some limitations (e.g. GetFeatureInfo is not supported), and it is tested to a lesser extent compared with the 1.1.1 version. @@ -544,7 +544,7 @@ connection before throwing an error. Default is 5 seconds. * The request timeout defines (in seconds) how long to wait for data before throwing an error. Default is 60 seconds. * The http basic authentication options can be used to provide -authentication credentials to use a HTTP basic protected service. +authentication credentials to use an HTTP basic protected service. Default is not to authenticate. GetTile and GetFeatureInfo operations are supported for remote WMTS diff --git a/deegree-documentation/src/main/asciidoc/tilestores.adoc b/deegree-documentation/src/main/asciidoc/tilestores.adoc index 7bfec24507..1d56775826 100644 --- a/deegree-documentation/src/main/asciidoc/tilestores.adoc +++ b/deegree-documentation/src/main/asciidoc/tilestores.adoc @@ -299,12 +299,12 @@ GetMap requests sent to the WMS::: * The layers parameter can be used to specify one or more (comma separated) layers to request * The styles parameter must correspond to the layers parameter (works - the same like GetMap) + the same as GetMap) * The format parameter specifies the image format to request from the WMS * The CRS parameter specifies which CRS to use when requesting -Additionally you can specify default and override values for request +Additionally, you can specify default and override values for request parameters within the request params block. Just add _Parameter_ tags as described in the <> layer chapter. The replacing/defaulting currently only works when you @@ -367,7 +367,7 @@ not have the same identifier(s) (just configure the TileMatrixSetId option if they differ), but the structure (coordinate system, tile size, number of tiles per matrix etc.) needs to be identical. -Additionally you can specify default and override values for request +Additionally, you can specify default and override values for request parameters within the request params block. Just add _Parameter_ tags as described in the <> layer chapter. The replacing/defaulting currently only works when you diff --git a/deegree-documentation/src/main/asciidoc/webservices.adoc b/deegree-documentation/src/main/asciidoc/webservices.adoc index 704fb2216a..6cb7a066c5 100644 --- a/deegree-documentation/src/main/asciidoc/webservices.adoc +++ b/deegree-documentation/src/main/asciidoc/webservices.adoc @@ -129,7 +129,7 @@ The deegree WFS config file format is defined by schema file https://schemas.deegree.org/core/3.5/services/wfs/wfs_configuration.xsd. The root element is and the optional attribute `config` can be set to _3.5.0_. The following table lists all available configuration options -(complex ones contain nested options themselves). When specifiying them, +(complex ones contain nested options themselves). When specifying them, their order must be respected. [width="100%",cols="24%,11%,8%,57%",options="header",] @@ -212,7 +212,7 @@ will be discarded, and an exception report will be sent to the client. Buffering is performed in memory, but switches to a temp file in case the buffer grows bigger than 1 MiB. * _DisabledResources_: By default all xlink:href attribute references -are tried to resolved as feature references during insert. This can be +are tried to be resolved as feature references during insert. This can be avoided by configuring one or multiple base url patterns within the child element _Pattern_. _Pattern_ can occur multiple times, one for each base url. In the complex example above resolving of @@ -225,7 +225,7 @@ and _http://deegree.org/external/feature_. * _EnableResponsePaging_: By default, WFS 2.0.0 does not support response paging. By specifying _true_ here, you can explicitly enable response paging. Response Paging works only when streaming is disabled. -Currently @next and @previous URLs bases on the original GetFeature +Currently, @next and @previous URLs bases on the original GetFeature request in KVP encoding. * _QueryCRS_: Coordinate reference systems for returned geometries. This element can be specified multiple times, and the WFS will announce @@ -256,18 +256,18 @@ This may lead to errors if the provided ids are already in use. * *UseExistingResolvingReferencesInternally*: Same as UseExisting, but it is allowed to insert features with references to already inserted features. -* **UseExistingSkipResolvingReferences**: Same as UseExisting, but references to features are not checked. The user is fully responsible of the data integrity! +* **UseExistingSkipResolvingReferences**: Same as UseExisting, but references to features are not checked. The user is fully responsible for the data integrity! * *GenerateNew* (default): New and unique ids are generated. References -in the input GML (xlink:href) that point to a feature with an reassigned +in the input GML (xlink:href) that point to a feature with a reassigned id are fixed as well, so reference consistency is maintained. * *ReplaceDuplicate*: The WFS will try to use the original gml:id values that have been provided in the input. In case a certain identifier already exists in the backend, a new and unique identifier will be generated. References in the input GML (xlink:href) that point to a -feature with an reassigned id are fixed as well, so reference +feature with a reassigned id are fixed as well, so reference consistency is maintained. -Furthermore the option _EnableTransactions_ has the optional attribute _checkAreaOfUse_ which is false by default. This means that it is not checked if the geometries in a transaction request are in the valid area of the CRS. The check can be activated by setting the attribute to true. +Furthermore, the option _EnableTransactions_ has the optional attribute _checkAreaOfUse_ which is false by default. This means that it is not checked if the geometries in a transaction request are in the valid area of the CRS. The check can be activated by setting the attribute to true. NOTE: Currently, transactions can only be enabled if your WFS is attached to a single feature store. @@ -291,7 +291,7 @@ feature to be replaced. ==== SupportedRequests This option can be used to configure the supported request types. -Currently the supported encodings can be specified for each request +Currently, the supported encodings can be specified for each request type. If the option is missing all encodings are supported for each request type. The option has the following sup-options: @@ -345,11 +345,10 @@ types. Allowed values: 'kvp', 'xml', 'soap'. Multiple values must be separated by a white space. |=== -By default deegree will provide all supported request types with all +By default, deegree will provide all supported request types with all available encodings (kvp, xml, soap). -If a single supported request or encoding is configured, all non -configured requests or encodings are disabled. +If a single supported request or encoding is configured, all non-configured requests or encodings are disabled. Example: To limit the provided request types to GetCapabilities and GetFeature this request types can be added without SupportedEncodings @@ -396,7 +395,6 @@ The _DefaultFormats_ option has the following sub-options: |Option |Cardinality |Value |Description |ExcludeMimeType |0..n |String |Mime types or pattern to exclude. -configuration |=== *Example of using the defaults, except the CSV and GeoJSON* @@ -537,7 +535,7 @@ can add additional namespace/URL pairs for adding additional schemas. This may be required when you override the returned container or feature member elements in order to achieve schema-valid output. * _DisableDynamicSchema_: By default, the GML application schema -returned in DescribeFeatureType reponses (and referenced in the +returned in DescribeFeatureType responses (and referenced in the _xsi:schemaLocation_ of query responses) will be generated dynamically from the internal feature type representation. This allows generation of application schemas for different GML versions and is fine for simple @@ -551,7 +549,7 @@ to an external copy of your GML application schema files (instead of pointing back to the deegree WFS), use the optional attribute _baseURL_ that this element provides. * _SchemaLocation_: By default, the GML application schema -returned in DescribeFeatureType reponses (and referenced in the +returned in DescribeFeatureType responses (and referenced in the _xsi:schemaLocation_ of GetFeature responses) will be generated dynamically from the internal feature type representation or, if DisableDynamicSchema is set to _true_, the original schema files used for configuring the feature @@ -601,7 +599,7 @@ override this, two options are available: * _DecimalCoordinatesFormatter_: Empty element, attribute _places_ specifies the number of decimal places. -* _CustomCoordinateFormatter_: By specifiying this element, an +* _CustomCoordinateFormatter_: By specifying this element, an implementation of Java interface _org.deegree.geometry.io.CoordinateFormatter_ can be instantiated. Child element _JavaClass_ contains the qualified name of the Java @@ -737,7 +735,7 @@ The _CsvFormat_ option has the following sub-options: |@quoteCharacter |0..1 |String |Single character to be used as delimiter in output. Defaults to comma (`,`). |@escape |0..1 |String |Single sign to be used as delimiter in output. |@delimiter |0..1 |String |Single sign to be used as escape character. Default to double quote (`"`) -|@instanceSeparator |0..1 |String |Text used when the property with multiple instances is joined. Defaults to the pipe sign with spaces around (` | `). +|@instanceSeparator |0..1 |String |Text used when the property with multiple instances is joined. Defaults to the pipe sign with spaces around (`{vbar}`). |@recordSeparator |0..1 |String |Text to be used between records. Defaults to carriage return with line feed (`\r\n`). |@geometries |0..1 |Boolean |Defines if geometry columns should be included or not. Enabled by default. |MimeType |1..n |String |Mime types associated with this format configuration @@ -811,7 +809,7 @@ stored queries. When WFS 2.0.0 support is activated, your WFS will automatically support the well-known stored query _urn:ogc:def:storedQuery:OGC-WFS::GetFeatureById_ (defined in the WFS 2.0.0 specification). It can be used to query a feature instance by -specifying it's gml:id (similar to GetGmlObject requests in WFS 1.1.0). +specifying its gml:id (similar to GetGmlObject requests in WFS 1.1.0). In order to define custom stored queries, use the _StoredQuery_ element to specify the file name of a StoredQueryDefinition file. The given file name (can be relative) must point to a valid WFS 2.0.0 @@ -866,7 +864,7 @@ Query-Elements should be used. An exception is thrown as DescribeStoredQueries response, if the configured feature type is not served by the WFS. -The optional attribute _srsName="${srsName}"_ can be set to support the parameter _srsName_ in the GetFeature request to determine the CRS of the returned geometries. If the paramater is missing in the request, the default CRS of the WFS is returned. +The optional attribute _srsName="${srsName}"_ can be set to support the parameter _srsName_ in the GetFeature request to determine the CRS of the returned geometries. If the parameter is missing in the request, the default CRS of the WFS is returned. To enable support for the Manage Stored Queries conformance class for WFS 2.0.0 it is required to create a directory storedqueries/managed in your workspace. The stored queries created with _CreateStoredQuery_ requests are stored in this directory. They are loaded during startup of deegree automatically. It is not recommend to put the StoredQueries configured in the WFS configuration with the StoredQuery element into this folder. If the directory is missing the _CreateStoredQuery_ request returns an exception. @@ -1038,7 +1036,7 @@ _1.3.0_. * _MetadataStoreId_: If set to a valid metadata store, the store is queried upon startup with all configured layer metadata set ids. If a metadata set does not exist in the metadata store, it will not be -exported as metadata URL in the capabilties. This is a useful option if +exported as metadata URL in the capabilities. This is a useful option if you want to automatically check for configuration errors/typos. By default, no checking is done. * _MetadataURLTemplate_: By default, no metadata URLs are generated @@ -1106,11 +1104,10 @@ types. Allowed values: 'kvp', 'xml', 'soap'. Multiple values must be separated by a white space. |=== -By default deegree will provide all supported request types with all +By default, deegree will provide all supported request types with all available encodings (kvp, xml, soap). -If a single supported request or encoding is configured, all non -configured requests or encodings are disabled. +If a single supported request or encoding is configured, all non-configured requests or encodings are disabled. Example: To limit the provided request types to GetCapabilities and GetFeature this request types can be added without SupportedEncodings @@ -1195,7 +1192,7 @@ The following table shows the _Copyright_ configuration: |=== |Option |Cardinality |String |Description | Text | 0..1 | String | The text of the copyright. -| Image | 0..1 | String | An image used as copyright. May be a relative or absolute reference to a file or a http url. +| Image | 0..1 | String | An image used as copyright. It may be a relative or absolute reference to a file or a http url. | OffsetX | 0..1 | Integer | The offset from the left of the GetMap response image to the left of the copyright in pixel (default: 8). | OffsetY | 0..1 | Integer | The offset from the bottom of the GetMap response image to the bottom of the copyright in pixel (default: 13). |=== @@ -1244,7 +1241,7 @@ The implementation of the visibility inspector checks whether a requested layer Of course, also non category layers can be configured here, but for most use cases category layers will be more useful. If no _CategoryLayerIdentifier_ are configured, the VisibilityInspector is applied to all layers. -Note: If a _CategoryLayerIdentifier_ is configured, the visibility inspector will just be executed if exactly this layer is requested. Still, as already stated above, the visiblity inspector is applied to the requested layer plus all of its sublayers. +Note: If a _CategoryLayerIdentifier_ is configured, the visibility inspector will just be executed if exactly this layer is requested. Still, as already stated above, the visibility inspector is applied to the requested layer plus all of its sublayers. If just one or more sublayers of the configured _CategoryLayerIdentifier_ are requested, the visibility inspector is NOT applied. This behaviour prevents that complex analyses and/or functions are executed during each GetMap request. @@ -1265,7 +1262,7 @@ If layer1 and/or layer2 are requested by a GetMap request, the visibility inspec Any mime type can be configured to be available as response format for GetCapabilities requests, although the most commonly used is probably -_text/html_. A XSLT script is used to generate the output. +_text/html_. An XSLT script is used to generate the output. This is how the configuration section looks like: @@ -1279,7 +1276,7 @@ This is how the configuration section looks like: ---- -Of course it is possible to define as many custom formats as you want, +Of course, it is possible to define as many custom formats as you want, as long as you use a different mime type for each (just duplicate the _GetCapabilitiesFormat_ element). If you use one of the default formats, the default output will be overridden with your configuration. @@ -1323,7 +1320,7 @@ The configuration for the XSLT approach looks like this: ---- -Of course it is possible to define as many custom formats as you want, +Of course, it is possible to define as many custom formats as you want, as long as you use a different mime type for each (just duplicate the _GetFeatureInfoFormat_ element). If you use one of the default formats, the default output will be overridden with your configuration. @@ -1366,7 +1363,7 @@ The _GeoJSON_ option has the following sub-options: ==== FeatureInfo templating format The templating format can be used to create text based output formats -for featureinfo output. It uses a number of definitions, rules and +for FeatureInfo output. It uses a number of definitions, rules and special constructs to replace content with other content based on feature and property values. Please note that you should make sure your file is UTF-8 encoded if you're using umlauts. @@ -1393,7 +1390,7 @@ features coming in looks like this: ---- -A featureinfo request will now always yield the body of this template. +A FeatureInfo request will now always yield the body of this template. In order to use the features coming in, you need to define other templates, and call them from a template. So let's add another template, and call it from the _start_ template: @@ -1467,8 +1464,8 @@ property level. The __ and __ special constructs yield the property name and value, respectively (remember, we're at property level here). -While that's already nice, people often put non human readable values in -properties, even property names are sometimes not human readable. In +While that's already nice, people often put non human-readable values in +properties, even property names are sometimes not human-readable. In order to fix that, you often have code lists mapping the codes to proper text. To use these, there's a special kind of template called a _map_. A map is like a simple property file. Let's have a look at how to define @@ -1730,7 +1727,7 @@ the whole request. Most of the parameters correspond to the layer options above. The parameters which are supported on a per layer basis can be used to -set an option globally, eg. ...&REQUEST=GetMap&ANTIALIAS=BOTH&..., or +set an option globally, e.g. ...&REQUEST=GetMap&ANTIALIAS=BOTH&..., or for each layer separately (using a comma separated list): ...&REQUEST=GetMap&ANTIALIAS=BOTH,TEXT,NONE&LAYERS=layer1,layer2,layer3&... Most of the layer options have a corresponding parameter with a similar @@ -2146,7 +2143,7 @@ featureinfo format handlers: ---- Have a look at section <> (in the WMS -chapter) to see how custom featureinfo formats are configured. Take note +chapter) to see how custom FeatureInfo formats are configured. Take note that the GetFeatureInfo operation is currently only supported for remote WMS tile store backends. @@ -2282,9 +2279,9 @@ NOTE: Further information of the configuration of the cache can be found in http map_cache -==== Supported steps by deegree services console +==== Supported steps by the deegree webservices administration console -Currently the deegree services console supports the following steps: +Currently, the administration console supports the following steps: * creating TileStore and TileMatrixSet configuration files * creating Layer and Themes configuration files @@ -2334,7 +2331,7 @@ https://schemas.deegree.org/core/3.5/services/csw/csw_configuration.xsd. The root element is _deegreeCSW_ and the optional attribute `config` can be set to _3.5.0_. The following table lists all available configuration options. When -specifiying them, their order must be respected. +specifying them, their order must be respected. [width="100%",cols="20%,10%,6%,64%",options="header",] |=== @@ -2344,7 +2341,7 @@ specifiying them, their order must be respected. |MaxMatches |0..1 |Integer |Not negative number of matches (Default:0) |MetadataStoreId |0..1 |String |Id of the meradatastoreId to use as -backenend. By default the only configured store is used. +backend. By default, the only configured store is used. |EnableTransactions |0..1 |Boolean |Enable transactions (CSW operations) default: disabled. (Default: false) @@ -2595,7 +2592,7 @@ https://schemas.deegree.org/core/3.5/services/metadata/metadata.xsd. The root element is _deegreeServicesMetadata_ and the optional attribute `config` can be set to _3.5.0_. The following table lists all available configuration options (complex ones contain nested options themselves). When -specifiying them, their order must be respected. +specifying them, their order must be respected. [width="100%",cols="24%,11%,8%,57%",options="header",] |=== @@ -2690,7 +2687,7 @@ Configuration for the template looks like this: You can also configure _ExternalMetadataAuthority_ elements, which are currently only used by the WMS. You can define multiple authorities, with the authority URL as text content and a unique _name_ attribute. -For each dataset you can define an ID for an authority by refering to +For each dataset you can define an ID for an authority by referring to that name. This will generate an _AuthorityURL_ and _Identifier_ pair in WMS capabilities documents (version 1.3.0 only). @@ -2796,7 +2793,7 @@ An empty example file looks like follows: ---- The following table lists all available configuration options. When -specifiying them, their order must be respected. +specifying them, their order must be respected. [width="100%",cols="30%,14%,10%,46%",options="header",] |=== @@ -2875,7 +2872,7 @@ replaced by the values from the header. If X-Forwarded-Port or X-Forwarded-Proto are missing the values are taken from the request URL, deegree would report _http://www.mysecondgeoportal.com/deegree-webservices/services/inspire-wfs-ad_. -This behaviour is usefull when the deegree webservice can be requested +This behaviour is useful when the deegree webservice can be requested via different URLs. ==== Request timeouts