This page shows the release notes of older versions up until the point that the new version was released.
For a full list of release notes of an old version, consult the documentation of that version.
For example if you want to see what is fixed in each 2019.1.x patch release, consult the
release notes in the documentation of the 2019.1 release.
2024.0
2024.0.10
Bug fixOGC Server
LCD-13592
The WFS server returned duplicate identifiers for GetFeature
requests
with a property name filter in case the source data did not have an explicit identifier (such as SHP files).
2024.0.08
ImprovementOGC Server
LCD-13516
It is now possible to configure WMS and WMTS services to produce HTTP 500 Internal Error
responses when any exception occurs during painting.
You can enable this behavior by setting the system property com.luciad.fusion.wms.server.errorResponseOnPaintException
to true
.
2024.0.06
Bug fixOGC Server
LCD-13525
Since version 2024.0, the WFS server could return exception reports for valid POST (XML) requests.
2024.0.05
Bug fixOGC Server
LCD-13508
The following WCS server issues have been fixed related to the handling of the optional "Sections" parameter in a
GetCapabilities
request:
- The parameter was not supported for WCS 1.1 POST requests.
- The parameter was not validated for WCS 1.0 GET and POST requests.
Bug fixOGC Server
LCD-13510
The WFS server returned a WFS 1.1 response instead of a WFS 2.0 response for a WFS 2.0
GetFeature hits
request.
2024.0.04
Bug fixOGC Server
LCD-13475
When using WMS layer dimensions the following dimensions are now published in the capabilities:
- Dimensions with an axis without a unit.
- Dimensions with strings as possible values.
2024.0.03
ImprovementOGC Server
LCD-13447
The decoding behavior of spatial filters included in WFS GetFeature
POST requests has now been
aligned between all WFS versions: similar as for WFS 1.x requests, spatial filters in WFS 2.0 POST requests are now
decoded and transformed to the geographic reference of the requested WFS feature type. For GET requests, this was already
the case.
Bug fixOGC Server
LCD-13434
Fixed a bug where the output of a WFS GetFeature request failed on data types with a Map property in combination with
property name filtering.
Bug fixOGC Server
LCD-13423
The WFS server could not handle property name filters for property names that were renamed during the encoding to
GML. Such a rename can occur when a property name in the original data starts with a character that is not
allowed as first character in an XML element - for example, a number.
2024.0
New featureOGC Server
The WCS server in the OGC Web Server Suite now supports WCS version 2.0.1.
ImprovementOGC Server
LCD-13326
The WMS Server now supports a vendor-specific FILTER
parameter that operates like the WFS GetFeature FILTER parameter for both GetMap and GetFeatureInfo requests.
ImprovementOGC Server
LCD-9574
The tray icon of the OGC server sample now has an additional entry to open the landing page.
Upgrade considerationOGC Server
Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID |
Artifact ID |
Old Version |
New Version |
org.springframework.boot |
spring-boot |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-autoconfigure |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-jetty |
2.7.8 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-json |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-logging |
2.7.14 |
3.2.1 |
org.springframework.boot |
spring-boot-starter-web |
2.7.14 |
3.2.1 |
org.springframework |
spring-aop |
5.3.29 |
6.1.2 |
org.springframework |
spring-beans |
5.3.29 |
6.1.2 |
org.springframework |
spring-context |
5.3.29 |
6.1.2 |
org.springframework |
spring-core |
5.3.29 |
6.1.2 |
org.springframework |
spring-expression |
5.3.29 |
6.1.2 |
org.springframework |
spring-jdbc |
5.3.29 |
6.1.2 |
org.springframework |
spring-tx |
5.3.29 |
6.1.2 |
org.springframework |
spring-web |
5.3.29 |
6.1.2 |
org.springframework |
spring-webmvc |
5.3.29 |
6.1.2 |
com.zaxxer |
HikariCP |
4.0.3 |
5.0.1 |
org.ow2.asm |
asm-commons |
9.4 |
9.6 |
org.ow2.asm |
asm-tree |
9.4 |
9.6 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.14.2 |
2.15.3 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.14.2 |
2.15.3 |
org.apache.tomcat.embed |
tomcat-embed-el |
9.0.78 |
10.1.17 |
org.eclipse.jetty |
jetty-client |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-http |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-io |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-plus |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-security |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-server |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-util |
9.4.50.v20221201 |
12.0.7 |
org.eclipse.jetty |
jetty-xml |
9.4.50.v20221201 |
12.0.7 |
org.slf4j |
jul-to-slf4j |
1.7.36 |
2.0.9 |
org.slf4j |
slf4j-api |
1.7.36 |
2.0.9 |
org.apache.logging.log4j |
log4j-api |
2.17.2 |
2.21.1 |
org.apache.logging.log4j |
log4j-to-slf4j |
2.17.2 |
2.21.1 |
ch.qos.logback |
logback-classic |
1.2.12 |
1.4.14 |
ch.qos.logback |
logback-core |
1.2.12 |
1.4.14 |
org.yaml |
snakeyaml |
2.0 |
2.2 |
jakarta.annotation |
jakarta.annotation-api |
1.3.5 |
2.1.1 |
jakarta.websocket |
jakarta.websocket-api |
1.1.2 |
2.1.1 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty.ee10 |
jetty-ee10-annotations |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-plus |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-servlet |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-servlets |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-webapp |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-client |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-common |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jakarta-server |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-jetty-server |
12.0.7 |
org.eclipse.jetty.ee10 |
jetty-ee10-websocket-servlet |
12.0.7 |
org.eclipse.jetty |
jetty-alpn-client |
12.0.7 |
org.eclipse.jetty |
jetty-jndi |
12.0.7 |
org.eclipse.jetty |
jetty-session |
12.0.7 |
jakarta.websocket |
jakarta.websocket-client-api |
2.1.1 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty |
jetty-annotations |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-continuation |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlet |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlets |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util-ajax |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-webapp |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-api |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-client |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-common |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-server |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-servlet |
9.4.50.v20221201 |
2023.1
2023.1.15
Bug fixOGC Server
LCD-13361
Fixed an issue where empty tiles were returned by the WMTS server if the WGS84
tile matrix
set was used.
Bug fixOGC Server
LCD-13362
Corrected the CRS of the GoogleMapsCompatible well-known tile matrix set in the capabilities document
returned by the WMTS server: it now includes the minor version (urn:ogc:def:crs:EPSG:6.18.3:3857
).
2023.1.13
Bug fixOGC Server
LCD-13323
The WCS server now supports WCS 1.1.x GetCoverage
requests that
neither specify a bounding box nor a resolution.
2023.1.11
ImprovementOGC Server
LCD-13310
Aligned with the OGC WMS standard, the request URL prefixes listed in the WMS capabilities now always end with a question
mark.
Bug fixOGC Server
LCD-13314
The WCS server did not handle the Update Sequence parameter optionally present in a WCS GetCapabilities
request: there was no validation against the value defined in the WCS server's capabilities.
Bug fixOGC Server
LCD-13313
The ServiceExceptionReport
response generated by the WCS server in case of issues
did not fully adhere to the WCS 1.0.0 standard: the version was not set to 1.0.0 and the schema location
for the default namespace was not correct.
2023.1.06
Bug fixOGC Server
LCD-13253
The WFS server's GetFeature response contained unexpected namespaces when WFS 1.1.0 or WFS 2.0 was used.
For these versions, all namespaces related to WFS 1.1.0, WFS 2.0, GML 3.1.1 and GML 3.2 were advertised,
instead of only the relevant namespaces for the used WFS and GML versions.
2023.1.04
Bug fixOGC Server
LCD-13215
The WFS server did not close all streams resulting from ILcdModel#query
calls.
2023.1.02
Bug fixOGC Server
LCD-13073
2023.1.01
Bug fixOGC Server
LCD-13144
Fixed WCS coverage generation to better take into account the appropriate level of detail from a source data set
with multiple level of details. Before the coverage generation would use less detailed information when encountering
values representing a NODATA
value. This could result in using inappropriate values
when generating coverages having a more detailed level of detail.
2023.1
ImprovementOGC Server
The WCS server's GetCoverage handling logic now reuses threads across multiple requests
improving the response time depending on the used data and hardware.
ImprovementOGC Server
LCD-13074
The WFS server's capability to output features as GeoJSON has been made more robust: features that cannot be encoded
to GeoJSON (for example, because of an unsupported geometry type) are now skipped with a warning instead of causing
a WFS GetFeature response failure.
ImprovementOGC Server
LCD-13022, LCD-13016, LCD-8758
The WFS server is now more flexible against accepting a geometry property name in an OGC Filter condition. Next to
a fully-qualified geometry property name (with a prefix bound to a namespace, such as gml:geometry),
it now also accepts an unqualified property name (such as geometry). Additionally, warnings such as
"Error while converting filter" are no longer logged for valid geometry property names.
ImprovementOGC Server
LCD-12995
The priority of the
ILcdGXYViewEncoder
is now used to determine the order of the supported image formats advertised in the capabilities of the WMS Server.
Bug fixOGC Server
LCD-13160
The WMS server now takes the PIXELSIZE request parameter into account when evaluating SLD scale ranges. When this
request parameter is not present, the OGC default of 0.28mm per pixel is used for the scale calculation, unless the
pixel size is overridden on the server using the luciad.dpi
VM parameter.
2023.0
2023.0.12
Bug fixOGC Server
The red hatched pattern returned by the WCS Server in case the requested data is too detailed is now only returned for datasets
with RGBA images.
In other cases an empty image that complies with the band semantics of the dataset is returned.
2023.0.11
Bug fixOGC Server
LCD-13085
The WCS server's GetCoverage performance improvement introduced by LCD-12948 could result in too many open
threads, causing OutOfMemoryError issues on certain platforms.
Bug fixOGC Server
LCD-13108
When sending a WMTS request without request parameter, the returned exception report did not refer to the correct
exception code: this should be MissingParameterValue
instead of InvalidParameterValue
.
2023.0.07
ImprovementOGC Server
LCD-12948
The WCS server's GetCoverage handling logic now takes better advantage of multiple CPU cores,
improving the response time with up to 50% depending on the used data and hardware.
2023.0.04
Bug fixOGC Server
LCD-12967
The WFS server could reject a valid property name filter if the requested
feature type was backed by a model with multiple data types.
2023.0.02
ImprovementOGC Server
LCD-12933
The WFS server did not properly log issues when the data in response to a GetFeature request
could not be encoded to the requested format (GML or GeoJSON).
Bug fixOGC Server
LCD-12955
The WFS server could not serve data defined in a topocentric geographical reference.
Bug fixOGC Server
LCD-12944
The WCS server's caching capabilities did not work for WCS 1.1.0 GetCoverage requests that defined a desired
output resolution instead of an image size.
2023.0
Upgrade considerationOGC Server
Security updates have been applied to the following sample dependencies of the OGC server sample:
Group ID |
Artifact ID |
Old Version |
New Version |
org.springframework.boot |
spring-boot |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-autoconfigure |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-json |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-logging |
2.1.2.RELEASE |
2.7.8 |
org.springframework.boot |
spring-boot-starter-web |
2.1.2.RELEASE |
2.7.8 |
org.springframework |
spring-aop |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-beans |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-context |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-core |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-expression |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-jdbc |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-tx |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-web |
5.1.4.RELEASE |
5.3.25 |
org.springframework |
spring-webmvc |
5.1.4.RELEASE |
5.3.25 |
com.zaxxer |
HikariCP |
3.2.0 |
4.0.3 |
org.ow2.asm |
asm |
5.0.4 |
9.4 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.9.8 |
2.14.2 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.9.8 |
2.14.2 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.9.8 |
2.14.2 |
org.eclipse.jetty.websocket |
javax-websocket-client-impl |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
javax-websocket-server-impl |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-annotations |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-client |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-http |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-io |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-plus |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-security |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-server |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlet |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-servlets |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-util-ajax |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-webapp |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty |
jetty-xml |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.slf4j |
jul-to-slf4j |
1.7.25 |
1.7.36 |
org.slf4j |
slf4j-api |
1.7.25 |
1.7.36 |
org.apache.logging.log4j |
log4j-api |
2.11.1 |
2.17.2 |
org.apache.logging.log4j |
log4j-to-slf4j |
2.11.1 |
2.17.2 |
ch.qos.logback |
logback-classic |
1.2.3 |
1.2.11 |
ch.qos.logback |
logback-core |
1.2.3 |
1.2.11 |
org.yaml |
snakeyaml |
1.23 |
1.33 |
org.eclipse.jetty.websocket |
websocket-api |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-client |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-common |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-server |
9.4.3.v20170317 |
9.4.50.v20221201 |
org.eclipse.jetty.websocket |
websocket-servlet |
9.4.3.v20170317 |
9.4.50.v20221201 |
The following dependencies have been added:
Group ID |
Artifact ID |
Version |
org.springframework.boot |
spring-boot-starter-jetty |
2.7.8 |
jakarta.annotation |
jakarta.annotation-api |
1.3.5 |
jakarta.websocket |
jakarta.websocket-api |
1.1.2 |
org.apache.tomcat.embed |
tomcat-embed-el |
9.0.71 |
org.ow2.asm |
asm-commons |
9.4 |
org.ow2.asm |
asm-tree |
9.4 |
The following dependencies have been removed:
Group ID |
Artifact ID |
Version |
org.eclipse.jetty |
jetty-unixsocket |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-schemas |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-rewrite |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-quickstart |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-proxy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-proxy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-nosql |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-memcached-sessions |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jndi |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jmx |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jaspi |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-jaas |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-infinispan |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-gcloud-session-manager |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-deploy |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-alpn-server |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
org.eclipse.jetty |
jetty-continuation |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-core |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-servlet |
9.4.3.v20170317 |
org.eclipse.jetty.cdi |
cdi-websocket |
9.4.3.v20170317 |
com.fasterxml.jackson.core |
jackson-core |
2.9.8 |
com.fasterxml.jackson.core |
jackson-databind |
2.9.8 |
javax.annotation |
javax.annotation-api |
1.3.2 |
javax.websocket |
javax.websocket-api |
1.0 |
2022.1
2022.1.06
Upgrade considerationOGC Server
LF-2368
The following OGC server sample dependencies have been upgraded:
Group ID |
Artifact ID |
Old Version |
New Version |
com.fasterxml.jackson.core |
jackson-core |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.core |
jackson-databind |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.datatype |
jackson-datatype-jdk8 |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.datatype |
jackson-datatype-jsr310 |
2.9.8 |
2.14.0 |
com.fasterxml.jackson.module |
jackson-module-parameter-names |
2.9.8 |
2.14.0 |
2022.1.05
Bug fixOGC Server
LCD-12806
The WFS server can now handle an unbound property name in a WFS Transaction Update request by interpreting
it in the feature type's namespace.
2022.1.01
ImprovementOGC Server
LCD-12719
The sample OGC server now allows to request the XML schemas from the WMS server capabilities.
Bug fixOGC Server
LCD-12724
The fix implemented in LCD-12679
was not complete.
The WMS capabilities now advertise the SLD operations in the correct XML namespace.
2022.1
ImprovementOGC Server
LCD-12354
You can now plug in an
ILcdWFSClientModelEncoderFactory
by adding an
@LcdService
annotation
to the implementation. This interface is used by WFS services to encode features. Only the factory with the highest
priority is used. By default, a factory with support for GML 2 / 3.1 / 3.2 and GeoJSON is used.
Upgrade considerationOGC Server
LCD-12725
The dependency to the SLF4J Java Util Logging implementation (slf4j-jdk14.jar) has been removed. This dependency was only
used by the OGC Services sample in LuciadLightspeed.
LuciadFusion Platform required the use of the Logback implementation of SLF4J (logback-classic.jar). The OGC Services sample
will now also use the Logback implementation of SLF4J.
The Logback implementation of SLF4J is now included in the third party sample dependencies of LuciadLightspeed.
2022.0
2022.0.16
Bug fixOGC Server
LCD-12679
The WMS server now generates WMS capabilities responses using the official XML schemas for WMS
and the Styled Layer Descriptor (SLD) extension.
2022.0.15
ImprovementOGC Server
LCD-12655
A WMS GeoJSON GetFeatureInfo response could not be generated if the geometry of the included feature(s) was too complex for
GeoJSON.
To improve this, the response now uses the bounding box of those geometries, encoded as a GeoJSON-compatible polygon.
Bug fixOGC Server
LCD-12665
The WFS server did not support the DESC SortBy parameter in WFS 2.0 GetFeature HTTP GET requests.
2022.0.14
Bug fixOGC Server
LCD-12647
A change in the default XML element name suffix used by WFS GetFeature responses since version 2022.0 could lead to
feature type identification issues when using WFS transactions. This has been fixed.
2022.0.13
Bug fixOGC Server
LCD-12542
When using a property name filter in a WFS GetFeature request, it is no longer needed to include the
unique identifier property, if defined for the requested data; this is a property
annotated with a
TLcdPrimaryKeyAnnotation
. This fix makes sure that the response contains a
valid unique identifier for each feature, regardless of any WFS property name filter.
Bug fixOGC Server
LCD-12608
When making a WMS request using a single dimension value for a layer which declares to have a range with resolution
0
, the server would incorrectly return an error response with
invalid sample dimension value
.
2022.0.06
ImprovementOGC Server
LCD-12511
The WFS server could return a service exception report for a valid WFS 2.0 GetFeature request that included
an OGC Filter combining an IsLike
condition with other property-based conditions.
2022.0.03
ImprovementOGC Server
LF-2254
It is now possible to sort results by bounding box when performing a CSW GetRecords request.
Sorting by bounding box will perform the sort based on the area of the bounding box. That is, bounding boxes with smaller
areas will be sorted before bounding boxes with larger areas, when using the ascending sort order.
2022.0.01
Bug fixOGC Server
LCD-12408
When performing a WFS GetFeature request with property name filtering, the GeoJSON output still contained all
property names, where the filtered properties had a null value. This has been fixed: the filtered properties
are no longer present in the json response.
2022.0
ImprovementOGC Server
LCD-11939
The OGC server sample now integrates with Spring Boot. It takes advantage of Java Servlet 3.0 annotations,
which makes it much easier to set up. Additionally, a new article
How to use Spring Boot with the OGC Web Server Suite
explains how to integrate your own server created with the OGC Web Server Suite in a Spring Boot application.
ImprovementOGC Server
The WMS and WMTS server now support GetFeatureInfo requests with
text/html
or
text/xml
as output format. When setting the output format to
text/xml
,
the generated XML is based on the WMTS GetFeatureInfo XSD, which can be found
here.
ImprovementOGC Server
LF-2159
It is now possible to implement request-based SLD rendering customizations for a LuciadFusion product with an SLD style.
To accomplish this, a new method has been added to the WMS API: ALcdSLDWMSGXYLayerFactory#createGXYLayer(ILcdModel aModel, ALcdWMSLayer aWMSLayer, TLcdSLDFeatureTypeStyle[] aStyle, TLcdWMSRequestContext
aRequestContext)
Based on the request stored in the TLcdWMSRequestContext
changes can be applied to the TLcdSLDFeatureTypeStyle[]
to allow for SLD rendering customizations.
It is now also possible to configure feature type styles on the server side.
This is done by plugging in a custom implementation of a ILcdWMSSLDFeatureTypeStyleProvider
in the ALcdOGCWMSCommandDispatcherFactory
by overriding the method ALcdOGCWMSCommandDispatcherFactory#createSLDFeatureTypeStyleProvider(ServletConfig aServletConfig)
.
ImprovementOGC Server
The WMS server now supports map rotations: by means of a new custom GetMap
request
parameter angle
, WMS clients can indicate the map rotation in degrees, measured clockwise
around the center of the map.
ImprovementOGC Server
It is now possible to configure access constraints and contact information of the service metadata of the WMS server
capabilities. This information can be configured using the
ALcdWMSServiceMetaData
.
Upgrade considerationOGC Server
To allow for greater extensibility, the signature of the method
ILcdWMSGetLegendGraphicRequestEncoder#encode(ALcdWMSLayer,ALcdSLDLayer,TLcdSLDStyledLayerDescriptor,String,String,float,int,int,OutputStream,TLcdWMSRequestContext)
has been changed into
#encode(TLcdWMSGetLegendGraphicRequestContext,TLcdWMSRequestContext,OutputStream)
.
TLcdWMSGetLegendGraphicRequestContext
gives access to the original method arguments and a number of additional arguments.
The change impacts WMS implementations that use an implementation of
ILcdWMSGetLegendGraphicRequestEncoder
.
Upgrade considerationOGC Server
LCD-12142
The version of Ehcache was updated from 3.2.0 to 3.10.0 to improve compatibility with Java 17.
Upgrade considerationOGC Server
2021.1
2021.1.15
ImprovementOGC Server
LCD-12335
The WFS server now also accepts DescribeFeatureType XML requests with an unbound TypeName element to improve
interoperability with non-compliant third-party OGC WFS clients.
2021.1.01
Bug fixOGC Server
LCD-12080
The WMS server could falsely advertise support for GetMap SLD requests.
This is only supported when
ALcdSLDWMSGXYLayerFactory
instances are registered.
Now the WMS server no longer advertises this when no such layer factories are registered.
2021.0
2021.0.11
Bug fixOGC Server
LF-2178
TLcdCSWRecordTransformationFactory
would incorrectly apply ISO metadata CRS information
to ISO metadata WGS 84 bounding boxes. This resulted in CSW and ATOM records with inconsistent bounding boxes.
Bug fixOGC Server
LF-2179
ALcdCSWCommandDispatcherFactory
would return an exception when asking to include
{http://www.opengis.net/ows}BoundingBox
in the response of a
GetRecords
request.
Bug fixOGC Server
LF-2173
2021.0.09
Bug fixOGC Server
LCD-12028
Fixed the handling of WMS GetFeatureInfo requests for features with a geometry consisting of an extruded shape
or a composite curve.
2021.0.04
ImprovementOGC Server
LCD-11947
The SLD text rendering option conflictResolution
to enable/disable label
decluttering (see release note of LCD-11850) is now also supported in the WMS server.
This allows a WMS client to include an SLD in a request that enables(default) or
disables label decluttering.
2021.0
Bug fixOGC Server
LCD-11827
A GML application schema returned by the WFS server for a DescribeFeatureType request no longer includes
a GML FeatureCollection element and type, because WFS uses its own FeatureCollection.
Upgrade considerationOGC Server
3D data (point cloud or mesh) can no longer be published in a WMS or WMTS service in LuciadFusion.
The 3D data was not visible when published in either WMS or WMTS. Please use an OGC 3D Tiles service to publish 3D data.
2020.1
2020.1.25
Bug fixOGC Server
LCD-11860
The caching in the WMS server now takes additional request parameters into account for generated images.
There is also the possibility to configure which additional request parameters must be taken into account when
trying to reuse views from the view pool.
This is only intended for the case where you have extended the WMS server with one or more
non-standard
parameters that affect the layer creation.
2020.1.24
Bug fixOGC Server
LCD-11795
The WFS server could not handle DescribeFeatureType requests for multiple feature types that share the same namespace.
Bug fixOGC Server
LCD-11799
The XML Schema response to a WFS DescribeFeatureType request affecting multiple feature types now
uses a more sensible target namespace (one of the feature types' namespaces) instead
of always using http://www.opengis.net/gml
.
Bug fixOGC Server
LCD-11808
The WFS capabilities now list the feature types' namespaces on the root element,
which enhances interoperability with 3rd party WFS clients. Additionally, the feature types's
namespace prefixes are now always used instead of an automatically determined prefix.
2020.1.23
Bug fixOGC Server
LF-2080
The WFS capabilities did not advertise GeoJSON as supported output format for feature types
backed by an Oracle, Informix, IBM Db2 or Microsoft SQL Server database.
Bug fixOGC Server
LF-2103
Bug fixOGC Server
LCD-11833
The WCS GetCapabilities response did not include the title in the service identification section in case of WCS 1.1.
2020.1.12
Bug fixOGC Server
LCD-11702
The WMS in the OGC server sample
samples.ogc.server.StartOGCServices
always advertised
world bounds for models that were not of type
ILcd2DBoundsIndexedModel
- which is for
example the case for SQLite-based formats such as GeoPackage. The bounds calculation logic has now been improved
to be able to advertise accurate bounds in these cases.
2020.1.10
Bug fixOGC Server
LCD-11651
The WMS layer name included in the metadata of each feature in a GeoJSON GetFeatureInfo response was not correct
in case the WMS layer combined multiple data sources.
2020.1.05
ImprovementOGC Server
LCD-11607
A GeoJSON GetFeatureInfo response now includes the layer name for each encoded feature, to ease traceability
between selected features and the WMS layer(s) in which they are contained. This layer name is encoded
as a foreign member in the GeoJSON output, aligned with the GeoJSON RFC (https://tools.ietf.org/html/rfc7946#section-6).
2020.0
2020.0.10
ImprovementOGC Server
LCD-11392
The WCS server now uses a non-persistent cache for tiled GetCoverage requests. This cache makes
sure that subsequent tile requests are handled much faster, improving the performance and scalability of
the WCS server when using tiled requests. See ALcdOGCWCSCommandDispatcherFactory
for more
information and configuration options.
This implies that for data that changes dynamically, extra care needs to be taken to make sure caches are
invalidated. To this end, the API ILcdCoverageOffering#getUpdateSequence
and
TLcdDefaultCoverageOffering#setUpdateSequence
is introduced to indicate that a WCS
coverage has changed. By default, the implementations of these methods (mostly) assume static data/coverages.
For WCS servers that serve data that changes over time (for example data updates), these methods should be used correctly.
Note that the LuciadFusion Platform already takes care of this. An alternative is to disable the caches.
Bug fixOGC Server
LCD-11397
When requesting application/json
the result of GetFeatureInfo
was limited
to features from the first layer.
Now all features are returned within the GeoJSON response.
The geometries of the features are all converted to WGS-84.
2020.0.09
ImprovementOGC Server
LCD-11388
A new method
getModelReferenceFormatter()
has been added to
TLcdWFSClientModelEncoderFactory
to ease access to the model reference formatter property in extensions. Additionally, the factory method
ALcdOGCWFSCommandDispatcherFactory#createClientModelEncoderFactory
now configures a default model reference formatter
on created instances using the model reference formatter returned by
ALcdOGCWFSCommandDispatcherFactory#getModelReferenceFormatter()
.
Bug fixOGC Server
LCD-11389
2020.0.07
Bug fixOGC Server
LCD-11303
The WFS server could not correctly cope with custom models in which the content of the used
TLcdDataType
could change at runtime (for instance, triggered by an additional request property, a user role, ...).
Bug fixOGC Server
LCD-11342
In case of a WFS request including an OGC Filter 1.x with GmlObjectId or FeatureId elements,
the WFS server did not automatically translate this into an OGC Filter with a condition. Aligned with the
API documentation of
TLcdOGCFilter
, this is now addressed by translating the received OGC Filter
into a
TLcdOGCFilter
with a
TLcdOGCResourceIdsOperator
condition.
The default filtering logic in the WFS server was not affected by this bug; it is only of relevance when a
custom
TLcdWFSFilteredModelFactory
is used to customize the filtering logic.
2019.1
2019.1
ImprovementOGC Server
LCD-10925
Improved the interoperability with legacy WFS clients that do not recognize the reference notation urn:ogc:def:crs:OGC:1.3:CRS84;
for this reference, the WFS capabilities now also include the legacy CRS:84 notation als additional reference.
2019.0
2019.0.06
Bug fixOGC Server
LCD-10865
A WFS 2.0 GetFeature request containing a PropertyName filter and sent as an XML POST request
triggered a ClassCastException.
2019.0.04
Bug fixOGC Server
LCD-10808
A WFS Transaction Update request was implemented by a delete and insert of respectively the original and
updated object, instead of an actual update of the original object. This could trigger unexpected object
id changes in case of a database back-end.
Bug fixOGC Server
LCD-10803
Performing a GetFeatureInfo request on a queryable raster layer would fail for the text/plain
info format.
2019.0.03
ImprovementOGC Server
LCD-9862
Removed obsolete section in OGC server documentation regarding setting up of native libraries.
Native libraries used within LuciadLightspeed / LuciadFusion are extracted from jars automatically.
ImprovementOGC Server
LCD-10740
The SERVICE request parameter validation check in the WMS, WFS, WMTS, WCS and CSW server has been made case insensitive
to improve interoperability with non-compliant OGC web service clients.
Bug fixOGC Server
LCD-10783, LCD-7660, LCD-7633
The handling of WFS 1.1 GetFeature requests could trigger a service exception report in case of a
POST request with a BBOX filter containing coordinates outside the coordinate reference's projection bounds.
2019.0
Upgrade considerationOGC Server
LCD-10353
The class com.luciad.ogc.common.log.TLcdOGCLogFilter
has been removed from the API.
This Servlet Filter implementation was introduced in the past for request logging purposes but was never
integrated / used in any of the OGC web service (WFS / WMS / WCS) implementations.
The removal of this class should not pose any impact.
2018.1
2018.1.15
Bug fixOGC Server
LCD-10505
The axis-order was not correctly handled for all coordinate reference systems.
For example the Polish CRS EPSG:2180
reverses the X and Y axis which needs to be
reflected in the GetMap BBOX parameter.
2018.1.04
ImprovementOGC Server
LCD-10442
Improved the message in the WMS service exception report for the case when the parameter for the coordinate reference
system is missing for operations like GetMap
and GetFeatureInfo
.
In case of WMS 1.3.0 the parameter CRS is required and for WMS 1.1.x the parameter SRS is required.
2018.1.03
ImprovementOGC Server
LCD-10201
A number of improvements have been implemented related to the WFS server's interoperability with 3rd party
WFS client solutions:
- For GML 3.1 / 3.2 responses, linear GML elements are used by default. This makes sure that
ILcdPolyline
and ILcdPolygon
instances are respectively
encoded to LineString
and LinearRing
elements,
regardless of their interpolation. Previously, GeodesicString
elements were
used for a geodesic interpolation.
- The sample WFS server now uses qualified feature type names by default. Additionally, these feature
type names are reused as XML element names in the GML output data.
Bug fixOGC Server
The output format encoding in the DescribeFeatureType requests in XML Schema location URLs could contain
an unexpected + character.
2018.1.02
Bug fixOGC Server
LCD-10404
Fixed an issue where the WMTS server tried to write data to an already closed response.
This issue occured when the client closed the connection while the server was still working on it.
2018.1.01
Bug fixOGC Server
LCD-10305
The resolution logic introduced by LCD-9859 could cause the return of RGBA images for elevation coverages,
leading to possible data interpretation issues in WCS clients.
2018.0
2018.0.12
ImprovementOGC Server
LCD-10187
The WFS server is now flexible against the casing used in the output format parameter in GetFeature requests.
Bug fixOGC Server
LCD-10212, LCD-10213, LF-1626
Fixed an issue where the WMTS server could produce:
- inverted-color images for jpeg output.
- non-transparent images for png output with requested transparency for the map background.
The server now returns a proper image.
Bug fixOGC Server
LCD-10179
Fixed the handling of negative GridOffsets X / Y / Z resolution values in WCS 1.1 GetCoverage requests.
2018.0.10
Bug fixOGC Server
LCD-10155
A threading issue within an internal GXY view pool used by the WMS has been fixed.
Internal clean up could result in a NoSuchElementException
which in turn would result in HTTP status code 500 (internal server error).
2018.0.04
Bug fixOGC Server
LF-1568
Service exception reports returned by the WMTS service are now of content type 'text/xml'.
Previously the content type was not in accordance with the OGC WMTS protocol specification.
Bug fixOGC Server
LF-1568
Service exception reports returned by the WFS service are now of content type 'text/xml'.
Previously the content type was not in accordance with the OGC WFS protocol specification.
Bug fixOGC Server
LF-1568
Service exception reports returned by the WCS service are now of content type 'text/xml' when using version 1.1.0 or 1.1.1
of the protocol.
Previously the content type was not in accordance with the OGC WCS protocol specification for version 1.1.0 and 1.1.1.
2018.0.02
Bug fixOGC Server
LCD-9930
The default, automatically generated URLs listed in the operations metadata of the WFS capabilities
did not include the part covered by a wildcard URL pattern defined in the deployment descriptor.
2018.0
Upgrade considerationOGC Server
The CSW server component is now included in the OGC server component.
2017.1
2017.1.18
ImprovementOGC Server
LF-1476
WMS layer scale ranges are now handled more efficiently in the WMS service, resulting in faster responses for WMS
requests outside the visible range.
2017.1.16
ImprovementOGC Server
LCD-9871
The WFS server's GeoJSON output now includes 3D coordinates.
2017.1.15
Bug fixOGC Server
LCD-9859
The WCS Server could get overloaded / generate timeouts in case too large amounts of
data were needed to process a GetCoverage request; an example use case is the request
of a coverage backed by a large high-resolution data set with only a single level of detail.
The WCS Server now uses additional resolution logic to avoid this and return an image
with a red hatched pattern in case of a resolution mismatch betweem the request and the data
- similar to how raster painting works in the client.
2017.1.13
ImprovementOGC Server
LCD-9266
The performance of WMS GetCapabilities requests were improved for WMS services with a large amount of WMS layers.
2017.1.12
Bug fixOGC Server
LF-1433
Fixed rare threading issue ("Unable to marshal") during GML encoding on the WFS server.
2017.1.11
Bug fixOGC Server
LCD-9792
The BoundingBox
element within the WMS capabilities now honours the axis order
in case it is expressed in EPSG:4326
iso the default CRS:84
.
2017.1.10
Bug fixOGC Server
LCD-9779
A GetMap request with an empty LAYERS
for an image size within the cache threshold
resulted in an internal server error (NullPointerException
).
The server now returns a proper WMS exception.
Bug fixOGC Server
LCD-9780
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
Add the following to your WMS web.xml file to disable inversion (making the WMS non-compliant):
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>false</param-value>
</init-param>
2017.1.07
Bug fixOGC Server
LF-1471
When starting the ogc.server sample from the LuciadFusion release, no slf4j binding could be found,
resulting in reduced logging.
2017.1.05
Bug fixOGC Server
LCD-9616
The default value of the configuration option for the interpretation of the axis-order for
EPSG:4326
for WMS 1.3.0 requests is changed to
true
.
This makes the default value compliant with the WMS 1.3.0 specification.
Add the following to your WMS web.xml file to disable inversion (making the WMS non-compliant):
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>false</param-value>
</init-param>
Bug fixOGC Server
The WCS GetCoverage request handler could not handle GetCoverage XML requests using a RectifiedGrid instead of
a Grid to specify the desired spatial resolution.
Bug fixOGC Server
LCD-9652
The WCS GetCoverage request handler could not handle geodetic coordinates expressed in a reference with
a lat/lon axis order instead of a lon/lat axis order (e.g. urn:ogc:def:crs:EPSG::4326).
2017.1.02
ImprovementOGC Server
LCD-8807
The performance of TLcdWMSCapabilities#findWMSLayer
has been
improved for the case where there are thousands of layers.
Bug fixOGC Server
LCD-9625
A security issue has been fixed in the OGC web services related to the handling of XML POST requests,
that could enable untrustworthy clients to access server information.
2017.1.01
Bug fixOGC Server
LCD-9545
Doing a POST request to the server with an incorrect feature type and a BBOX filter that
Bug fixOGC Server
LF-1369
The WMS server swallowed
IllegalArgumentExceptions
that are thrown by a delegate
ILcdWMSGXYLayerFactory
. Because of this, the logs didn't show why a WMS layer could not
be created. This made it more difficult, for example, to discover programming errors for custom implementations.
2017.1
ImprovementOGC Server
A number of improvements have been implemented related to the server's support for WFS 2.0:
- Support has been added for the optional 'RESOURCEID' parameter in a WFS 2.0 GetFeature request. This parameter
can be used to query a feature based on its identifier, without the need to specify a feature type.
- Support has been added for the WFS 2.0 requests ListStoredQueries and DescribeStoredQueries,
along with support for the default, standardized stored query urn:ogc:def:query:OGC-WFS::GetFeatureById.
This stored query can be used inside GetFeature requests to query a feature based on its identifier.
- The error reporting in case of invalid requests has been improved.
- The WFS 2.0 capabilities now include information about constraints and supported conformance classes.
ImprovementOGC Server
LCD-9408
A WMS GetFeatureInfo encoder for the
text/plain
mime-type has been added.
It replaces the encoder that was part of the samples and provides more information about the selected objects.
For more details on the encoder have a look at the documentation of
TLcdWMSTextPlainGetFeatureInfoEncoder
.
Upgrade considerationOGC Server
The CSW API is now final.
The following changes were made since the 2017.0 release:
ALcdCSWRecordDescriptor
has been renamed to TLcdCSWRecordType and all subclasses have been replaced by constants.
ILcdCSWQueryHandler
is now part of ILcdCSWCapabilitiesProvider
.
ILcdCSWQueryHandler#getQueryLanguages
has moved to ILcdCSWCapabilitiesProvider#getInputRecordTypes
.
ILcdCSWQueryHandler#getOutputRecordTypes
has moved to ILcdCSWCapabilitiesProvider#getOutputRecordTypes
.
ILcdCSWQueryHandler#getFilterCapabilities
has moved to ILcdCSWCapabilitiesProvider#getFilterCapabilities
.
ILcdCSWQueryHandler#getQueryLanguages
has been removed.
ALcdCSWFilterQueryHandler#executeFilter
now passes the original request.
TLcdCSWGetCapabilitiesRequest
has been removed.
TLcdCSWCommandDispatcherContext
has been removed.
ALcdCSWCommandDispatcherFactory#createQueryHandler
has been moved to ILcdCSWCapabilitiesProvider#getQueryHandler
TLcdCSWGetCapabilitiesRequest
: removed getVersion
and setVersion
TLcdCSWOpenSearchTemplate
: removed OutputFormat
in favor of TLcdCSWRecordType
TLcdCSWQuery
: split up get/setElements
into get/setElements
and get/setElementNameSet
TLcdCSWElementSetName
: renamed get/setValueObject
to get/setElementSet
TLcdOpenSearchAtomFeed
: removed some property constants, use the getters and setters instead
TLcdCSWServiceException
: has been moved to the com.luciad.ogc.csw package
TLcdCSWRecordPropertyRetrieverProvider
: now takes a record type as constructor argument
- Several client API related classes have been moved out of the
com.luciad.ogc.csw.server
package
2017.0
2017.0.10
Bug fixOGC Server
LCD-9506
A WFS 2.0 Transaction Insert request could trigger a request decoding error in the server.
Bug fixOGC Server
LCD-9466
The property link inside a WFS 2.0 Transaction Update request was not correctly encoded (in the client)
and decoded (in the server).
2017.0.06
Bug fixOGC Server
LCD-9371
When registering custom encoders with the same mime-type in the WMS server lower priority encoder implementations
overwrote higher priority implementations.
2017.0.02
ImprovementOGC Server
LCD-9197
The disk tile cache checks whether sufficient disk space is left on the device.
If not the size of the disk cache is reduced automatically and a warning is logged.
ImprovementOGC Server
LCD-9200
The clearing of the disk cache on exit of the application is improved.
Some folders where not deleted cluttering the file system.
2017.0.01
ImprovementOGC Server
LF-1145
It is now possible to add an updateSequence to the WCS Capabilities. See
ILcdWCSCapabilitiesProvider#getUpdateSequence
.
Bug fixOGC Server
LCD-9244
The OGC WMS server incorrectly used a lon lat instead of a lat lon axis order when interpreting the bounding box
information of a GetMap request with CRS urn:ogc:def:crs:EPSG::4326.
2017.0
ImprovementOGC Server
LCD-3555
TLcdWFSClientModelEncoderFactory
now includes GeoJSON in its advertised output formats.
This made the previously available sample code to support GeoJSON redundant, so that sample code has been removed
(
WFSClientModelEncoderFactory
).
ImprovementOGC Server
A new server and client API for OGC Catalogue Services (CSW) has been introduced.
For more information, see:
- The OGC CSW Catalog Server developer's guide (CSW_DeveloperGuide.pdf)
- The class javadoc of
TLcdCSWServlet
and
TLcdCSWClient
- The package javadoc of
com.luciad.ogc.csw
ImprovementOGC Server
In the WFS service, the default implementation of
ALcdOGCWFSCommandDispatcherFactory#createModelDecoderFactory
returns a
TLcdOGCModelDecoderFactory
. This factory automatically picks up all the data
connectors that are found on the class path. It uses the
TLcdServiceLoader
to find all the
ILcdModelDecoder
s of the formats that are installed.
ImprovementOGC Server
LCD-6715
In the WCS service, the default implementation of
ALcdOGCWCSCommandDispatcherFactory#createModelDecoderFactory
returns a
TLcdOGCModelDecoderFactory
. This factory automatically picks up all the data connectors that
are found on the class path. It uses the
TLcdServiceLoader
to find all the
ILcdModelDecoder
s of the formats that are installed.
ImprovementOGC Server
The WMS now has anti-aliasing enabled by default, which produces smoother rendering results.
ImprovementOGC Server
LCD-8917
The sample WMS server code to monitor a directory for new/removed/updated data, available in
samples.wms.server.updater, has been updated to use Java's NIO WatchService API instead of
custom directory monitoring logic.
ImprovementOGC Server
The WFS server now supports WFS 2.0.0 clients. This includes OGC Filter 2.0 support.
Do note that temporal filtering and stored queries are not yet supported.
ImprovementOGC Server
LCD-3862
There is a default command dispatcher factory available which provides a good starting point for making
a Web Map Service with few or no additional programming.
The
TLcdOGCWMSCommandDispatcherFactory
loads most of its functionality using a service loader
mechanism. More specifically, implementations of decoders and layer factories are picked up automatically when they are
annotated with the appropriate
LcdService
annotation.
The sample command dispatcher factory extends from the default factory and only adds dynamic behavior.
ImprovementOGC Server
LCD-8767
Bug fixOGC Server
LCD-8894
WMS Get map requests could suffer from a tiny offset due to rounding errors.
Bug fixOGC Server
The default
ILcdModelProvider
returned by
ALcdOGCWMSCommandDispatcherFactory#createModelProvider
threw an
IllegalArgumentException
instead of an
IOException
when no model decoder can be found for a given source.
Upgrade considerationOGC Server
The interface
ILcdCoverageFilterFactory
has been removed from the API. A compile error will
notify you if you were using this interface, which we don't anticipate as it was not used effectively. The
new
ILcdWCSCapabilitiesProvider
offers a more powerful and easier-to-use replacement, should
there be a need.
Upgrade considerationOGC Server
The caching behavior for ILcdWFSFeatureType
on the WFS server has been modified.
Previously, caches used the ILcdWFSFeatureType
instance itself as key for a cache.
This implies that caches didn't work as expected when using different WFS feature type instances that represent
the same data.
This instance-based caching mechanism has been replaced by a caching mechanism that uses the following
properties as cache key:
ILcdWFSFeatureType#getQName
: uniquely identifies the WFS feature type.
ILcdWFSFeatureType#getUpdateSequence
: identifies the 'version' of the WFS
feature type. I.e. if a property of the feature type changes, its update sequence should change as well.
ILcdOGCModelProvider#getUpdateSequence
: identifies the 'version' of the underlying
data. I.e. if the data changes, this update sequence should change as well.
Upgrade considerationOGC Server
The WMS server has added caches on two new levels:
-
The command dispatchers now use a mechanism of view pooling. This changes the call order of methods such as
TLcdOGCWMSCommandDispatcher.clearGXYView
. If needed, the pool size
(ALcdWMSCommandDispatcher.setGXYViewPoolSize
) can be set to 0 obtain the old behavior.
-
It now uses a non-persistent tile cache for tiled (Tiled WMS) GetMap requests. This cache makes
sure that subsequent tile requests are handled much faster, improving the performance and scalability of
the WMS server when using tiled requests. See
ALcdOGCWMSCommandDispatcherFactory
for more
information (also on how to disable tile caching for example).
This implies that for data that changes dynamically, extra care needs to be taken to make sure caches are
invalidated. To this end, the following API was introduced:
ALcdWMSLayer#setUpdateSequence
: Used to indicate that a WMS layer has changed.
This includes all dependencies such as styles, layer factory implementation, etc...
ILcdModelProvider#getModelUpdateSequence
: Used to indicate that the underlying
data has changed. This can mean that the model has been changed in-memory, or that the underlying data
(file/database/...) has been changed.
By default, the implementations of these methods (mostly) assume static data/layers. For WMS servers
that serve data that changes over time (for example data updates), these methods should be used correctly.
Note that the LuciadFusion Platform already takes care of this. An alternative is to disable the caches.
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 3.0 to 3.1. Consequently,
an application server or servlet container with support for Java Servlet 3.1 or
higher is now required for deployment of the server - for instance, Tomcat 8 or higher.
The impact of this is expected to be low since Java Servlet 3.1 is widely adopted
by application server and servlet container products.
The servlet container delivered with the Luciad products, Jetty 9, already supports Servlet 3.1.
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 3.0 to 3.1. Consequently,
an application server or servlet container with support for Java Servlet 3.1 or
higher is now required for deployment of the server - for instance, Tomcat 8 or higher.
The impact of this is expected to be low since Java Servlet 3.1 is widely adopted
by application server and servlet container products.
The servlet container delivered with the Luciad products, Jetty 9, already supports Servlet 3.1
Upgrade considerationOGC Server
All WCS request handler implementations are no longer part of the public API:
TLcdWCSGetCapabilitiesRequestHandler
TLcdWCSDescribeCoverageRequestHandler
TLcdWCSGetCoverageRequestHandler
Any unlikely usages of these concrete classes can be replaced as follows:
- Decoration: in case you were wrapping the request handlers, you can generically wrap them instead,
they offered nothing in addition to the
ILcdRequestHandler
interface.
setCoverageOfferingList
and setServiceMetaData
calls can be
replaced by creating/wrapping the ILcdWCSCapabilitiesProvider
in the WCS command
dispatcher factory. This is a much more powerful, easier and safer approach to achieve similar results.
See also the other release note about ILcdWCSCapabilitiesProvider
for more
information.
Upgrade considerationOGC Server
The ILcdWCSCapabilitiesProvider
interface was added. This interface describes the
capabilities of a WCS service. Advantages over ILcdCoverageOfferingList
are that:
- it is easier now to update the coverage offering while the service is running.
- it allows to lazily load models to improve the scalability of the server.
- it allows to do per-request handling of coverages. This for example allows to filter out coverages for
specific users or groups.
- it separates the configuration/metadata from the actual use of models.
The models should be accessed through the model provider. To this end, the method
createModelProvider
was added to the
ALcdOGCWCSCommandDispatcherFactory
. The default implementation
TLcdOGCModelProvider
maintains a cache for all decoded models.
The ALcdOGCWCSCommandDispatcherFactory
allows you to plug in a
ILcdWCSCapabilitiesProvider
by overriding the
createWCSCapabilitiesProvider
method.
The methods createServiceMetaData
and createCoverageOfferingList
of ALcdOGCWCSCommandDispatcherFactory
remain to exist but they will be no longer be
abstract. Overwriting the new method to create the capabilities provider
createWCSCapabilitiesProvider
will be the preferred way of working instead of using the two
previously mentioned methods.
In order to make sure this new interface is used in the WCS server, the following change
was made:
TLcdWCSCommandDispatcherContext
now contains the methods
getCapabilitiesProvider()
and getModelProvider()
instead of the getCoverageOfferingList()
and
getServiceMetaData()
methods. Usages of these methods can be replaced by the corresponding
functionality on the ILcdWCSCapabilitiesProvider
.
Upgrade considerationOGC Server
All WFS request handler implementations are no longer part of the public API:
TLcdWFSDescribeFeatureTypeRequestHandler
TLcdWFSGetCapabilitiesRequestHandler
TLcdWFSGetFeatureRequestHandler
TLcdWFSLockFeatureRequestHandler
TLcdWFSTransactionRequestHandler
Any unlikely usages of these concrete classes can be replaced as follows:
- Decoration: in case you were wrapping the request handlers, you can generically wrap them instead,
they offered nothing in addition to the
ILcdRequestHandler
interface.
setFeatureTypeList
calls (which had inherent threading issues) can be replaced
by creating/wrapping the ILcdWFSCapabilitiesProvider
in the WFS command dispatcher
factory.
This is a much more powerful, easier and safer approach to achieve similar results.
See also the other release note about ILcdWFSCapabilitiesProvider
for more
information.
-
The
TLcdDataModel
instances passed to
TLcdWFSTransactionRequestHandler
can now be configured in the WFS command dispatcher
factory. See ALcdOGCWFSCommandDispatcherFactory#createTransactionContentDataModels()
.
By default, this method, amongst others, returns the AIXM 5.1 data model (if available).
Upgrade considerationOGC Server
LCD-4837
The ILcdWFSCapabilitiesProvider
interface was added. This interface describes the
capabilities of a WFS service. Advantages over ILcdWFSFeatureTypeList
are that:
- it allows adding/removing data without restarting the server
- it allows to lazily load models to improve the scalability of the server
- it allows to do per-request handling of feature type. This for example allows to filter out feature
types for specific users or groups.
The ALcdOGCWFSCommandDispatcherFactory
allows you to plug in a
ILcdWFSCapabilitiesProvider
by overriding the
createWFSCapabilitiesProvider
method.
In order to make sure this new interface is used in the WFS server, the following changes
were made:
TLcdWFSCommandDispatcherContext
now contains a
getCapabilitiesProvider()
method instead of the
getFeatureTypeList()
, getServiceProvider()
and
getServiceMetaData()
methods. Usages of these methods can be replaced by the corresponding
functionality on the ILcdWFSCapabilitiesProvider
.
TLcdWFSRequestContext
now contains a getCapabilitiesProvider()
method instead of the getAvailableFeatureTypes
method. Usages of this method can be
replaced by a call to ILcdWFSCapabilitiesProvider#getFeatureTypes
. It will also be necessary to
handle the TLcdWFSServiceException
that is thrown by this method (during a request, this
exception should not be caught).
- The
TLcdWFSFilteredModelFactory
constructor now doesn't take any parameters as
input anymore.
ALcdOGCWFSCommandDispatcherFactory#createFilteredModelFactory
now
takes an ILcdWFSCapabilitiesProvider
as argument instead of an
ILcdWFSFeatureTypeList
.
Upgrade considerationOGC Server
The interfaces
ILcdRequest
and
ILcdResponse
have been extended
with additional methods that are useful in the context of conditional get requests.
The methods were already available on the concrete implementations for which internally instance of and casting
was done to achieve the desired behavior.
This change affects users that have implemented
ILcdRequest
and
ILcdResponse
themselves. There is no need to implement these interfaces yourselve though as there are implementations available
within the Luciad product.
Upgrade considerationOGC Server
The interfaces
ILcdRequest
and
ILcdResponse
have been extended
with additional methods that are useful in the context of conditional get requests.
The methods were already available on the concrete implementations, but are now accessible from the interface
without the need for downcasting.
This change affects users that have implemented
ILcdRequest
and
ILcdResponse
themselves. There is no need to implement these interfaces yourself though as there are implementations available
within the Luciad product.
Upgrade considerationOGC Server
The interfaces
ILcdKVPRequest
and
ILcdXMLRequest
have been merged within their common super-interface
ILcdRequest
. Consequently, these
interfaces have been removed. This change makes the request interface more in line with the well-known Servlet API,
and makes it easier to use. It also allows to deal with other content types in the future, and resolves an API
dependency on JDom XML parsing. In addition, extra methods are exposed on
ILcdRequest
to have
access to more information such as the attributes and the user principal.
As a consequence the interface
ILcdRequestHandler
and the abstract class
ALcdOGCCommandDispatcher
(and their implementations) have been updated accordingly.
They now have a single method
void handleRequest(ILcdRequest aRequest, ILcdResponse aResponse) throws TLcdOGCServiceException
which is used for all requests. This further simplifies the request handling, allowing implementations to decide if
they want to differentiate on the content type of the request or not.
Code that used to differentiate based on the content type of the request (e.g.
instanceof ILcdKVPRequest
or
ILcdRequestHandler.handleRequest(ILcdKVPRequest ...)
) needs to be adapted, the compiler will
flag these places. Typical OGC service customizations had no need to do this. The type of request can now be
determined using the content type of the request, utility methods
TLcdServletUtil#isKVPRequest
and
TLcdServletUtil#isXMLRequest
are available.
Upgrade considerationOGC Server
ILcdInitializationConfig
now exposes an
ILcdServletContext
object. This servlet context object contains the configuration for a group of servlets, while
ILcdInitializationConfig
contains the configuration for a single servlet.
This is useful for example to configure a shared cache between servlets. This change normally does not affect
anyone as the implementation of this interface is provided by the product.
Upgrade considerationOGC Server
The PNG encoder implementation
TLcdGXYViewPNGEncoder
now uses the ObjectPlanet PNG encoder,
which is part of an additional 3rd party library.
The ObjectPlanet PNG encoder library is a lot faster than the previously used JAI based PNG encoding.
As a result the implementation of
TLcdGXYViewPNGEncoder.encodeGXYView
declares it can throw
an
IOException
.
The interface
ILcdGXYViewEncoder.encodeGXYView
already declared the
IOException
on its method. This affects only users using the concrete class
TLcdGXYViewPNGEncoder
, which
is very unlikely.
Upgrade considerationOGC Server
The
ILcdRequest
interface has been extended with a few additional methods.
It provides access to the current authenticated user, if any authentication is taking place.
It also allows to retrieve programmatically set attributes to pass on information. As instances of this interface
are created internally, you are normally not affected by this change.
2016.1
2016.1.31
ImprovementOGC Server
LCD-9028
A new optional servlet configuration parameter "request.baseUrl" has been added to the deployment descriptor
of the WMS, WFS and WCS, allowing to manually set a base URL for the service requests listed in the capabilities.
ImprovementOGC Server
LCD-9028
A new optional servlet configuration parameter "request.baseUrl" has been added to the deployment descriptor
of Luciad's OGC services, allowing to manually set a base URL for the service requests listed in the capabilities.
2016.1.27
Bug fixOGC Server
LCD-8953
The SLD WMS capabilities XML Schema sld_capabilities_1_3_0.xsd delivered with the WMS server contained a schema
location path that was incompatible with Spring Boot.
2016.1.25
ImprovementOGC Server
The WCS server now uses EPSG:4326 as fallback in case the data's native reference does not have an EPSG
representation.
2016.1.21
Bug fixOGC Server
LCD-8834
The WFS GetFeature request handler could trigger a NullPointerException in case the query included an OGC Filter
with XPath expression and the resulting response was empty.
2016.1.12
Bug fixOGC Server
LCD-8631
The SLD raster styling capability of the WMS server sample could lead to empty image responses, due to
data getting rendered asynchronously.
Bug fixOGC Server
LCD-8630
The SLD raster styling capability of the WMS server sample could not handle raster data of type ILcdRaster /
ILcdMultilevelRaster / ILcdEarthTileSet if the data was not of the type ALcdImage.
2016.1.06
Bug fixOGC Server
Fixed a recent regression in the WMS server sample that prevented the rendering of Earth data repositories.
2016.1.03
ImprovementOGC Server
LCD-7391
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES
in CTR mode) to encode log entries.
Bug fixOGC Server
LCD-8423
The OGC server sample's HTML front-end was not properly populated with sample requests in servlet containers
other than the included Jetty server.
2016.1.02
Bug fixOGC Server
LCD-8307
The OGC server sample's ANT build script now replaces '+' characters in jar names with '-',
to overcome a deployment compatibility issue with Oracle WebLogic.
Bug fixOGC Server
LCD-8272
The copy constructor of TLcdWMSCapabilities did not copy the registered formats for the WMS SLD profile requests
GetLegendGraphic and DescribeLayer.
2016.1
ImprovementOGC Server
LCD-8136
It is now possible to customize GetFeatureInfo request handling to support querying for all features
interacting with a given pixel bounds (e.g., provided through an optional parameter). This use case is supported
by the existing ALcdWMSCommandDispatcher#performSelectionAt and its sensitivity parameter - which was not correctly
taken into account in the past.
Bug fixOGC Server
LCD-8057
The WMS server didn't always respect the painting order when doing a GetFeatureInfo request. This could lead to
responses of objects that are painted underneath another object.
Bug fixOGC Server
LCD-8036
The WMS server didn't always respect max feature count parameter of a GetFeatureInfo request.
2016.0
2016.0.12
Bug fixOGC Server
LCD-8130
A regression in recent patches caused incorrect values in images generated by the WCS,
in case of source image data with a SinglePixelPackagedSampleModel.
2016.0.11
ImprovementOGC Server
LCD-8087
A launcher script was added for the OGC server sample (OGCServer.sh/bat
).
Using this script, it is now possible to run the server on a headless machine.
ImprovementOGC Server
TLcdWFSGetFeatureRequestHandler now doesn't log errors anymore when a feature can't be encoded. The stack traces
can still be obtained by enabling debug logging for the "com.luciad.ogc.wfs" package.
Bug fixOGC Server
LCD-8079
The samples.ogc.wfs.client sample now uses a default MAXFEATURES value of 1000 in all GetFeature requests,
to avoid overloading a server with too large data requests.
Bug fixOGC Server
LCD-8063
The OGC WCS server's GetCapabilities response no longer contains null Strings. If an optional value is not available
(e.g., a coverage description), an empty String is used.
2016.0.08
ImprovementOGC Server
LCD-7998
The servlet class TLcdWMSServlet has been extended with a protected factory method
createCommandDispatcherFactory(ServletConfig), to allow customization of the command dispatcher factory instance.
2016.0.04
ImprovementOGC Server
LCD-7750
The WCS service has been extended with a convenience parameter in the deployment descriptor
(build/ogc/resources/WEB-INF/web.xml) to easily enable / disable GeoTIFF tiling. Although tiling is preferred
in terms of performance, disabling it can be required to support 3rd party WCS clients that do not support tiled
GeoTIFFs.
2016.0.01
Bug fixOGC Server
LCD-7816
The OGC server sample was initialized with an incorrect classpath, leading to a conflict between
Luciad libraries residing in the lib and in the distrib/ogc folder.
Bug fixOGC Server
LCD-7816
The OGC server sample was initialized with an incorrect classpath, leading to potential conflicts between
Luciad libraries residing in the lib and in the distrib/ogc folder.
2016.0
ImprovementOGC Server
LCD-7594
The WMS server now properly supports GetFeatureInfo handling for raster data (ALcdImage, ILcdRaster,
ILcdMultilevelRaster). The location on the raster data and the corresponding values are automatically
determined. Implementations of ILcdWMSGetFeatureInfoRequestEncoder receive the result by means of
an ILcdDataObject containing the values.
ImprovementOGC Server
LCD-6799
A set of security improvements have been implemented:
- Removed the dependency on the legacy JGenerator 2.2 library,
- Improved the sanitization of response content to be more robust against CRLF injections and
cross-site scripting attempts.
ImprovementOGC Server
LCD-5929
The OGC WMS web service previously available in build/wms (containing the build script) and distrib/ogc/LuciadLightspeedWMS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
ImprovementOGC Server
LCD-5929
The OGC WFS web service previously available in build/wfs (containing the build script) and distrib/ogc/LuciadLightspeedWFS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
Bug fixOGC Server
Closing the OutputStream object in a custom implementation of ILcdWMSFeatureInfoRequestEncoder or
ILcdGXYViewEncoder resulted in a duplication of the result. This bug has been fixed.
Upgrade considerationOGC Server
To enable WCS request parameter access when customizing request-related operations (data decoding,
data encoding), a few API changes have been introduced:
- A new class TLcdWCSRequestContext has been introduced to access request context parameters such
as the original HTTP request and the requested coverage(s).
- The signature of the method ILcdWCSModelEncoderFactory#createModelEncoder(ILcdModel,
ILcdOutputStreamFactory, String) has been changed into ILcdWCSModelEncoderFactory#createModelEncoder(ILcdModel,
ILcdOutputStreamFactory, String, TLcdWCSRequestContext).
- The signature of the methods in ILcdCoverageOfferingList have been changed by
means of the introduction of an extra argument of type TLcdWCSRequestContext.
- The methods ILcdCoverageOfferingList#getCoverageOffering(int, TLcdWCSRequestContext) and
ILcdCoverageOfferingList#getCoverageOffering(String, TLcdWCSRequestContext) can now throw
an IOException.
The change will impact WCS implementations that implement ILcdWCSModelEncoderFactory and/or
ILcdCoverageOfferingList. Affected implementations can simply update the signature ignore the new
TLcdWCSRequestContext parameter.
Upgrade considerationOGC Server
LCD-7413
The Java Servlet dependency has been upgraded from version 2.5 to 3.0. Consequently,
an application server or servlet container with support for Java Servlet 3.0 or
higher is now required for deployment of the server - for instance, Tomcat 7 or higher.
The impact of this is expected to be low since Java Servlet 3.0 is widely adopted
by application server and servlet container products for over 6 years.
The servlet container delivered with the Luciad products, Jetty 8, already supports Servlet 3.0
Upgrade considerationOGC Server
Default Adobe Flash output support in the WMS server has been removed. The API class that supported this,
TLcdGXYViewSWFEncoder, and the corresponding dependency on JGenerator 2.2 (jgen-2.2.jar and log4j-1.2.15.jar)
have therefore been removed from the product.
If you did not explicitly use Adobe Flash output, this will cause no impact other than a potential build script
update (because of the removed libraries). If you did use Adobe Flash output and prefer to keep its support in
the Luciad WMS, you can request the source code of TLcdGXYViewSWFEncoder, the JGenerator 2.2 library and
integration instructions by sending a mail to support@luciad.com.
2015.1
2015.1.28
Bug fixOGC Server
Invoking the method TLcdWMSRequestContext#getRequest() could result in a NullPointerException.
2015.1.26
ImprovementOGC Server
LCD-7557
The content type of a WCS GetCoverage response containing GeoTIFF data is now
always set to the mime type 'image/tiff'; this is the most common mime type to
represent TIFF-based data.
ImprovementOGC Server
LCD-7505
It is now possible to change the base URL of the listed requests in the GetCapabilities response,
which can be useful to support a setup with a reverse proxy. To support this, the interface
ILcdWMSOnlineResourceResolver has been extended with a new type
'CAPABILITIES_REQUEST_BASE_URL', which will be used to retrieve the base URL.
Bug fixOGC Server
LCD-7562
Some bugs were fixed which affected WCS offerings of 16-bit SHORT or USHORT data.
2015.1.25
ImprovementOGC Server
LCD-7431
Fixed spatial filtering in case no geometry property name is defined.
Bug fixOGC Server
LCD-7506
Fixed the interpretation of the GridOffsets parameter in a WCS 1.1 GetCoverage request, which could
lead to responses with an incorrect resolution.
2015.1.20
ImprovementOGC Server
The sample class WFSFeatureIDRetriever now supports retrieving the id of data objects with a
primary key annotation (TLcdPrimaryKeyAnnotation).
2015.1.18
ImprovementOGC Server
LCD-7392
Improved overall security by implementing additional output neutralization measures to avoid
CRLF injection.
ImprovementOGC Server
LCD-7391
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES
in CTR mode) to encode log entries.
ImprovementOGC Server
LCD-7388
The default heap memory size of the OGC services sample has been increased from 384m to 768m, to improve
its overall performance when working with larger datasets.
2015.1.17
ImprovementOGC Server
LCD-7158
Temporary files needed to cache large responses are now created in a safer way, i.e. using undeterministic names
and with more strict file permissions.
ImprovementOGC Server
LCD-7157
Any encountered File-based data locations in XML documents (e.g., local schema locations) read by the WCS
are now validated against invalid characters.
2015.1.16
Bug fixOGC Server
LCD-7297
The server no longer logs stacktraces in case of service exception reports, as this is normal behavior
for a WMS; instead, an info message is logged with the contents of the service exception message.
2015.1.08
ImprovementOGC Server
LCD-7146
The optional logging servlet filter, TLcdLogFilter, has been upgraded with an improved encryption algorithm (AES)
to encode log entries.
ImprovementOGC Server
LCD-7141
Improved overall security by replacing the use of a pseudo random number generator with a
cryptographically strong random number generator.
ImprovementOGC Server
LCD-6799
Improved overall security by implementing additional output neutralization measures to avoid
CRLF injection and cross-site scripting.
2015.1.07
ImprovementOGC Server
LCD-6227
The decoder for the WMS server sample's XML configuration format,
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, has been upgraded to use the JDOM
XML framework.
2015.1.06
ImprovementOGC Server
LCD-7089
The OGC server sample now comes by default with a set of vendor-specific deployment configuration files
to ease the deployment on GlassFish, Apache Geronimo and Oracle WebLogic. The files can be found in
build/ogc/resources/WEB-INF and are also packaged together with the ready-to-use OGC server sample in distrib/.
2015.1.02
ImprovementOGC Server
LCD-6643
The WMS server can now accept a PIXELSIZE parameter. This server takes this into account when evaluating scale
ranges. This way, these scale range calculations on the server can correspond to the map scale on the client.
The pixel size is defined in mm per pixel.
2015.1.01
Bug fixOGC Server
LCD-6944
The WCS server now generates a service exception report compatible with WCS version 1.0.0 if an 1.0.0 request is
sent specifying an unknown request name.
Bug fixOGC Server
LCD-6942
The server no longer logs exceptions that are caused by client abort actions, to avoid log poisoning.
Bug fixOGC Server
LCD-3366
When creating a default namespace from the data model name, invalid characters are now correctly escaped so that
the namespace is always a valid URI, even if the data model name isn't.
This avoids browsers to fail in those cases.
2015.1
ImprovementOGC Server
LCD-1137
The sample class samples.ogc.server.Main has been updated with a -fromsource mode to easily start the
OGC sample services in an IDE, directly from the source code.
ImprovementOGC Server
LCD-6826
The WCS server now supports version 1.1.0 and 1.1.1 of the OGC WCS protocol, next to the already supported
version 1.0.0.
ImprovementOGC Server
The WCS server now supports point-sampling mode.
The appropriate sampling mode is not configurable, it is automatically chosen based on the sampling mode of the data
being served:
- Image data, such as GeoTIFF areal imagery, is typically area-sampled.
- Elevation data, such as DTED or GeoTIFF, is typically point-sampled.
When using the default GeoTIFF format, the response to a GetCoverage requests is a GeoTIFF with the appropriate tag
set to 'RasterPixelIsPoint' or 'RasterPixelIsArea'.
ImprovementOGC Server
The WCS server now supports the "bilinear" interpolation method in addition to "nearest neighbor", and advertises
this in the coverage offering.
Bilinear interpolation usually yields better results than nearest neighbor interpolation, especially when requesting
coverages in a much higher resolution than the native one (oversampling).
Bug fixOGC Server
LCD-6640
The WCS server now respects caching headers also for XML requests.
Bug fixOGC Server
LCD-6615
The WCS server now always selects the appropriate level of detail of the source data, even when the response CRS
differs from the model reference and when no area of interest is defined.
Bug fixOGC Server
HTTP authentication errors (status code 401) thrown by an ILcdRemoteOWSModelDecoder implementation (e.g.,
to decode a remote WFS in an SLD user layer) are now correctly passed to the WMS request sender.
2015.0
2015.0.11
Bug fixOGC Server
LCD-6790
The server now returns valid capabilities instead of throwing a NullPointerException when no output formats are
defined.
Bug fixOGC Server
LCD-6776
The server now always deletes temporary _lmap_*.tmp files as soon as they become obsolete, to prevent cluttering the
tmp directory.
2015.0.10
Bug fixOGC Server
LCD-6756
In case of an unknown CRS, the server will indicate unknown CRS instead of null in WCS DescribeCoverage response.
2015.0.09
Bug fixOGC Server
LCD-6722
Fixed a bug in the parsing of WMS requests with an SLD body.
Bug fixOGC Server
LCD-6667
The RectifiedGrid limits and offsetVector values in a DescribeCoverage response sometimes had unexpected signs
in case of very high resolutions.
2015.0.08
Bug fixOGC Server
LCD-6534
The validation of an OGC filter has been made less strict so that property names with "" as default namespace match any
namespace.
2015.0.06
Bug fixOGC Server
LCD-6503
The LRU cache used by the sample WMS server model provider class, DynamicModelProvider, could cause
a NullPointerException in case of cached raster models.
2015.0.05
ImprovementOGC Server
The OGC web service front-end now automatically detects the servlet location (protocol, host name and port),
so that this information no longer needs to be hard-coded in the JSON service description files.
2015.0.01
ImprovementOGC Server
LCD-6404
The acme-1.0.jar library dependency in the WMS server has been removed.
It was used in the past by TLcdGXYViewGIFEncoder and TLcdGXYViewSWFEncoder to support GIF map generation in the WMS
when a Java version older than 1.6 was used; however, Java 1.7 is the minimum required version in v2015.
Bug fixOGC Server
LCD-6347
Fixed a NullPointerException which could happen when a custom ILcdModelEncoder implementation created and
subsequently closed more than one OutputStream using a single given ILcdOutputStreamFactory.
2015.0
ImprovementOGC Server
LCD-1097
The JSP-based front-end delivered with the OGC web services sample has been replaced by a new JavaScript-based
front-end that gives access to the various services and example requests. This removes the JSP dependency from the
sample.
ImprovementOGC Server
LCD-1097, LCD-1103
The JSP-based front-end delivered with the OGC web services sample has been replaced by a new JavaScript-based
front-end that gives access to the various services and example requests. This removes the JSP dependency from the
sample.
ImprovementOGC Server
LCD-6176
To support transaction requests containing data defined in a custom data format, it is now possible to register
one or more data models via the constructor of TLcdWFSTransactionRequestHandler. A typical use case is the set
up of an OGC WFS-T, capable of receiving AIXM 5 data.
Upgrade considerationOGC Server
LCD-5731
It is now possible to specify a content type for the response to a WFS DescribeFeatureType request by implementing
the new method
getContentType
on the interfaceILcdWFSModelSchemaEncoder.
In case you have a custom implementation of this interface, you must implement this new method.
Typical implementations will return a constant MIME type, for example"text/xml".
Upgrade considerationOGC Server
Because of the OGC web service front-end improvement (LCD-1097), there is a change in 3rd party library dependencies
for the OGC web service sample. Because this new front-end is now built using JavaScript instead of JSP,
the following JSP-related libraries have been removed:
- jspapi-2.2.jar
- javax.servlet.jsp.jstl-1.2.1.jar
- javax.servlet.jsp-2.2.2.jar
- jdt-core-3.7.1.jar
- el-api-2.2.jar
- jstl-api-1.2.jar
Instead, a JavaScript library dependency has been added to support the front-end, namely AngularJS 1.3.10.
More specifically, the following AngularJS modules have been added to build/ogc/resources/js:
- angular
- angular-route
- angular-sanitize
Users that relied on the front-end need to update their build process to take the 3rd party library change into
account.
Upgrade considerationOGC Server
LCD-6172
It is now possible to separately define output formats for GetFeature and DescribeFeatureType requests.
To this end, the new methods
ILcdWFSClientModelEncoderFactory.getSupportedSchemaOutputFormatCount and
ILcdWFSClientModelEncoderFactory.getSupportedSchemaOutputFormat
have been added, which define the supported output formats for the DescribeFeatureType request.
The existing methods
ILcdWFSClientModelEncoderFactory.getSupportedOutputFormatCount and
ILcdWFSClientModelEncoderFactory.getSupportedOutputFormat now only define
the supported output formats for the GetFeature request.
Existing, custom implementations of ILcdWFSClientModelEncoderFactory can delegate to the
default implementation available in TLcdWFSClientModelEncoderFactory.
Upgrade considerationOGC Server
LCD-5174
It is now possible to define supported output formats per feature type.
To this end, a new method
ILcdWFSFeatureType.getSupportedOutputFormats
has been added, which returns the supported output formats as an object of type
TLcdWFSOutputFormatList.
The default implementation, TLcdWFSFeatureType, has been updated accordingly
and has also received a setter for this new property.
Existing, custom implementations of ILcdWFSFeatureType can implement
the new method by returning null, indicating that the global list of output formats needs to be used;
this corresponds to the past behavior.
Upgrade considerationOGC Server
LCD-3909
It is now possible to define the content type (MIME type) of a custom outputFormat.
To this end, the return type of method
ILcdWFSClientModelEncoderFactory.createModelEncoder
has changed from
ILcdModelEncoder
to a new type
ILcdWFSModelEncoder.
You need to update your implementations accordingly:
-
If the
ILcdModelEncoder
you used to return is an instance of a class under your control,
just implement the new method getContentType.
-
If the
ILcdModelEncoder
you used to return is an instance of a class not under your control,
you can wrap it using
TLcdWFSModelEncoder
and give it a content type.
Using
null
as content type is allowed but not recommended:
it means that the GetFeature response will not have a content type, which can result in ill-defined behavior on
the client.
Upgrade considerationOGC Server
LCD-6103
To enable WMS request parameter access in the layer creation, the signature of the method
ILcdWMSGXYLayerFactory#createGXYLayer(ILcdModel, ALcdWMSLayer, String) has been changed into
#createGXYLayer(ILcdModel, ALcdWMSLayer, String, TLcdWMSRequestContext). TLcdWMSRequestContext gives access
to the original request and a number of additional request-related parameters.
The change will impact WMS implementations that use an implementation of ILcdWMSGXYLayerFactory that does not extend
from ALcdSLDWMSGXYLayerFactory. Affected implementations can simply update the signature of the createGXYLayer method
and ignore the new parameter.
2014.1
2014.1.08
Bug fixOGC Server
LCD-6340
Fixed a bug in the interpretation of the default SRS of the bbox of a KVP request: the default SRS is now CRS:84
with lon/lat axis order.
Bug fixOGC Server
LCD-6321
Fixed a bug in the interpretation of XML-encoded GetFeature requests containing multiple typeNames: now all intended
typeNames are used rather than just the first one.
Also, when the request contains no typeNames at all, all typeNames are used rather than an
exception thrown.
This brings the behavior of XML-encoded and KVP-encoded GetFeature requests in sync with each other.
2014.1.06
Bug fixOGC Server
LCD-6267
The default outputFormat now correctly depends on the WFS version also for XML requests (HTTP POST).
Bug fixOGC Server
LCD-6254, LCD-6268
TLcdWFSRequestContext
now contains the correct requested feature types when passed to
ILcdWFSClientModelEncoderFactory
implementations.
2014.1.02
ImprovementOGC Server
LCD-5929
The OGC WCS web service previously available in build/wcs (containing the build script) and distrib/ogc/LuciadLightspeedWCS_x.x.x
(containing a pre-built / ready-to-deploy service) has now been integrated in a combined OGC web service sample,
consisting of a WMS, WFS and WCS; the folder build/ogc contains the build script and the folder distrib/ogc/LuciadLightspeedOGC_x.x.x
contains
a pre-built and ready-to-deploy service. To run the pre-built service, you can still use the script
ogc.server.start (.bat/.sh) available in the samples folder, which will deploy the service in a Jetty servlet container.
Bug fixOGC Server
LCD-6188
GetFeatureWithLock now always locks all features and no longer requires the
lockAction
parameter,
as prescribed by the WFS specification.
Bug fixOGC Server
LCD-6182
GetFeature, GetFeatureWithLock and LockFeature operations now also behave correctly when both
featureId
and
typeName
parameters are given.
Bug fixOGC Server
LCD-6168
The WCS server introduced small gaps in raster data responses in case of an elevation coverage backed by multiple
elevation rasters and in combination with a need to transform the requested data to a destination reference.
2014.1.01
Bug fixOGC Server
LCD-6096
The WFS server now correctly excludes the 'Lock', 'Insert', 'Delete' and 'Update' operations from the capabilities
when locking and/or transactions are disabled.
2014.1
Upgrade considerationOGC Server
LCD-5946, LCD-4201
To enable WMS request parameter access in the data backend, the signature of the method
ILcdModelProvider#getModel(String) and its extension ALcdMultiDimensionalModelProvider#getModel(String)
have been changed into #getModel(String, ALcdRequestContext). ALcdRequestContext is a new class giving
access to the original request; in the WMS, this class is implemented by TLcdWMSRequestContext, which
adds a number of additional request-related parameters.
The change will impact WMS implementations that use a custom implementation of ILcdModelProvider or
ALcdMultiDimensionalModelProvider. Affected implementations can simply update the signature of the getModel method
and ignore the new parameter.
Upgrade considerationOGC Server
LCD-5946
To enable WFS request parameter access in the data backend, the signature of the method
ILcdOGCModelProvider#getModel(String) has been changed into
ILcdOGCModelProvider#getModel(String, ALcdRequestContext). ALcdRequestContext is a new class giving
access to the original request; in the WFS, this class is implemented by TLcdWFSRequestContext, which
adds a number of additional request-related parameters.
The change will impact WFS implementations that use a custom implementation of ILcdOGCModelProvider.
Affected implementations can simply update the signature of the getModel method and ignore the new parameter.
2014.0
2014.0.17
ImprovementOGC Server
LCD-5994
The WCS server now supports the reprojection of requested data via the RESPONSE_CRS request parameter.
Bug fixOGC Server
LCD-5988
It is now possible to set up a WMS with 0 layers, which can be useful for dynamic services that receive their
content at runtime. Previously, this configuration resulted in an Exception when requesting the capabilities.
2014.0.13
ImprovementOGC Server
LCD-5943
Improved the exception reporting in case of a missing 'service' parameter in the request.
2014.0.11
Bug fixOGC Server
LCD-5885
Due to a regression, the WCS server did no longer accept "Image" and "Engineering" as CRS in a request,
making it impossible to serve non-georeferenced content.
2014.0.06
ImprovementOGC Server
LCD-5766
Thh WFS server now advertises Operations also at the level of FeatureTypeList in its capabilities.
This improves interoperability with third-party clients such as geoserver.
Bug fixOGC Server
LCD-5765
The WFS server now uses the correct casing for the "outputFormat" parameter name in the capabilities, according to.
the WFS specification.
This improves interoperability with third-party clients such as geoserver.
2014.0.04
Bug fixOGC Server
LCD-5729
The Content-Type (MIME type) of the response to a DescribeFeatureType request now correctly matches one the output
formats advertised in the Capabilities.
More specifically, for output format "application/gml+xml; version=3.2" the Content-Type of the response is now
"application/gml+xml; version=3.2" instead of "text/plain".
2014.0.02
Bug fixOGC Server
LCD-5495
The GeoTIFFModelEncoder now correctly deals with sparse rasters.
This fixes for example the visualization of incomplete LuciadFusion coverages when using WCS.
2014.0
ImprovementOGC Server
LCD-5146
The Jetty servlet container delivered with the OGC Web Server Suite to deploy and run the sample OGC services
(see samples.ogc.server.Main) has been upgraded from version 6.1.21 to 8.1.15.
ImprovementOGC Server
LCD-4836
An appropriate HTTP status code is now set on the response in case of a service exception report:
4xx for client request errors, 5xx for server errors.
ImprovementOGC Server
LCD-4473
It is now possible to configure a "Last-Modified" date on a WCS coverage (TLcdCoverageOffering).
This information is used to fill in the "Last-Modified" date HTTP header on the response of a
GetCoverage and DescribeCoverage request and to support conditional HTTP requests.
ImprovementOGC Server
LCD-4473
It is now possible to configure a "Last-Modified" date on a WMS layer (ALcdWMSLayer).
This information is used to fill in the "Last-Modified" date HTTP header on the response of a
GetMap and GetFeatureInfo request and to support conditional HTTP requests.
ImprovementOGC Server
LCD-4472
It is now possible to configure an expiry date on a WCS coverage (TLcdCoverageOffering).
This information is used to fill in the "Expires" HTTP header on the response of a GetCoverage
and DescribeCoverage request.
Upgrade considerationOGC Server
LCD-4200
The capabilities class ALcdWMSCapabilities and its default implementation TLcdWMSCapabilities
now implement ILcdCloneable, providing a public clone() method to create a copy of an instance.
Additionally, TLcdWMSCapabilities now has a copy constructor that allows to create a new
TLcdWMSCapabilities instance based on a given ALcdWMSCapabilities instance.
Custom implementations of ALcdWMSCapabilities or extensions of TLcdWMSCapabilities are recommended to
override the clone() method and implement proper behavior for the custom implementation / extension - i.e.,
take into account potential custom properties or delegate in case of a wrapper implementation.
2013.1
2013.1.46
Bug fixOGC Server
LCD-5384
Fixed a bug in the deploy_wcs script so that it now correctly includes the license.
2013.1.40
ImprovementOGC Server
LCD-5169
The longitude range of the WGS 84 bounds advertised in the WMS capabilities are now always normalized to fit into
the [-180, 180] range. Although not required by the WMS standard, it improves this interoperability with 3rd
party WMS clients.
2013.1.28
ImprovementOGC Server
The EPSG code 2056 is now supported by default.
2013.1.21
Bug fixOGC Server
LCD-4841
The calculation of the "Expires" HTTP header did not take into account the children
of the requested layers.
2013.1.15
ImprovementOGC Server
LCD-4838
The GetCoverage response generation performance has been improved for coverages
that are backed by multiple rasters contained in a single model (ILcdModel).
2013.1.12
ImprovementOGC Server
LCD-4783
The WCS server has been updated with support for coverages that are backed by
multiple rasters contained in a single model (ILcdModel). Based on the supplied area of
interest and resolution parameters, the WCS server now takes into account all
raster instances found in a model to calculate the resulting GeoTIFF raster.
2013.1.01
Bug fixOGC Server
LCD-4597
Fixed a bug when using WFS transaction requests to populate an empty GML model.
Bug fixOGC Server
LCD-4506
The SRS name is now encoded in the GML envelope. It is no longer repeated for each individual feature. This reduces
bandwidth for WFS GetFeature responses.
2013.1
ImprovementOGC Server
LCD-4440, LCD-4457
Updated the DescribeCoverage response with a RectifiedGrid description and reorganized
the request CRS listing to improve support for non-compliant OGC clients.
ImprovementOGC Server
LCD-4373
It is now possible to configure an expiry date on a WFS feature type (TLcdWFSFeatureType).
This information is used to fill in the "Expires" HTTP header on the response of a GetFeature
and GetFeatureWithLock request.
ImprovementOGC Server
LCD-4374
It is now possible to configure an expiry date on a WMS layer (ALcdWMSLayer).
This information is used to fill in the "Expires" HTTP header on the response of a GetMap
and GetFeatureInfo request.
ImprovementOGC Server
The WMS server now allows the Post method as access point for GetFeatureInfo requests. This is also reflected in
the WMS capabilities.
ImprovementOGC Server
The zip file containing all OGC servers is now called Ogc_server.zip instead of Wms_server.zip
2013.0
2013.0.25
ImprovementOGC Server
LCD-4038
The WCS GetCoverage request handler currently expects the bounding box to be expressed
in either the EPSG:4326 (WGS 84) reference or in the native reference of the offered data.
This enhancement adds support for any EPSG and WKT CRS supported by Luciad.
2013.0.20
Bug fixOGC Server
LCD-4195
A bug was fixed which caused NullPointerExceptions upon GetFeatureType or DescribeFeatureType requests for empty
models when using a custom ILcdWFSClientModelEncoderFactory which does not extend from
TLcdWFSClientModelEncoderFactory.
2013.0.12
ImprovementOGC Server
LCD-4082
Convenience methods have been added to TLcdWMSRequestContext to access the
layers and styles parameters in a request.
2013.0.04
Bug fixOGC Server
LCD-3985
A bug was fixed which prevented custom model reference parsers from being called when another custom model reference
parser threw a ParseException.
Bug fixOGC Server
LCD-3982
The cache of model references is now correctly reset upon servlet initialization. This eliminates problems with
unknown references which kept polluting the cache after hot redeployment of the servlet.
2013.0.01
ImprovementOGC Server
LCD-3321
The content type of output format "JSON" or "application/json" is now correctly set to "application/json".
Bug fixOGC Server
LCD-3921
The release no longer includes versions 2.4 and 2.5 of the servlet api. Only version
2.5 is now included.
2013.0
Upgrade considerationOGC Server
The Java Servlet dependency has been upgraded from version 2.4 to 2.5. Consequently,
an application server or servlet container with support for Java Servlet 2.5 or
higher is now required for deployment - for instance, Tomcat 6 or higher.
The impact of this is expected to be low since Java Servlet 2.5 is widely adopted
by application server and servlet container products for over 7 years.
2012.1
2012.1.13
ImprovementOGC Server
The WFS request handler implementations, i.e. the implementations of ILcdRequestHandler
in com.luciad.ogc.wfs, have received a new constructor that takes a
TLcdWFSCommandDispatcherContext to configure all required settings.
This eases custom creation of the request handlers during server startup in
the method ALcdOGCWFSCommandDispatcherFactory#createRequestHandler.
Bug fixOGC Server
LCD-3548
Including PropertyName parameters in WFS GetFeature requests could affect subsequent
GetFeature requests in case of ILcdDataObject-based domain objects.
2012.1.09
Bug fixOGC Server
LCD-3545
Custom model reference formatters registered by overriding
ALcdOGCWFSCommandDispatcherFactory.registerModelReferenceFormatters() are now always correctly registered.
In particular, when a custom instance of TLcdWFSClientModelEncoderFactory is created by overriding
createClientModelEncoderFactory().
2012.1.06
Bug fixOGC Server
LCD-3473
The WFS server now respects to the requested feature types, it longer returns irrelevant feature types.
2012.1.04
Bug fixOGC Server
LCD-2543
The WFS property name filtering mechanism was not supported for domain objects that
implemented ILcdDataObject, but were not extensions of the class TLcdDataObject.
The latter restriction has been removed: any implementation of ILcdDataObject is now supported.
2012.1.02
ImprovementOGC Server
LCD-2557
The WFS server will no longer print stack traces at startup when a certain output format is not
usable for a given feature type, a simple warning is printed instead. These warnings are only relevant
if the actual output format is in use. The stack traces can still be obtained by enabling debug logging for
the "com.luciad.ogc.wfs" package.
2012.1.01
Bug fixOGC Server
The WCS server could not cope with some GetCoverage requests that specified a longitude/latitude
outside the coverage bounds.
Bug fixOGC Server
LCD-3060
The WMS scale denominators (optionally configurable on WMS layers) are not correctly taken
into account in case of the geodetic reference EPSG:4326 / CRS:84.
Bug fixOGC Server
LCD-3045
The GeoTIFF encoder used in the WCS now encodes tiles with an odd resolution or a byte indexed
color model more accurately.
2012.1
ImprovementOGC Server
The WFS Server sample can now also serve features in the GeoJSON format, by passing 'json' or 'application/json'
as OutputFormat.
ImprovementOGC Server
A CORS (http://www.w3.org/TR/cors/) implementation is included, which can be activated by optionally
applying a servlet filter to the WFS servlet. This enables web applications that are not hosted on
the same server as the WFS servlet to send Ajax requests to the WFS servlet.
ImprovementOGC Server
The OGC SLD request handling class TLcdOGCSLDWMSCommandDispatcher now supports
the configuration of data models (TLcdDataModel) through a newly added constructor.
These data models are used for decoding XML feature data in SLD requests (i.e.,
SLD inline feature requests).
Upgrade considerationOGC Server
The Batik libraries have been upgraded from version 1.5 to 1.7, to solve issues
with respect to SVG XML decoding. Users that are relying on SVG support inside the WMS
will need to update their build process accordingly. SVG can be used in the WMS
as map output format (through TLcdGXYViewSVGEncoder) or inside OGC Symbology Encoding
styles (in an SLD-enabled WMS). If SVG is not used, the Batik libraries are not
required.
2012.0
2012.0.19
Bug fixOGC Server
LCD-2939
The WCS server could not cope with GetCoverage requests that specified longitude/latitude
request that crossed the date line.
2012.0.17
Bug fixOGC Server
TLcdOWSDomain#getValues() did always return an empty array. This class is used inside
OWS (WFS, WCS, WMS) capabilities to model domain metadata.
2012.0.11
Bug fixOGC Server
LCD-2541
The WMS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixOGC Server
LCD-2541
The WFS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
Bug fixOGC Server
LCD-2541
The WCS XML schema's have been updated. The new versions now refer to the official W3C XLink schema, instead of the
OGC variant that was used before.
2012.0.09
ImprovementOGC Server
LCD-2610
It is now possible to avoid loading the EPSG, AUTO and/or AUTO2 reference codes
in the WMS capabilities by leaving out their configuration parameters in the
web.xml file.
2012.0.07
ImprovementOGC Server
XML Schema's are now better cached. This improves the performance of processing XPaths.
ImprovementOGC Server
The WFS server no longer accesses the elements() method to generate its schema's, if a data model is available.
Bug fixOGC Server
LCD-2425
The default transparent map configuration applied by the WMS (TLcdWMSGXYViewFactory)
could cause rendering issues when using transparent colors for vector features.
The configuration has been updated to avoid these issues.
Bug fixOGC Server
The WCS server GetCoverage response could have some incorrect pixels when the request requires
resampling of the raster data.
Bug fixOGC Server
LCD-1624
The WCS server sometimes returned raster data that is geographically shifted w.r.t. the original
data.
Bug fixOGC Server
LCD-1590
The WCS server did not expose which value indicates that the value of a pixel is unknown. For
example a DTED raster can contain unknown values.
Bug fixOGC Server
LCD-1581
The WCS server did not support elevation data with negative heights (e.g. a height below sea
level).
Bug fixOGC Server
LCD-1576
The WCS server did not always use the optimal level in an ILcdMultilevelRaster. It could use a
more detailed level while a less detailed level already provided the same quality for a given
request.
11.0
11.0.30
Bug fixOGC Server
LMAP-6023
GetFeatureInfo requests where not correctly handled for layers that did not provide
non-null painters for each available object in a model. It is however valid for layers
to do that, if they want to hide an object in the map.
Bug fixOGC Server
LMAP-5641
Manually configured scale ranges on the ILcdGXYLayer instances produced by the layer factory
were not correctly taken into account in case of the geodetic reference EPSG:4326 / CRS:84.
11.0.23
Bug fixOGC Server
LMAP-5875
When using WMS layer dimensions, the support class ALcdMultiDimensionalModelProvider
did not accept dimension intervals - only values were accepted.
11.0.10
Bug fixOGC Server
LMAP-5647
Fixed a regression with WFS 1.0 GetFeature XML requests that caused the server to return an exception for valid
requests.
11.0.07
Bug fixOGC Server
LMAP-5637
Querying on a specified amount of features without a filter is now more memory efficient. This also reduces the
memory
need on server initialization.
11.0
ImprovementOGC Server
The WFS server now supports additional GML output formats to export data using the GML simple features profile.
This allows servers to either export as simple features by default, or otherwise to expose the additional output
formats
so they are available to clients.
Upgrade considerationOGC Server
The lcd_wxs_common.jar is no longer part of the release. The necessary classes have been included in the
luciadmap.jar
Upgrade considerationOGC Server
The lcd_wxs_common.jar is no longer part of the release. The necessary classes have been included in the
luciadmap.jar.
10.1
10.1.23
Bug fixOGC Server
LMAP-2414
The WMS GIF encoder, TLcdGXYViewGIFEncoder, now properly supports images that have more than 256 colors
in combination with transparency, regardless of the JDK version.
10.1.20
Bug fixOGC Server
LMAP-3741
The GeoTIFF encoder used in the WCS now properly encodes elevation raster data as signed 16-bit GeoTIFF rasters.
10.1.01
ImprovementOGC Server
LMAP-4701
The versions of the WCS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wcs.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.0.0,1.1.0" as values, or you can use wild cards such as "1.0.*".
ImprovementOGC Server
LMAP-4701
The versions of the WMS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wms.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.3.0,1.1.0" as values, or you can use wild cards such as "1.1.*".
ImprovementOGC Server
LMAP-4701
The versions of the WFS specification that are supported by a deployed service can now be configured in the web.xml
configuration file. This allows you to avoid unwanted support for older or newer versions of the specification.
Add a parameter with the name wfs.supportedVersions to your web.xml file to enable this feature. You can use
comma separated lists of versions such as "1.0.0,1.1.0" as values, or you can use wild cards such as "1.*".
10.0
10.0.08
ImprovementOGC Server
The (unofficial) EPSG code 900913 used by Google Earth is now supported.
10.0.07
Bug fixOGC Server
LMAP-4439
Fixed an issue that could cause decoding of transaction requests to fail when the request contains a schemalocation
for a type defined by the WFS. We now ignore these schemalocations and use the schemas that are linked to the data.
10.0.03
ImprovementOGC Server
By default support special versions of EPSG codes and some specific srs names like CRS84.
ImprovementOGC Server
LMAP-4312
Improved handling of certain bad filters, this will now result in a WFS service exception.
10.0
ImprovementOGC Server
LMAP-1175
The WFS server now correctly takes the 'srsName' attribute of incoming queries into account to convert
bounding box operators to the coordinate system of the model that is being filtered.
ImprovementOGC Server
The WFS server now provides api to convert incoming XPath expressions to the native format that is provided to the
WFS. A default implementation exists that relies on the
ILcdDataObject interface to support this conversion automatically, assuming that the default WFS client model
encoders are used to generate the GML schemas.
ImprovementOGC Server
The WCS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
giving access to the capabilities of the server. When starting the server sample through the startup script
ogc.server.start, the front-end can be accessed through the URL http://localhost:8080/LuciadMapWCS.
ImprovementOGC Server
The WFS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
It gives access to the capabilities of the server, and provides a convenient way to test HTTP POST requests.
When starting the server sample through the startup script ogc.server.start, the front-end
can be accessed through the URL http://localhost:8080/LuciadMapWFS.
ImprovementOGC Server
The WMS server sample is now delivered with a graphical front-end, based upon Java Server Pages (JSP) technology,
giving access to the capabilities of the server. When starting the server sample through the startup script
ogc.server.start, the front-end can be accessed through the URL http://localhost:8080/LuciadMapWMS.
ImprovementOGC Server
The support for locking and transactions has been improved, and is also WFS 1.1.0 and WFS 1.0.0 compliant. These
features
can be controlled through a parameter in the servlet configuration file. More information can be found in
the developer guide.
The transactional improvements rely on the new ILcdDataObject interface that is introduced in LuciadMap V10. Users
should ensure that
the elements of the models provided to the WFS server implement this interface.
Additional api was added that allows you to customize how locking and transactions are handled. This makes
it possible to support any kind of data backend.
ImprovementOGC Server
The WFS server implementation is now fully WFS 1.1.0 compliant. This results in some changes:
- The result of a GetFeature request is now a wfs:FeatureCollection
- The server now performs more strict input checking, invalid input will result in an exception report.
- Improved filtering capabilities.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
A new library lcd_wxs_server.jar has been added, sharing common code between the WMS, WFS and WCS server
implementations.
This might require an update to existing application build and obfuscation scripts, to incorporate the new library.
Upgrade considerationOGC Server
The metadata API that was available in com.luciad.metadata has been replaced with an improved implementation in
com.luciad.format.metadata.
Related to this change, the old metadata interfaces that were implemented by some OWS domain model classes have been
removed from these classes.
The change will have no or very little impact on existing implementations as the affected classes are mostly used
internally.
Methods that were available on these interfaces can still be found in the OWS domain model.
Upgrade considerationOGC Server
The ILcdWFSFeatureType interface has been extended with two methods to indicate that the type supports transactions
and/or locking.
Most existing implementations will want to return false for these methods, which is also the case for
implementations that use the TLcdWFSFeatureType class.
The getModelObjectFactory() method of ILcdWFSFeatureType has been removed. The ILcdDataObject interface is now used
to create new instances for specific feature types. This means that servers that wish to support transactions are
required to use ILcdDataObject enabled models. Existing transactional WFS implementations should take this into
consideration before upgrading.
Upgrade considerationOGC Server
The ILcdDataObject interface is now used throughout the WFS if it is available, but it is only required for servers
that wish to support transactions.
It is recommended to use data formats that support ILcdDataObject with the WFS. For backwards compatibility,
ILcdFeature objects can also be
supported, but this might disable some of the features that are available to ILcdDataObject based types.
The WFS requires that each ILcdWFSFeatureType corresponds with at most one TLcdDataType. This means that
if the elements of an ILcdModel returned by an ILcdOGCModelProvider implement ILcdDataObject, the TLcdDataType
of these data objects should be the same for all elements.
9.1
9.1.15
Bug fixOGC Server
LMAP-3960
The INTERSECT constant of the TLcdOGCSpatialFilterCapabilities evaluator had the incorrect value "Intersect"
where it should have been "Intersects". As a result, encoding capabilities containing such a spatial filter
capability resulted in an invalid xml document.
9.1
ImprovementOGC Server
The JGenerator library used by TLcdGXYViewSWFEncoder to generate maps in the SWF (Flash) format
has been upgraded from version 1.3.1 to version 2.2.
ImprovementOGC Server
The EPSG code 3395 is now supported by default.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WCS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP server and servlet container. A startup script ogc.server.start in the directory samples starts
a Jetty web server on port 8080, predeployed with the WCS server sample available in the directory
LuciadMapWCS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WFS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP
server and servlet container. A startup script ogc.server.start in the directory samples starts a Jetty web server
on port 8080, predeployed with the WFS server sample available in the directory LuciadMapWFS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3304
To ease the deployment of the WMS server sample, the release is now delivered with the Jetty web server, a
Java-based HTTP
server and servlet container. A startup script ogc.server.start in the directory samples starts a Jetty web server
on port 8080, predeployed with the WMS server sample available in the directory LuciadMapWMS_X.Y.Z/distrib/.
ImprovementOGC Server
LMAP-3322
An option can now be specified in the WMS servlet configuration file (web.xml) to invert the bounding box
coordinates in case the request version is 1.3.0 and the reference is EPSG:4326. If these conditions hold,
and the option is set, the x coordinates will be interpreted as latitudes and the y coordinates as longitudes.
For WMS version 1.1.1, the order is defined as x=lon, y=lat. In version 1.3.0 it was decided that
the order should be consistent with the order defined in the EPSG:4326 reference which is lat/lon.
Consequently, some WMS 1.3.0 servers have changed their interpretation of EPSG:4326 coordinates,
while others sticked to the old (WMS 1.1.1) interpretation.
Use the configuration option if you want to comply with the WMS 1.3.0 specification. Do note that the EPSG:4326
reference
is officially deprecated, so the problem can be circumvented by not supporting this reference.
Add the following to your WMS web.xml file to enable inversion:
<init-param>
<param-name>EPSG.4326.latlon</param-name>
<param-value>true</param-value>
</init-param>
ImprovementOGC Server
LMAP-3289
The ALcdWMSLayer class in the WMS server API has three new methods:
- boolean isNoSubsets()
- Returns the value of the noSubsets parameter.
- int getFixedWidth()
- Returns the value of the fixedWidth parameter.
- int getFixedHeight()
- Returns the value of the fixedHeight parameter.
The TLcdWMSLayer class that extends this abstract class also has corresponding setter methods for these parameters.
If set, these parameters will also be encoded in the server capabilities, and the server will take them into account
when validating an incoming GetMap request.
These parameters can also be set in the capabilities configuration file of the WMS server sample.
ImprovementOGC Server
LMAP-3088
The WFS server now supports the sortBy parameter in KVP and XML requests. The features returned by the server will
be sorted in the requested order. In case a maximum number of features has been set, the sorting will be applied
before applying the feature limit.
9.0
9.0.01
ImprovementOGC Server
LMAP-3223
A default logging.properties file has been added to the WEB-INF/classes directory of the sample server,
to setup java.util.logging on Apache Tomcat servers. This logs all messages from the server to a separate file
in the logs folder of the Apache Tomcat distribution.
9.0
ImprovementOGC Server
A new encoder (TLcdSLDFeatureTypeStyleEncoder) and decoder (TLcdSLDFeatureTypeStyleDecoder) for feature
type styles has been added. They replace the existing encoder and decoder which have been made deprecated.
Bug fixOGC Server
LMAP-3131
The GetFeature request handler TLcdWFSGetFeatureRequestHandler now supports multiple feature types
that use different coordinate reference systems.
Upgrade considerationOGC Server
LMAP-3116
The interface com.luciad.ogc.wfs.ILcdWFSFeatureType has been extended with a getter and setter
to configure a qualified feature name through a javax.xml.namespace.QName object.
This might require an update, if a custom implementation of ILcdWFSFeatureType is used.
8.2
8.2.09
ImprovementOGC Server
The EPSG codes 3785 and 4055 used by Google Earth and Microsoft Virtual Earth are now supported.
8.2
ImprovementOGC Server
LMAP-2830
A new factory method createModelProvider() has been introduced in ALcdOGCWFSCommandDispatcherFactory, which
is used to create an ILcdOGCModelProvider. This allows to create custom ILcdOGCModelProvider implementations
to load data at the server.
Bug fixOGC Server
LMAP-2848
The XML Schema reference in a response to a WFS 1.1.0 GetFeature request now refers
to a WFS 1.1.0 DescribeFeatureType request instead of a request for version 1.0.0.
Bug fixOGC Server
LMAP-2845
The XML Schema response to a WFS 1.1.0 DescribeFeatureType request now refers to the GML 3.1.1 XML schemas
instead of to the GML 2.1.2 XML schemas.
Upgrade considerationOGC Server
The interface com.luciad.ogc.common.ILcdKVPRequest, used by the WFS and WCS server to represent a key-value pair request,
has been extended with a new method getParameterNames(). It returns a list of all the parameters that are
specified in the request. Although unlikely, this change requires an update if there are
custom implementations of this interface.
Upgrade considerationOGC Server
LMAP-2723
To allow a WFS Server implementation to serve data without geometry, the WFS Server API no longer
enforces the use of ILcd2DBoundsIndexedModel when decoding models. The API is now compatible with regular
ILcdModel implementations, so that implementations like TLcdVectorModel can be used that do not require objects
to have a geometric extent.
To be able to support this, the return type of the following methods is now ILcdModel instead of
ILcd2DBoundsIndexedModel:
- ILcdOGCModelProvider#getModel,
- ILcdWFSFilteredModelFactory#createFilteredModel,
- TLcdWFSFilteredModelFactory#createFilteredModel.
This might require an update, if there are explicit dependencies on the previous return type.
8.1
8.1
ImprovementOGC Server
A new factory class TLcdWMSGXYViewFactory has been introduced, which is used to create and configure
views in the WMS to render requested maps. Custom extensions can be integrated in the WMS
by overriding the method createWMSGXYViewFactory(ServletConfig) in
ALcdOGCWMSCommandDispatcherFactory.
8.0
8.0.11
ImprovementOGC Server
New methods have been introduced in TLcdHttpServletRequestKVPRequestWrapper and
TLcdHttpServletResponseWrapper to give applications more access to HTTP request
and response headers.
8.0.06
Bug fixOGC Server
The handling of GetMap requests through HTTP XML POST has been made more robust
and corrected in some cases.
8.0.04
ImprovementOGC Server
Because the WMS Server uses TLcdConcurrentBuffer instead of TLcdBuffer as internal shared buffer since V7,
the buffer size configuration is no longer required. The configuration property 'shared.buffer.size.mb'
in WEB-INF/classes/settings.cfg is therefore no longer used and has been removed in the sample deployment
available in distrib/LuciadMapWMS_x.x.x.
ImprovementOGC Server
The WMS Server no longer explicitly depends on the Xerces XML parser, but now uses the
package javax.xml.* available in JRE 1.4 and later - the WMS Server requires JRE 1.4 or later,
see prerequisites. The sample build script available in build/wms therefore no longer integrate
the libraries xercesImpl.jar and xmlParserAPIs.jar in a new build.
8.0.02
ImprovementOGC Server
When using Tomcat as servlet container, verbose stacktraces could sometimes be observed in the server log files
containing
notifications of a org.apache.catalina.connector.ClientAbortException. This exception is thrown by Tomcat when
a servlet is trying to send a result to a client which already closed the connection. The WMS / WFS / WCS server used to handle
this exception as a regular IOException, by logging its stacktrace and sending a service exception report to the
client -
which fails in this case, resulting in a similar exception. This exception is now no longer propagated in the WCS
server;
instead, a short debug message is printed in the log files when it occurs.
8.0
ImprovementOGC Server
The WMS server developer guide has been extended with a new section covering various performance guidelines and tips
when running a LuciadMap WMS server.
ImprovementOGC Server
The WMS GIF encoder, TLcdGXYViewGIFEncoder, now automatically uses the ImageIO library to encode to GIF, when JDK
1.6 is used.
This results in a vast performance improvement, and also adds support for views that use transparency -
which was before not possible. For older JDK versions, the Acme GIF encoder and JAI library are still used.
ImprovementOGC Server
The WMS server sample now contains an implementation of ILcdWMSGetFeatureInfoEncoder, namely
samples.wms.server.WMSFeatureInfoAsTextEncoder,
to provide support for the optional WMS GetFeatureInfo request. To illustrate the use of GetFeatureInfo requests at
the client side,
the WMS client lightweight sample has been modified with GetFeatureInfo support.
7.0
7.0.09
Bug fixOGC Server
Invoking the getChildWMSLayerIndex(ALcdMWSLayer) method on a TLcdWMSLayer object without any child layers
resulted in a NullPointerException. This has been fixed: the value -1 is now returned in that case,
following the method description in the javadoc.
7.0.05
ImprovementOGC Server
The WMS 1.3.0 capabilities now contain the XML element 'BoundingBox' for a layer, describing its bounds in one of
the available
CRSs. This is in contrast with the already available element 'EX_GeographicBoundingBox', that always describes the
bounds of a layer
in WGS 84 coordinates.
ImprovementOGC Server
Support has been added for the optional FORMAT parameter in a GetCapabilities request.
Both the WMS 1.1.1 and 1.3.0 capabilities now mention two available output formats,
text/xml and application/vnd.ogc.wms_xml, which can be used in the FORMAT parameter.
If no FORMAT parameter is specified, the default format for the version of the capabilities is used:
application/vnd.ogc.wms_xml for WMS 1.1.1, text/xml for WMS 1.3.0.
ImprovementOGC Server
When a GetFeatureInfo request was received for an invalid layer, the returned service exception
report did not specify the 'LayerNotDefined' code.
7.0.01
Bug fixOGC Server
The class com.luciad.wms.server.viewencoder.TLcdGXYViewPNGEncoder, which is used by the WMS to encode images to PNG,
did not work under JRE 1.6.0 when the native codecLib ImageIO plugin was active.
7.0
ImprovementOGC Server
LuciadMap WFS now properly supports the WFS 1.1.0 capabilities format.
ImprovementOGC Server
Support has been added to handle multi-dimensional data in the WMS server,
as defined by Annex C of the OpenGIS OGC 06-042 Web Map Server Implementation Specification.
To define a dimension for a layer, the classes ALcdWMSDimension, TLcdWMSDimension and TLcdWMSDimensionExtent
have been introduced. ALcdWMSDimension and TLcdWMSDimension represent a dimensional parameter, while
TLcdWMSDimensionExtent is used to model the available values for a dimension. The classes ALcdWMSLayer
and TLcdWMSLayer have been extended with methods to configure these elements.
For convenience, the sample XML configuration format to configure the capabilities of a server has been
extended with support for dimensions. The decoders for this format,
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, both recognize the XML element 'Dimension' and its
contents.
The source name property of a layer (see getSourceName() in ALcdWMSLayer), is too limited to be used for a layer
with one
or more dimensions, since the corresponding data source depends not only on the layer name but also on the
dimensional
parameters supplied by the client. To be able to map an ALcdWMSLayer with one or more dimensional parameters on a
data source,
the abstract class ALcdMultiDimensionalModelProvider has been introduced. Users must implement this class and
register
it by overriding the method createModelProvider(ILcdModelDecoderFactory[]) in ALcdOGCWMSCommandDispatcherFactory, to
support multi-dimensional layers.
ImprovementOGC Server
The domain model for the WMS capabilities has been extended to include support for the elements MetadataURL,
DataURL and FeatureListURL that can be defined for a layer, and for the elements LegendURL, StylesheetURL and
StyleURL that
can be defined for a layer style. To model these elements, a new class TLcdWMSURL has been introduced.
The classes ALcdWMSLayer, TLcdWMSLayer, ALcdWMSLayerStyle and TLcdWMSLayerStyle have been extended with
methods to configure these elements. For consistency, the already supported element AuthorityURL for a layer
can now also be modeled using TLcdWMSURL in ALcdWMSLayer and TLcdWMSLayer.
ImprovementOGC Server
A new interface ILcdWMSOnlineResourceResolver has been introduced, which is used to dynamically resolve the paths to
online resources.
A default implementation is registered by default, but custom implementations can be used by overriding the method
createWMSOnlineResourceResolver(ServletConfig) in ALcdOGCWMSCommandDispatcherFactory.
ImprovementOGC Server
Two new methods have added to ALcdWMSLayer, which make it possible to retrieve the parent layer:
- setParentWMSLayer(ALcdWMSLayer): a protected method that can be called to register the parent layer.
The default implementation TLcdWMSLayer automatically invokes this method on the child layer when
addChildWMSLayer(ALcdWMSLayer) or removeChildWMSLayer(ALcdWMSLayer) is called.
- getParentWMSLayer(): a public method, allowing to retrieve the currently registered parent layer.
This functionality is particularly useful to retrieve the layer styles registered on parent layers, because the WMS
specification
defines that a layer inherits the styles of its parent.
ImprovementOGC Server
Support has been added for two new requests: GetLegendGraphic and DescribeLayer. The GetLegendGraphic request
provides a general mechanism
for acquiring legend symbols. The DescribeLayer request allows a client to obtain feature/coverage-type information
for a named layer, which
can be used to construct user-defined styles. Both requests are defined by the OpenGIS OGC 02-070 Styled Layer
Descriptor Implementation Specification,
and are considered optional for an SLD-enabled WMS.
To provide support for these requests in a WMS implementation, the factory methods
createWMSGetLegendGraphicEncoders(ServletConfig)
and createWMSDescribeLayerEncoders(ServletConfig) in ALcdOGCSLDWMSCommandDispatcherFactory must be implemented.
These methods should return respectively one or more ILcdWMSGetLegendGraphicRequestEncoder and
ILcdWMSDescribeLayerRequestEncoder
objects, which are responsible for sending a response to the client. Next, the available legend graphic and describe
layer formats must be
listed in the ALcdWMSCapabilities object created by the ILcdWMSCapabilitiesDecoder in
ALcdOGCSLDWMSCommandDispatcherFactory.
Because the OpenGIS OGC 02-070 Styled Layer Descriptor Implementation Specification defines a default XML format for
DescribeLayer responses,
an implementation of ILcdWMSGetLegendGraphicRequestEncoder, ALcdWMSDescribeLayerRequestEncoder, is also available.
This abstract class implements the methods defined in ILcdWMSGetLegendGraphicRequestEncoder, and adds some extra
abstract methods that
are needed to construct a correct DescribeLayer response. Encoders that want to use the default XML format should
extend from this abstract class.
Bug fixOGC Server
An issue has been solved in the view management performed by com.luciad.wms.server.TLcdOGCWMSCommandDispatcher,
which potentially could lead to a deadlock when handling GetMap/GetFeatureInfo requests, especially on high-loaded
servers.
When established, some incoming requests would never be handled, and ultimately, the server would stop responding
to GetMap/GetFeatureInfo requests.
Upgrade considerationOGC Server
ILcdWFSFeatureType has been extended to contain a list of TLcdWFSMetadataURLs.
This list was previously only included in TLcdWFSFeatureType, but is now
included in the interface as well and must therefore be added to all
implementations. The metadata URLs are not mandatory, however, so
implementations of the new methods may be empty if they are not needed.
Upgrade considerationOGC Server
The interfaces ILcdRemoteOWSModelDecoder and ILcdRemoteOWSModelProvider have been updated to
enable implementations to return an ILcdModel array instead of a single ILcdModel:
- ILcdRemoteOWSModelDecoder.decode(): the return type is now ILcdModel[] instead of ILcdModel
- ILcdRemoteOWSModelProvider.getModel(): the return type is now ILcdModel[] instead of ILcdModel
This is done to support Styled Layer Descriptors that combine multiple coverages (WCS) or feature types (WFS) into
one user-defined layer. Implementations can decode each coverage or feature type into a single ILcdModel.
This is especially needed when these coverages or feature types use different model references, since an ILcdModel
can only have one model reference.
The abstract class ALcdSLDWMSGXYLayerFactory has been adapted accordingly: the signature of the method
- abstract public ILcdGXYLayer createGXYLayer( ILcdModel, TLcdSLDUserLayer, TLcdSLDFeatureTypeStyle[] );
has changed into
- abstract public ILcdGXYLayer[] createGXYLayer( ILcdModel[], TLcdSLDUserLayer, TLcdSLDFeatureTypeStyle[]
);
to allow implementations to create an ILcdGXYLayer for each decoded ILcdModel that is part of a user-defined layer.
Upgrade considerationOGC Server
The interface ILcdWMSHttpServletRequestFileNameResolver has been removed, due to its limited practical relevance.
The two implementations TLcdWMSServiceExceptionDTDDefaultFileNameResolver and
TLcdWMSCapabilitiesDTDDefaultFileNameResolver
have been removed accordingly.
Four methods in TLcdOGCWMSCommandDispatcher that were used to set or retrieve an instance of
ILcdWMSHttpServletRequestFileNameResolver
to resolve the WMS 1.1.1 Capabilities DTD or Service Exception DTD have been removed also:
- ILcdWMSHttpServletRequestFileNameResolver getWMSCapabilitiesDTDFileNameResolver()
- setWMSCapabilitiesDTDFileNameResolver(ILcdWMSHttpServletRequestFileNameResolver)
- ILcdWMSHttpServletRequestFileNameResolver getWMSExceptionDTDFileNameResolver()
- setWMSExceptionDTDFileNameResolver(ILcdWMSHttpServletRequestFileNameResolver)
Upgrade considerationOGC Server
A new class com.luciad.wms.server.TLcdWMSRequestContext has been introduced that holds
information about a current request. A number of interfaces in the package
com.luciad.wms.server have been adapted to include this class as a parameter in its methods:
- ILcdRemoteOWSModelDecoder.canDecode(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
- ILcdRemoteOWSModelDecoder.decode(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
- ILcdRemoteOWSModelDecoderFactory.createModelDecoder(): replaced HttpServletRequest parameter with
TLcdWMSRequestContext parameter
- ILcdRemoteOWSModelProvider.getModel(): replaced HttpServletRequest parameter with TLcdWMSRequestContext
parameter
Existing implementations just need to update the signature of these methods and can choose whether
to use the additional parameter.
Because the information in TLcdWMSRequestContext can also be useful when encoding GetFeatureInfo responses,
a new interface ILcdWMSGetFeatureInfoRequestEncoder has been introduced. This interface is similar to
the existing ILcdWMSFeatureInfoRequestEncoder, except for the extra TLcdWMSRequestContext parameter that is added to
the encode() method.
Accordingly, a factory method createWMSGetFeatureInfoEncoders(ServletConfig) in ALcdOGCWMSCommandDispatcherFactory
and
a method addWMSGetFeatureInfoEncoder(ILcdWMSGetFeatureInfoRequestEncoder) in TLcdOGCWMSCommandDispatcher have been
added.
The existing interface ILcdWMSFeatureInfoRequestEncoder and associated methods are still fully functional.
Note that registered ILcdWMSGetFeatureInfoRequestEncoder objects have precedence above registered
ILcdWMSFeatureInfoRequestEncoder objects,
when they have the same content type.
6.2
6.2.21
Bug fixOGC Server
The encoding of a service exception report to an image instead of to the predefined XML format
could possibly lead to a NullPointerException.
6.2.17
ImprovementOGC Server
TLcdWFSFeatureType has been extended to contain a list of TLcdWFSMetadataURLs.
If present, these URLs are added to the feature type list in the capabilities
document of the WFS.
Bug fixOGC Server
The robustness of the WMS has been improved when the encoding of a GetMap or GetFeatureInfo result fails.
In such cases, a proper service exception report will be created and sent to the client.
6.2.13
ImprovementOGC Server
When using an SLD-enabled WMS (1.1.1 or 1.3.0), the capabilities that are sent to the client now mention the version
number of the supported
SLD specification in LuciadMap, which is 1.0. This information is added to the contents of the element
'UserDefinedSymbolization'.
Displaying this information in the capabilities is optional according to the WMS 1.1.1 specification.
6.2.12
ImprovementOGC Server
Support has been added for the layer attribute 'opaque'. This is a property defined by the WMS specification that
allows
to indicate that a layer represents an area-filling coverage. The following changes have been made to support this
property:
- ALcdWMSLayer has been extended with a method isOpaque() and TLcdWMSLayer has been extended with a method
setOpaque(Boolean).
The configured value is automatically taken into account while sending the capabilities to the client (see
below).
- The WMS server configuration decoders, com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, both recognize the XML attribute 'opaque="true|false"'
for the
XML element 'Layer'.
6.2.06
Bug fixOGC Server
The WFS now properly sets the content type (mime type) of its responses.
6.2
ImprovementOGC Server
To provide better support for dynamic WMS server implementations, a number of enhancements haven been implemented:
- A new interface com.luciad.wms.server.ILcdWMSCapabilitiesUpdater has been introduced which can be used
to implement an update strategy for the WMS server. This interface contains one method
update(HttpServletRequest),
which will be invoked for each incoming request. To register an implementation on the WMS, the new factory
method
createWMSCapabilitiesUpdater(ServletConfig, TLcdOGCWMSCommandDispatcher, ILcdWMSCapabilitiesDecoder)
in ALcdOGCWMSCommandDispatcherFactory must be implemented.
- A new factory method createModelProvider() has been introduced in ALcdOGCWMSCommandDispatcherFactory,
which returns
an ILcdModelProvider. In the past, an ILcdModelProvider was created internally and set on the command
dispatcher, which
made it more difficult to insert a custom ILcdModelProvider implementation.
- The WMS server sample has been extended with a sample implementation of ILcdWMSCapabilitiesUpdater.
- The implementation of TLcdOGCWMSCommandDispatcher has been improved in the context of a dynamic WMS:
- Extra measures have been taken to prevent any inconsistencies while updating the server at runtime.
- The getWMSCapabilities(HttpServletRequest) will now always return the same ALcdWMSCapabilities object
for the same HttpServletRequest object.
6.1
6.1.17
Bug fixOGC Server
The GML model and schema encoders used by the WFS now properly respect the
feature type name specified in ILcdWFSFeatureType.
6.1.15
ImprovementOGC Server
The WMS server developer guide has been extended with extra information about offering support for GetFeatureInfo
requests.
It now also includes an example of a ILcdWMSFeatureInfoRequestEncoder implementation.
6.1.12
ImprovementOGC Server
LMAP-1440
An interface ILcdWFSServiceMetaData has been introduced in the WFS package. By
creating an ILcdWFSServiceMetaData in the command dispatcher factory, WFS users
can customize the <Service> section of the WFS capabilities document.
ImprovementOGC Server
The WCS server now performs proper escaping of all user-specifiable values that appear
in the GetCapabilities and DescribeCoverage responses.
ImprovementOGC Server
The WFS now performs proper escaping of all user-specifiable values that appear
in the GetCapabilities response.
6.1.06
ImprovementOGC Server
The following methods have been introduced in com.luciad.wms.sld.xml.TLcdSLDStyledLayerDescriptorEncoder10:
- setPrefixMap(ILcdPrefixMap), getPrefixMap(): allows to control the mapping between the
fully qualified namespaces and their corresponding prefixes in the resulting XML document.
- setDefaultNamespace(String), getDefaultNamespace(): allows to set the default namespace
in the resulting XML document. This is the namespace for which no prefix will be used.
6.1
ImprovementOGC Server
A new sample is available, samples.wms.client.sld.MainApplet, that illustrates the use of an SLD-enabled
WMS server at the client side.
ImprovementOGC Server
The SLD-enabled WMS server now supports GetMap requests that use HTTP XML POST instead of HTTP GET.
These type of requests are described in the OGC 02-017r1 Web Map Service Implementation Specification,
Part 2: XML for Requests using HTTP POST. Note: servers that use the regular ALcdOGCWMSCommandDispatcherFactory
and TLcdOGCWMSCommandDispatcher do not support these types of requests, since SLD support is required to handle
them.
ImprovementOGC Server
The WMS server now contains support for OpenGIS Styled Layer Descriptors (SLD), as defined in the OGC 02-070
Styled Layer Descriptor Implementation Specification version 1.0. The following classes and packages are added:
- com.luciad.wms.server.ALcdOGCSLDWMSCommandDispatcherFactory: this abstract class is an extension of the
regular
ALcdOGCWMSCommandDispatcherFactory that adds support for Styled Layer Descriptors. This class must be
implemented by
the user to create an SLD capable WMS server. The class samples.wms.server.OGCWMSCommandDispatcherFactory in the
samples
illustrates an example implementation.
- com.luciad.wms.server.TLcdOGCSLDWMSCommandDispatcher: this class is an extension of the regular
TLcdOGCWMSCommandDispatcher that adds support for Styled Layer Descriptors. This class must be used to handle
WMS requests in an SLD capable WMS server. The class ALcdOGCSLDWMSCommandDispatcherFactory automatically
registers an object of TLcdOGCSLDWMSCommandDispatcher on the servlet to handle all incoming requests.
- com.luciad.wms.server.ALcdSLDWMSGXYLayerFactory: this abstract class is an implementation of
ILcdWMSGXYLayerFactory, that is used by the server to create ILcdGXYLayer instances for all ILcdModels,
with or without an SLD model. Implementations can be registered on the WMS server by implementing
the method ALcdOGCSLDWMSCommandDispatcherFactory.createSLDWMSGXYLayerFactories(). This method
replaces the previously used factory method createWMSGXYLayerFactories(), which is now declared final.
- com.luciad.wms.server.ILcdRemoteOWSModelDecoder, ILcdRemoteOWSModelDecoderFactory,
ILcdRemoteOWSModelProvider:
these interfaces are used in the WMS server to decode ILcdModel objects based on remote data (typically located
on a
remote WFS or WCS server). Through the method
ALcdOGCSLDWMSCommandDispatcherFactory.createRemoteOWSModelDecoderFactories(),
the user can register one or more ILcdRemoteOWSModelDecoderFactory objects on the WMS server. By default, this
method returns
null, as this is an optional feature according to the SLD specification..
- com.luciad.wms.sld.model: contains the domain model for Styled Layer Descriptors. This domain model
builts
upon the Feature Type Style domain model that is available in the package com.luciad.ogc.sld.model.
- com.luciad.wms.sld.xml: contains an XML decoder and encoder for Styled Layer Descriptors. Both the
decoder
and encoder respectively built upon the Feature Type Style decoder and encoder that are available in the package
com.luciad.ogc.sld.xml.
To inform a client about the SLD support of the WMS server, TLcdOGCSLDWMSCommandDispacher uses the XML capabilities
document that is sent
to the client after a GetCapabilities request:
- for version 1.1.1 and earlier, the XML capabilities document includes the XML element
UserDefinedSymbolization, which is
defined by the OpenGIS WMS 1.1.1 Capabilities DTD (see
http://schemas.opengis.net/wms/1.1.1/WMS_MS_Capabilities.dtd). This element
contains some attributes that indicate the SLD support.
- for version 1.3.0, the OpenGIS WMS 1.3.0 Capabilities XML Schema does not include an SLD related XML
element. Therefore,
a custom LuciadMap WMS 1.3.0 Capabilities XML Schema is available (see
build/wms/resources/schemas/wms/1.3.0/sld_capabilities_1_3_0.xsd),
which extends the OpenGIS WMS 1.3.0 Capabilities Schema (see
http://schemas.opengis.net/wms/1.3.0/capabilities_1_3_0.xsd).
This extension adds the element UserDefinedSymbolization to the default schema, which was present in the OpenGIS
WMS 1.1.1 Capabilities DTD.
ImprovementOGC Server
The WFS has been extended to support most of the WFS 1.1 specification:
- GetFeature requests support the "resultType" parameter, allowing
clients to retrieve the number of features matched by a request without
having to retrieve the actual corresponding features.
- Features can be retrieved in both GML2 and GML3 formats.
- The OGC Filter 1.1 specification is supported.
Please refer to the "Upgrade considerations" section for more information on
how these changes may affect your application.
ImprovementOGC Server
Section 5.2.1 "Description of the default configuration format" in the WMS server developer guide
has been extended with a description of how to configure the possible output formats for a
GetFeatureInfo request.
ImprovementOGC Server
The class com.luciad.wms.server.viewencoder.TLcdGXYViewPNGEncoder, which is used by the WMS to encode images to PNG,
has been updated with support for the native codecLib plugin for ImageIO. This plugin delivers a higher performance
than the default JAI PNG encoder, which was used in the past. It also allows to control the compression to be used,
which makes it possible to determine a trade-off between compression and speed; in contrast, the default JAI PNG
encoder always uses
best compression. To adjust the compression, the following two methods have been introduced: setCompressionLevel()
and getCompressionLevel().
The codecLib plugin requires the installation of some extra libraries, which are available in the LuciadMap_xxx/lib
directory
in the LuciadMap WMS distribution. The following libraries are needed:
- clibwrapper_jiio.jar: JAR file containing core JAI Image I/O class files
- jai_imageio.jar: the codecLib JNI interfaces
- the codecLib JNI libraries for your platform. The available platforms are Win32
(native/win32/clib_jiio*.dll),
Linux i586 (native/linux/libclib_jiio.so), Linux AMD64 (native/linux64/libclib_jiio.so) and Solaris Sparc V9
(native/solaris_sparc/libclib_jiio.so, native/solaris_sparc/sparcv9+vis/libclib_jiio_vis.so or
native/solaris_sparc/sparcv9+vis2/libclib_jiio_vis2.so).
If one of these libraries is not found, the default PNG encoder in JAI will be used again instead of the ImageIO
codecLib plugin.
ImprovementOGC Server
WCS GetCapabilities responses now also contain keywords for each coverage offering, if there are any defined.
Upgrade considerationOGC Server
ILcdWFSFilteredModelFactory:
- The signature of createFilteredModel() was changed to include an
ILcdWFSGetFeatureConstraints argument. ILcdWFSGetFeatureConstraints
contains all parameters that can restrict the result of a GetFeature
request, including a filter.
- Filters are passed in as a TLcdOGCFilter object (contained in the
ILcdWFSGetFeatureConstraints object) rather than as a JDOM element.
Analogously, getFilterCapabilities() must return a
TLcdOGCFilterCapabilities rather than a JDOM element.
Upgrade considerationOGC Server
ILcdWFSClientModelEncoderFactory:
- The method createModelSchemaEncoder() has been added. This method
shall return an ILcdWFSModelSchemaEncoder, which is responsible for
encoding the result of a DescribeFeatureType request. The class
TLcdWFSClientModelEncoderFactory can produce encoders for standard GML
application schemas.
- Both createModelSchemaEncoder() and createModelEncoder() have an
argument of type ILcdWFSRequestContext, which contains context
information about the request currently being handled.
Upgrade considerationOGC Server
ALcdOGCWFSCommandDispatcherFactory:
- The registerFilterFactories() has been removed, as it is no longer
applicable. Applications that require customized filtering behaviour may
override the createFilteredModelFactory() method to return an extension
of the new class TLcdWFSFilteredModelFactory. This class provides a hook
similar to registerFilterFactories() to allow filtering customization.
Please consult the reference documentation for details.
- The class TLcdWFSClientModelEncoderFactory was made available as
the default implementation of ILcdWFSClientModelEncoderFactory. This
factory supports GML2 and GML3 output formats, and may be extended by
applications that wish to add additional output formats. GML output will
not be available unless the model encoder factory advertises it.
6.0
6.0.08
ImprovementOGC Server
A memory leak has been closed in the handling of a feature request that contained a filter.
6.0.06
ImprovementOGC Server
The capabilities decoders for the default XML server configuration format,
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder and
samples.wms.server.config.xml.WMSCapabilitiesXMLDecoder, now also accept the 'PaintStyle' element
for layers with data sources other than ESRI Shape (.shp) or Oracle Spatial Object-Relational (.ora).
Bug fixOGC Server
When a layer style was sent that did not exist for a layer, the WMS returned
an incorrect service exception report: the name of the wrong layer style was not
mentioned. The service exception report now clearly describes that the
requested layer style does not exist for the requested layer.
6.0.02
ImprovementOGC Server
The schema documents that are present in the servlet sample have been updated to the
latest versions published by OGC (17 May 2006).
6.0
ImprovementOGC Server
ILcdWFSFeatureType and its implementation TLcdWFSFeatureType have been extended
with methods to define keywords, which are included in the FeatureTypeList
section of the WFS capabilities if available.
ImprovementOGC Server
To ease the deployment of a WFS server, a sample Ant build script has been created:
build/wfs/deploy_wfs.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
To ease the deployment of a WCS server, a sample Ant build script has been created:
build/wcs/deploy_wcs.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
To ease the deployment of a WMS server, a sample Ant build script has been created:
build/wms/deploy_wms.xml. A batch script for Windows and a shell script for Unix are available
next to this file, to run the build script. As Ant and Proguard releases are needed to run
the script, they are also available in the release, respectively in build/ant and build/proguard.
The build script can be used to generate a deployment server package (with obfuscated code and a deployment
license) or a development server package (with a development license), which can placed
into a servlet container (e.g. Tomcat). The script contains also tasks to create WAR files instead
of packages.
ImprovementOGC Server
The WMS server sample package has been extended with two new packages:
- samples.wms.server.config.editor: this package contains a new sample representing
a graphical configuration editor for the server capabilities.
- samples.wms.server.config.xml: this package contains the source of a decoder for
the server capabilities. This decoder uses the new LuciadMap decoder framework for XML
data, available in the package com.luciad.format.xml in LuciadMap. The decoder is
used by the samples.wms.server.config.editor sample to load server capabilities files.
The purpose of this code is to enable WMS server developers to extend the default
XML server configuration format without writing a whole new decoder. As in the past, one
can use a custom server capabilities decoder in the server by extending the method
createWMSCapabilitiesDecoder() in com.luciad.wms.server.ALcdOGCWMSCommandDispatcherFactory.
ImprovementOGC Server
A method createWCSCommandDispatcherInstance() has been added to
ALcdOGCWCSCommandDispatcherFactory. This method is used to instantiate a
TLcdWCSCommandDispatcher. By overriding this method, users can plug in their
own extensions of TLcdWCSCommandDispatcher.
ImprovementOGC Server
A method createWFSCommandDispatcherInstance() has been added to
ALcdOGCWFSCommandDispatcherFactory. This method is used to instantiate a
TLcdWFSCommandDispatcher. By overriding this method, users can plug in their
own extensions of TLcdWFSCommandDispatcher. Also note that this class was final
prior to version 6.0; this is now no longer the case.
ImprovementOGC Server
WCS DescribeCoverage responses now also contain the bounds of the coverage in its
native CRS, in addition to the already supplied WGS84 bounds.
ImprovementOGC Server
The GeoTIFF encoder used in the WCS now supports encoding of non-georeferenced
images. If the model being encoded does not have an ILcdGeoReference, the
resulting image will be a plain TIFF, without any GeoTIFF-specific tags.
ImprovementOGC Server
A new class com.luciad.ogc.common.log.TLcdOGCLogFilter has been added which can be used to log
servlet requests for licensing purposes on behalf of Luciad.
ImprovementOGC Server
The WMS server now supports the UPDATESEQUENCE parameter:
- The root element of the capabilities that are sent to the client contains
an attribute "updateSequence", indicating its current version.
- The optional UPDATESEQUENCE parameter in a GetCapabilities request will be decoded
and compared with the current update sequence value of the capabilities. The response
follows the OGC Web Map Service specification.
Through the API, the update sequence value of the capabilities can be retrieved/updated: the
class com.luciad.wms.server.model.ALcdWMSCapabilities has been extended with a method
getUpdateSequence(), and its implementation com.luciad.wms.server.model.TLcdWMSCapabilities
with a method setUpdateSequence(). The default configuration file decoder
com.luciad.wms.server.config.xml.TLcdWMSCapabilitiesXMLDecoder sets an initial update sequence value
when it has created a new ALcdWMSCapabilities object. When the capabilities are updated through
the API (e.g. adding a new layer), the update sequence value should be updated accordingly,
to indicate a new capabilities version.
ImprovementOGC Server
A GetFeatureInfo request for a particular layer will now also be delegated to its child layers.
Bug fixOGC Server
Fixed an issue in TLcdOGCFilterDecoder that caused incorrect decoding of
the upper boundary value of PropertyIsBetween elements.
5.3
5.3.17
Bug fixOGC Server
The class com.luciad.wms.server.TLcdOGCWMSCommandDispatcher used the ISO-8859-1 character encoding to send
XML data (e.g. the capabilities) to the client instead of UTF-8, while the XML declaration tag
in the data itself always specified the UTF-8 encoding. This caused problems when special
characters were used, like the degree symbol. UTF-8 is now used as default character encoding.
5.3.16
Bug fixOGC Server
The class com.luciad.wms.server.TLcdOGCWMSCommandDispatcher ignored the optional TRANSPARENT parameter
in a GetFeatureInfo request, making it impossible to retrieve an image with a transparent background using
this type of request. This issue has been fixed.
5.3.09
Bug fixOGC Server
WCS DescribeCoverage requests for an ILcdCoverageOffering with null bounds now
produce a descriptive error message rather than an exception.
Bug fixOGC Server
Closing the OutputStream object in a custom implementation of ILcdModelEncoder resulted in a
duplication of the result. This bug has been fixed.
5.2
5.2
ImprovementOGC Server
A new interface ILcdWFSFilteredModelFactory has been introduced.
ALcdOGCWFSCommandDispatcherFactory has been extended accordingly, with a new
createFilteredModelFactory() method. This method can be overridden by
applications that wish to extend or reimplement the filtering behaviour of
the WFS. The default implementation performs filtering exactly as it was done
in previous LuciadMap versions. Please refer to the API documentation for
further details.
ImprovementOGC Server
The WFS now supports the MAXFEATURES parameter, allowing clients to
restrict the number of features returned by a query.
Bug fixOGC Server
The WMS now defers the sending of GetMap and GetFeatureInfo results until the features
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Bug fixOGC Server
The WFS now defers the sending of GetFeature results until the features
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Bug fixOGC Server
The WCS now defers the sending of GetCoverage results until the coverages
have been successfully encoded. This ensures that partially encoded data
does not get sent to the client, only to be followed by a service exception
report.
Upgrade considerationOGC Server
When doing a GetFeature request, earlier versions of the WFS looked for any
<PropertyName> elements in the "wfs" namespace. The WFS specification,
however, places these elements in the "ogc" namespace. The WFS has been
modified to conform with the specification, which means that applications
may need to be updated accordingly.
5.0
5.0.06
Bug fixOGC Server
The WMS 1.3.0 service exception reports are now always well-formed XML.
Bug fixOGC Server
When using a spatial filter with a multiple geometries only the first geometry was taken into account.
5.0.03
ImprovementOGC Server
The API has been slightly relaxed to allow the implementation of custom WFS
requests through the API:
- The "final" modifier has been removed from the createCommandDispatcher()
method of ALcdOGCWFSCommandDispatcherFactory;
- The registerRequestHandler() method of ALcdOGCCommandDispatcher has
been promoted from protected to public.
This enables users to extend the WFS by installing their own implementations of
the ILcdRequestHandler interface.
ImprovementOGC Server
The API has been slightly relaxed to allow the implementation of custom WCS
requests through the API:
- The "final" modifier has been removed from the createCommandDispatcher()
method of ALcdOGCWCSCommandDispatcherFactory;
- The registerRequestHandler() method of ALcdOGCCommandDispatcher has
been promoted from protected to public.
This enables users to extend the WCS by installing their own implementations of
the ILcdRequestHandler interface.
Bug fixOGC Server
When performing a GetFeature request in XML format, the "outputFormat" attribute is now no longer ignored.
5.0
ImprovementOGC Server
If a request specifies a bounding box that does not lie completely inside
the bounds of the selected coverage, the WCS server will now return only the area for which the coverage is defined. Prior
to version 4.4, the WCS would return an image that contained blank areas where the coverage was undefined.
4.3
4.3.13
ImprovementOGC Server
When creating objects to be inserted or updated in a model, the WFS now
uses the model descriptor (ILcdFeaturedDescriptor) to determine attribute types, rather than looking for the subset
of types that can be identified in an XML schema.
4.3.09
ImprovementOGC Server
Added WCS server optimizations that will lead to significant speedups when requesting
coverages from a tiled or multilevel raster source.
4.3.07
ImprovementOGC Server
A bug fix within LuciadMap core requires an upgrade of
lcd_epsg_resources.jar.
4.3
ImprovementOGC Server
The batik libraries have been updated to batik 1.5.1 release.
This also removes a prior incompatibility with the DAFIF and ARINC optional modules.
ImprovementOGC Server
Within the file web.xml a few initialization properties have changed.
- srs.epsg.cfg has become crs.epsg.cfg
- srs.auto.cfg has become crs.auto.cfg
- crs.auto2.cfg has been added for the additional AUTO2 namespace of WMS 1.3.0
ImprovementOGC Server
The schema file structure has changed to include the additional required
schema files.
ImprovementOGC Server
Debug output from the server has been improved to help diagnose failed
transactions.
ImprovementOGC Server
The server supports WMS 1.3.0 requests.
4.2
4.2.14
ImprovementOGC Server
The WCS server now supports 16 bit paletted raster models as input (DTEDs are a
typical example). The color palette, however, will be lost when requesting coverages from such models, and a 16 bit
gray raster will be returned.
4.2.08
ImprovementOGC Server
The server accepts requests with WMTVER as version parameter.
4.2.03
ImprovementOGC Server
The WMS server passes all compliancy tests for WMS 1.1.1.
4.2.02
ImprovementOGC Server
com.luciad.wms.server.TLcdOGCWMSCommandDispatcher can set up views
capable of different scale factor along x-axis and y-axis.
ImprovementOGC Server
com.luciad.wms.server.TLcdGXYViewPool can construct views
able of setting different scale factor along x-axis and y-axis.
4.2
ImprovementOGC Server
Clients may request the WMS an image with a transparent background even
if the
map format they request does not support this. The WMS is then supposed to
return an image with the background pixels set to value of BGCOLOR.
A test has been added for formats that do not support a transparent background, ie, JPEG.
Bug fixOGC Server
Clients may request the WMS an image with a transparent background even if the
map format they request does not support this. The WMS is then supposed to
return an image with the background pixels set to value of BGCOLOR.
A test has been added for formats that do not support a transparent background, ie, JPEG.