2024.0.07

ImprovementLuciadFusion

LF-2560
Improved the robustness when retrieving corrupt tiles from Fusion tile repositories (e.g. preprocessed point clouds). The new behavior logs an error and reports the tile as unavailable.

ImprovementLuciadFusion

LF-2560
Improved the robustness when writing to Fusion tile repositories (e.g. when preprocessing point clouds) on unreliable storage. The new behavior performs multiple write attempts.

ImprovementLuciadFusion

LF-2611
The TLfnEventSourceRequest of events published by LuciadFusion now includes the remote address of the client that made the request. The address can be obtained by calling the getRemoteAddress method on the TLfnEventSourceRequest object. Note that this address can be the address of a proxy server if a proxy is put in front of LuciadFusion.

Bug fixLuciadFusion

LCD-13445
TLcdBingMapsModelDecoder: resolved an issue where unexpected parameters in the Bing Maps template URL could trigger a parse exception.

Bug fixLuciadFusion

LF-2633
Fixed an issue that caused supporting files to no longer be associated with a data after the custom properties on that data were changed.

Bug fixLuciadFusion

LCD-13533
Fixed an SLD icon rendering issue that prevented the use of an SLD size larger than 500 meters or feet for pixel-based icons.

Bug fixInfrastructure Standards

LCD-13501
Fixed an issue where the TLcdIFCModelDecoder showed wrong material information in specific use cases.

2024.0

2024.0.06

Bug fixLuciadFusion

LCD-13525
Since version 2024.0, the WFS server could return exception reports for valid POST (XML) requests.

2024.0.05

ImprovementInfrastructure Standards

LCD-13506
Clarified limitation of the TLcdRevitModelDecoder with respect to textured materials.

Bug fixLuciadFusion

LCD-13519
The default WMS and WMTS GetLegendGraphic support for layers styled with an SLD did not take into account the color of a polygon symbolizer if it was defined inside a mark.

Bug fixLuciadFusion

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 fixLuciadFusion

LCD-13496
TLcdGeoPackageModelDecoder, TLcdLVDBModelDecoder and TLcdSpatiaLiteModelDecoder now are able to correctly resolve the srs_id of data when the name of the table or column containing the spatial data contains non ASCII characters.

Bug fixLuciadFusion

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.

Bug fixDefense Standards

LCD-13500
TLcdNITFModelDecoder can now process image blocks with differing width and height, meaning they no longer need to be square.

2024.0.04

ImprovementLuciadFusion

LCD-13270
A new article How to load multi-dimensional WM(T)S layers has been added to explain how to access the available dimensions for a WM(T)S layer, supply dimension values in requests and visualize the resulting data in a 2D and 3D view.

ImprovementLuciadFusion

LF-2622
The performance of queries that use the lfn.creationTime or lfn.updateTime properties has been improved.

ImprovementAdvanced Raster Services

LCD-13456
The TLcdGDALModelDecoder can now handle data in which the image is rotated relative to the axes of the model reference. In this case a fitted (also called "derived") projected ILcdGridReference will be returned as a model reference.

ImprovementAdvanced Raster Services

LCD-13455
The TLcdGDALModelDecoder will now decode a ILcdModelTreeNode if the data contains subdatasets.

ImprovementInfrastructure Standards

LCD-13486
Fixed an issue where the line weight of shapes from DWG datasets was not displayed correctly.

Bug fixLuciadFusion

LF-2626
Fixed an issue in LuciadFusion Studio that caused an error when adding or crawling a file that contained multiple data, and a style file with the same name was located next to it.

Bug fixLuciadFusion

LCD-13477
Editing of geometries visualized by a PointSymbolizer can now be disabled. This capability can be activated on a TLcdSLDPointSymbolizer by configuring an SLD vendor option with name allowEditing and value false.

Bug fixLuciadFusion

LCD-13476, LCD-13470
Changes made in the scope of LCD-13438 have been reverted. An alternative solution is provided through LCD-13477.

Bug fixLuciadFusion

LCD-13424
It is now possible to query ILcdModel instances created by the TLcdGeoPackageModelDecoder on fields that start with a number.

Bug fixLuciadFusion

LCD-12862
If the new semantics given to a TLcdSemanticsOp contain nodata values but the original semantics did not, they will now be taken into account in further processing. This means pixel values matching the nodata value do not participate in any further operations. These pixels will not be displayed when visualized on screen.

Bug fixLuciadFusion

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.

Bug fixReal-time Engine

LCD-13487
TLspContinuousLabelingAlgorithm didn't handle edited labels correctly anymore. Such labels were, for example, not correctly moved when colliding with one of the view's edges, or with another label. This was a regression that was introduced in the first LuciadLightspeed 2022.1 release.

Bug fixDefense Symbology

LCD-11416
Resolved an issue where the icon of the "Unspecified Mine" symbol was incorrect for MIL-STD-2525d, APP-6C and APP-6D

Upgrade considerationLuciadFusion

LCD-13414

Fixed a potential deadlock when modifying the ILcdCollection that is returned by ILspInteractivePaintableLayer#getObjectsWithPaintState, while holding a write lock on that collection. To fix this, ILcdCollection (and by extension ILcdList) now have additional methods that allow specifying an ILcdFireEventMode when performing modifications. By using the ILcdFireEventMode.FIRE_LATER event mode, collection change events are fired after the write lock has been released.

We recommend scanning your codebase for any custom usages of ILspInteractivePaintableLayer#getObjectsWithPaintState and making sure that any modifications to this collection happen within a write lock, while the change events are only fired after that write lock has been released. An example code snippet on how to do this can be found in the ILspInteractivePaintableLayer#getObjectsWithPaintState method javadoc.

2024.0.03

New featureInfrastructure Standards

LCD-13337
It is now possible to define an XML document next to a BIM dataset, to define an OGC Filter that will be applied on the data before it is converted to OGC 3D Tiles or exposed as a features dataset.
Please refer to the Filtering BIM data article for more information.

ImprovementLuciadFusion

LCD-13396
The implementations of com.luciad.format.dafif.TLcdDAFIFModelDecoder#canDecodeSource and com.luciad.format.coverage.TLcdCoverageModelDecoder#canDecodeSource have been optimized. This also improves crawling performance of data inside LuciadFusion, which is now up to 24% faster.

ImprovementLuciadFusion

LF-2592
LuciadFusion Studio can now correctly parse the model reference and bounds of HSPC datasets that define their reference as a "projection-wkt" property in the hspcInfo.json file.

ImprovementLuciadFusion

LCD-12583
The existing article Using LuciadLightspeed in a Maven repository has been extended with a section about using BOM files.

ImprovementLuciadFusion

LCD-10417
The TLcdGeoPackageModelDecoder and TLcdGeoPackageModelEncoder now have support for the following geometry types:
MULTICURVE
MULTISURFACE
CURVEPOLYGON
COMPOUNDCURVE

ImprovementLuciadFusion

LF-2598
Viewing a File Server endpoint URL in a browser now displays the LuciadFusion favicon.

ImprovementLuciadFusion

LF-2505
The preview of a GLB file in LuciadFusion Studio now shows the bounds if there is an external model reference file next to the GLB dataset.

ImprovementLuciadFusion

LCD-13464
Improved support for OSGB datasets using an OSG StateSet with a ModeList.

ImprovementLuciadFusion

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.

ImprovementDefense Symbology

LCD-3155
Improved scaling support for military icon symbols. The icons now don't become blurry when scaling the icons using TLspIconStyle.

ImprovementInfrastructure Standards

LCD-13408
TLcd3DTilesProcessorBuilder: Now uses all registered ILcdModelReferenceDecoder instances when searching for external model reference files.

Bug fixLuciadFusion

LCD-13433
Fixed an issue in the Maven setup, which depended on a library that was not part of the local repository.

Bug fixLuciadFusion

LF-2617
Fixed an issue that prevented the TLfnJobQueuedEvent from being published when a crawl job was queued as a result of a new data root being created.

Bug fixLuciadFusion

LCD-13466
LuciadFusion can now parse ILcdMultiDimensional model dimensions that have a TLcdISO19103DistanceMeasure as measure.

Bug fixLuciadFusion

LCD-13347
The com.luciad.sqlite.cacheMode system property allows the user to provide the cache mode used by sqlite driver. Possible values are private and shared, with private being the default value.

Bug fixLuciadFusion

LF-2590
Fixed an issue where LuciadFusion could not be deployed to Tomcat due to duplicate tomcat-embed-el library.

Bug fixLuciadFusion

LCD-13474
TLcdEPSGReferenceParser parsed the TOWGS84 rotation incorrectly for some EPSG codes. Coordinate references using the following datums are affected:
  • IG05/12 Intermediate Datum (EPSG:1144)
  • World Geodetic System 1984 (G730) (EPSG:1152)
  • World Geodetic System 1984 (Transit) (EPSG:1166)
  • CR-SIRGAS (EPSG:1225)
  • Sistem Referensi Geospasial Indonesia 2013 (EPSG:1293)
  • International Terrestrial Reference Frame 1992 (EPSG:6651)

Bug fixLuciadFusion

LCD-13351
TLcdSphereUtil#closestPointOnGeodesic and TLcdSphereUtil#closestDistanceToGeodesic didn't always produce correct results.

Bug fixLuciadFusion

LCD-11876
Fixed an accuracy issue in TLcdGeoTIFFModelDecoder and TLcdMIFModelDecoder for data that makes use of the "Amersfoort / RD New" reference (EPSG:28992).

Bug fixLuciadFusion

LCD-10789
TLcdLambert1972BelgiumGridReference now aligns more closely to the definition of EPSG:31300 in the EPSG database. This improves the precision of this reference by a few millimeters.

Bug fixLuciadFusion

LCD-10790
Transformations to/from EPSG:31370 are now more precise. TLcdWKTReferenceParser and TLcdEPSGReferenceParser now don't return an instance of TLcdLambert1972BelgiumGridReference anymore because it deviates from the definition of EPSG:31370.

Bug fixLuciadFusion

LF-2186, LF-2607
The preprocessing jobs that are created to convert point cloud datasets into OGC 3D Tiles services can now be properly stopped and restarted. Previously, restarting a paused job that converted data into OGC 3D Tiles could result in the job disappearing from the jobs list in the Studio web application. In some cases this also results in two jobs pre-processing the same data.

Bug fixLuciadFusion

LF-2616
Deleting a style using the REST API will now result in a TLfnStyleDeletedEvent being published. This was previously not the case.

Bug fixLuciadFusion

LCD-13448
TLcdGeorefUtil: fixed a rounding error that could occur when parsing a GEOREF coordinate.

Bug fixLuciadFusion

LCD-13438
Editing of geometries visualized by a PointSymbolizer can only be enabled when the geometry is an ILcdPoint. This avoids unwanted behavior when editing is enabled in combination with an SLD style containing multiple symbolizers.

Bug fixLuciadFusion

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 fixLuciadFusion

LCD-13427
TLcdCartesian#orientation2D no longer throws an exception when passing an empty point list. This also improves the robustness of the TLcdGeoJsonModelEncoder.

Bug fixLuciadFusion

LCD-13407
The XML encoders can now encode xsd:anyType elements with a built-in XML data type that is specified using xsi:type.

Bug fixLuciadFusion

LF-2595
Fixed an issue that could cause Lucene errors to be logged when LuciadFusion shuts down.

Bug fixLuciadFusion

LF-2567
Fixed an issue with the REST API GET api/data/filter endpoint that resulted in too many parameter errors reported by the database.

Bug fixLuciadFusion

LF-2200
The evaluation of an OGC IsLike operator on a database model has been made more robust against the use of special characters.

Bug fixLuciadFusion

LCD-10813
The TLcdGeoPackageModelDecoder now correctly handles the CIRCULARSTRING geometry type as a collection of zero or more continuous circular arc segments and the TLcdGeoPackageModelEncoder is able to encode a ILcdCompositeCurve containing multiple ILcdCircularArcBy3Points instances to CIRCULARSTRING.

Bug fixLuciadFusion

LCD-13460
Fixed an SLD GXY view issue that triggered errors when an empty SLD Point, Line and/or Polygon symbolizer was encountered. Aligned with the Lightspeed view behavior, such symbolizers will no longer cause and error but result in an empty visualization.

Bug fixLuciadFusion

LF-2620
Updated the value of the fusion.hspc.cache.maxAge property to 30 days, which corresponds to the value mentioned in the documentation.

Bug fixLuciadFusion

LCD-13449
Fixed a possible ArrayIndexOutOfBoundsException when accessing DTED data through the ILcdRaster API. This could occur when using the TLcdDTEDDirectoryModelDecoder with lazy DTED tile loading and when the DTED file deviates from the DTED specification.

Bug fixLuciadFusion

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.

Bug fixLuciadFusion

LCD-6862
TLcdTABRasterModelDecoder could throw a RuntimeException instead of an IOException when decoding a TAB for raster data not supported by JAI. Now it throws an IOException with a more clear message.

Bug fixLuciadFusion

LCD-12749
TLcdBandColorSemanticsBuilder ignored the specified no data value when building from a color model.

Bug fixLuciadFusion

LCD-13377
Fixed an issue where some LIDAR data was painted with inverse colors.

Bug fixLuciadFusion

LF-2620

Updated the value of the cache.maxAge properties to 30 days, which corresponds to the value mentioned in the documentation.

The following caching properties have been updated:

  • fusion.ogctilesservice.cache.maxAge
  • fusion.panoramics.cache.maxAge
  • fusion.studio.webapp.cache.maxAge

Bug fixLuciadFusion

LCD-13429, LCD-13432
The WMTS model decoder now skips tile matrix sets with an unknown geographic reference instead of throwing an UnsupportedOperationException.

Bug fixLuciadFusion

LCD-13431
The WMTS model decoder used an incorrect geographic reference when creating a model for a WMTS layer backed by a GoogleCRS84Quad tile matrix set that used a reference with a lat/lon axis order. This prevented the layer from being visualized on the map.

Bug fixLuciadFusion

LCD-13379
TLcdOGC3DTilesModelDecoder: fixed an issue when opening Luciad Point Cloud datasets by passing a file URL.

Bug fixLuciadFusion

LCD-13413
Fixed an issue where resource jar files that don't contain any Java classes (e.g. lcd_epsg_resources.jar) could not be loaded in an OSGi environment.

Bug fixDatabase Connectors

LCD-13280
TLcdOracleSpatialModelDecoder no longer uses the SDO_COLUMN_NAME column of the USER_SDO_INDEX_METADATA view to determine the dimension of the spatial index, because this column is not always present.

Bug fixAviation Standards

LCD-13435
An AIXM 5.1 vertical structure feature with an empty vertical extent value triggered a NullPointerException when it was visualized in a Lightspeed view.

Bug fixDefense Symbology

LCD-13411
Resolved the following issues with the depiction of the MIL-STD-2525b symbol "Dummy Minefield - Dynamic" (2.X.2.3.7).
  • The outline of the area is now drawn with a solid stroke instead of a dashed stroke
  • The hostile indicator ("ENY") is now rendered in the outline stroke, when the symbol's affiliation is set to 'Hostile'

Bug fixDefense Symbology

LCD-13394
Resolved an issue when displaying "Axis of Advance - Airborne" symbols contained in an NVG arrow element, where the "crossover" point would be located at the tail of the arrow instead of at the tip of the arrow.

Bug fixDefense Symbology

LCD-13412
Resolved an issue with the MIL-STD-2525c icon symbol 'Air Control - Tanking' (2.X.2.1.1.7.4). This symbol's icons was depicted with the letter 'T' inside the vertical lines instead of the letter 'K'.

Bug fixInfrastructure Standards

LF-2520
TLcd3DTilesProcessorBuilder: fixed an issue where TIFF textures could end up missing in the output.

Bug fixInfrastructure Standards

LCD-13457
TLcd3DTilesProcessorBuilder: fixed a possible crash issue when handling textures with indexed colors.

Bug fixInfrastructure Standards

LCD-13352
Changed the width of TEXT and MTEXT objects to be narrower. Before, text would often be too wide. Now, the width matches that of CAD programs more closely.

Bug fixInfrastructure Standards

LCD-13472
Fixed an issue where the TLcdIFCModelDecoder did not revert the direction of a trimmed IfcLine or IfcPolyline when necessary.

Bug fixInfrastructure Standards

LCD-13471
The TLcdIFCModelDecoder now ignores elements with an IfcGridPlacment. A warning is logged when such elements are encountered.

Bug fixInfrastructure Standards

LCD-13298
The TLcdCompositeModelDecoder, when used in combination with a TLcdIFCModelDecoder, wasn't able to decode the IFC features datasource returned by the discoverDataSources method.

Bug fixMaritime Standards

LCD-13463
Fixed an issue in internal bounds handling: a ClassCastException could happen when cloning a cell model bounds.

Upgrade considerationWeather & Environment Standards

LCD-13437
The version of the thredds library was increased to 4.6.6.lcd-18. This fixes an issue with using the pom file of this library.

Upgrade considerationInfrastructure Standards

LCD-13400
The myVRDatakitConverter library has been upgraded to version 2024.03.73679. This library is used by the TLcdRevitModelDecoder. This upgrade brings the following new features and enhancements:
  • Adds support for Revit 2025
  • Fixes a decoding crash for some Revit files
  • Contains several improvements to the generated Revit metadata

2024.0

New featureLuciadFusion

LuciadFusion Studio now supports the Autodesk Revit format.

Adding or crawling a Revit file will result in two data entries: one for the geometry data and one for the features data. The geometry data can be published in an OGC 3D Tiles service. It will be pre-processed into OGC 3D Tiles before the service is started. The features data can be published in a WFS service.

The article Serving BIM data from LuciadFusion Studio explains in more detail how you can use Revit data.

New featureLuciadFusion

You can now use OGC 3D Tiles 1.1 tilesets in a LuciadFusion OGC 3D Tiles service. These tilesets can only be served as-is. No re-processing is available for version 1.1.

New featureLuciadFusion

The WCS service in LuciadFusion Studio now supports WCS version 2.0.1.

New featureLuciadFusion

The WCS server in the OGC Web Server Suite now supports WCS version 2.0.1.

New featureLuciadFusion

The Spring Boot dependencies of LuciadFusion have been upgraded from version 2.7 to version 3.2. This newer version brings numerous new features and fixes. It's advisable to read through the release notes of every version to know what is new, what has changed and what has been deprecated.

Check out our LuciadFusion troubleshooting guide for a list of major changes caused by the Spring Boot upgrade.

New featureLuciadFusion

TLcdMBTilesModelDecoder now also supports MBTiles services, next to files. To decode an MBTiles service you need to provide the TileJSON endpoint as source. An MBTiles service can for example be set up with LuciadFusion as of version 2024.0.

New featureLuciadFusion

LuciadFusion Studio now includes an MBTiles service type, which can be used to serve MBTiles raster or vector data.

New featureLuciadFusion

The OGC Symbology Encoding (SE) implementation now supports replacing colors in images. This can be achieved by using the SE vendor options colorReplace and colorReplaceTolerance in a TLcdSLDRasterSymbolizer. The new article How to replace a color illustrates this capability with an example.

New featureLuciadFusion

TLcdPixelReplaceOp is a new image operator which replaces a given color or value in an image with another. It can be used, for instance, to remove blank borders around an image by replacing them with a transparent color.

New featureAdvanced Raster Services

LuciadFusion and LuciadLightspeed users can now visualize ECW images with any number of bands and any bit depth.

New featureReal-time Engine

TLspRadarVideoLayerBuilder now has the ability to work with radar feeds whose angular or radial resolution are variable over time. This requires the user to manually specify the resolution of the visualization, which is then effectively decoupled from that of the data. The new method displayResolution() on the layer builder is used to enable this behavior. If called, the radar video layer will be fully robust against all variations in the resolution of the incoming data.

New featureInfrastructure Standards

Visualization of a Revit file in LuciadRIA, processed and served using LuciadFusion's OGC 3D Tiles service
Visualization of a Revit file in LuciadRIA, processed and served using LuciadFusion's OGC 3D Tiles service

Added support for the Autodesk Revit data format. Autodesk Revit is a BIM software tool for architects, engineers, and construction professionals to model shapes, structures, and systems in 3D.

For more details, see the Autodesk Revit entry in the Data Formats documentation section

ImprovementLuciadFusion

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.

ImprovementLuciadFusion

The WMS and WMTS services in LuciadFusion Studio have improved GetLegendGraphic support to create a meaningful legend for vector-oriented SLD styles (containing polygon, line and/or point symbolizers). You can also find the implementation in sample code to ease customizations: see samples.wms.server.SLDVectorWMSGetLegendGraphicEncoder and samples.wmts.server.SLDVectorWMTSGetLegendGraphicEncoder.

ImprovementLuciadFusion

LF-2576
The same-site attribute of the LuciadFusion session cookie has been set to Lax. This can be changed in the fusion.common.yml file.

ImprovementLuciadFusion

The following new system properties let users configure reference decoder priority for the following model decoders:

The priority decides whether the model reference decoding is first attempted from the reference information embedded in the data file and then fall back to external reference source files such as WKT (.prj), REF (.ref) and EPSG (*.epsg) in case of an error or vice versa when the other reference decoder priority is selected.

For more information on how to configure the reference decoder priority for supported ILcdModelDecoder implementations, refer to the following article: Setting model reference decoder priority

ImprovementLuciadFusion

LCD-13341
The metadata in the gpkg_data_columns table of a GeoPackage file is now used by TLcdGeoPackageModelDecoder to provide the correct display names in TLcdDataModelDisplayNameProvider#getDisplayName(TLcdDataProperty).

ImprovementLuciadFusion

The included Apache Ant distribution has been upgraded to version 1.10.14. This improves compatibility with Java 21.

ImprovementLuciadFusion

Products with cartesian referenced data can now be added to a WFS service.

ImprovementLuciadFusion

LCD-13289
It is now possible to customize the tile grid reference used by the tiled WMS painters for GXY and Lightspeed views. The tile grid reference can be specified through a newly added constructor in TLcdGXYTiledWMSProxyPainter and TLspTiledWMSProxyPainter. Customizing tile grid references can be useful to align with a server-defined tile grid reference used for caching of requests.

ImprovementLuciadFusion

LuciadLightspeed and LuciadFusion now support Java 21. Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

ImprovementLuciadFusion

LCD-8681, LCD-13260
Introduced TLcdDataProperty#getSourceName, which contains the property name as it was defined in the source data. This may differ from the actual name of the property within the TLcdDataType, because that name can contain only alphanumeric characters and underscores, and may therefore have been sanitized.

When building a data type, the source name of a property can be configured with a setter on the TLcdDataPropertyBuilder. Additionally, TLcdDataType#getProperty now also checks this source name when searching a property that matches a given name.

The default TLcdDataModelDisplayNameProvider has also been adapted to use this source name by default, when retrieving a display name for a property.

Finally, The TLcdGeoJsonModelEncoder now uses these source names by default as well, when encoding data objects to GeoJSON features.

ImprovementLuciadFusion

LF-1958

To ease using HTTP/2 with LuciadFusion, the following improvements have been introduced:

  • A new article How to use HTTP/2 with LuciadFusion has been introduced.
  • HTTP/2 is now enabled by default in the LuciadFusion Platform configuration.
  • In order to enable HTTP/2 with the sample Jetty server shipped with LuciadFusion, we have included the following sample dependencies:
Group ID Artifact ID ID Version
org.eclipse.jetty.http2 jetty-http2-common 12.0.7
org.eclipse.jetty.http2 jetty-http2-hpack 12.0.7
org.eclipse.jetty.http2 jetty-http2-server 12.0.7
org.eclipse.jetty jetty-alpn-conscrypt-server 12.0.7
org.eclipse.jetty jetty-alpn-server 12.0.7
org.conscrypt conscrypt-openjdk-uber 2.5.2

ImprovementLuciadFusion

The LuciadFusion Studio REST API endpoint GET /api/data/filter now allows filtering Data resources by data categories and keywords. These properties are also listed by the GET /api/data/queryable-properties endpoint. More information on how you can use the GET /api/data/filter endpoint can be found in the data querying article.

ImprovementLuciadFusion

LF-2495

A LuciadFusion Studio REST API developer can now define custom properties with a limited set of allowed values for the Long data type in addition to the already supported String type. As a result of this:
addLongProperty(String, Set) and addLongProperty(String, String, Set, boolean) methods have been added to the class TLfnCustomPropertyDefinitions.
In addition to the above inclusions to the API, the following addEnumProperty(String, String, Set, boolean) and addEnumProperty(String, Set) methods of the class TLfnCustomPropertyDefinitions have been deprecated in favor of new methods addStringProperty(String, String, Set, boolean) and addStringProperty(String, Set).
It is recommended to use the newly introduced methods instead of the deprecated ones. The deprecated methods will subsequently be removed in one of the future product releases.

As a result of this enhancement the LuciadFusion Studio REST API endpoints GET /api/data/custom-properties and GET /api/data/queryable-propertiesno longer return 'Enum' as a 'type' in a REST API response. They now return the data type as determined by the type of value a custom property can take i.e. Long, Double, Boolean, Date, String. This change is consistent with the behavior of the custom properties which already returned the 'type' as their data type of the values.

ImprovementLuciadFusion

LF-1949
The file and folder picker in the LuciadFusion Studio web application now hides hidden files and folders.

ImprovementLuciadFusion

LF-1245, LF-1239, LF-2071
The capabilities of a service are now opened in a new tab when clicking on the GET CAPABILITIES button of a service in the LuciadFusion Studio web application.

ImprovementLuciadFusion

LCD-9753
TLcdGeoPackageFeatureDatabaseModelEncoder: encoding data objects with multiple geometry properties now results in a clear error message, instead of a message indicating a unique constraint violation.

ImprovementLuciadFusion

LCD-9574
The tray icon of the OGC server sample now has an additional entry to open the landing page.

ImprovementLuciadFusion

LF-2580
Improved the performance of browsing directories with a large number of entries in the Studio web application when adding data or data roots.

ImprovementAviation Standards

LCD-13371
Upgraded the included EUR ADR AIXM 5.1(.1) XML Schema extensions from version 26.0 to version 27.0.

ImprovementDefense Symbology

LCD-13199

A new style class, TLcdMilitarySymbolStyle, has been added to the Military Symbology API. This class can be used to define the symbol style of both APP-6 and MIL-STD-2525 symbols.

The usage is equivalent to the usage of the existing, standard specific style classes (TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle). You can configure a symbol dependent style, by either having your domain objects implement ILcdStyledMilitarySymbol or by defining a default style on your painter providers or layers.

The following methods have been added to configure a TLcdMilitarySymbolStyle on painter providers and layers:

  • TLcdAPP6AGXYPainterProvider.setDefaultMilitarySymbolStyle
  • TLcdAPP6AGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
  • TLspAPP6ALayerBuilder.defaultStyle
  • TLspAPP6ASymbolStyle.Builder.militarySymbolStyle
  • TLcdMS2525bGXYLabelProvider.setDefaultMilitarySymbolStyle
  • TLcdMS2525bGXYLabelPainterProvider.setDefaultMilitarySymbolStyle
  • TLspMS2525bLayerBuilder.defaultStyle
  • TLspMS2525bSymbolStyle.Builder.militarySymbolStyle
  • TLspMilitarySymbologyLayerBuilder.defaultStyle

ImprovementInfrastructure Standards

The discoverDataSources method of TLcdIFCModelDecoder now returns a list of TLcdBIMDataSource objects.

Bug fixLuciadFusion

LCD-13293
TLcdSLDMark: improved anti-aliased rendering of several types.

Bug fixLuciadFusion

LCD-13245
TLcdIOUtil#resolve returned an incorrect result for source names starting with "jpip://". The method now returns null.

Bug fixLuciadFusion

LCD-13252
TLcdSLDFeatureTypeStylePainter now implements ILcdGXYEditorProvider, which returns itself as ILcdGXYEditor to edit objects in a GXY view. This better aligns with the already implemented painter-related interfaces ILcdGXYPainter and ILcdGXYPainterProvider.

Bug fixLuciadFusion

LCD-13231
TLcdEarthRepositoryModelDecoder: improved the robustness when interrupting a thread that was reading a tile repository. This improves compatibility with Java 21.

Bug fixLuciadFusion

LF-2354
Fixed an issue where the startedTime property on a service was never updated if the service was restarted.

Bug fixLuciadFusion

LF-2513
There was a very small precision loss when storing the bounding box of a data item in an Oracle database, this has been fixed.

Bug fixLuciadFusion

LF-2589
After upgrading to version 2023.1 on an Oracle database, LuciadFusion Studio didn't show the data items any longer on the product details page for those products that already existed before the upgrade. This has been fixed.

Bug fixLuciadFusion

LF-2578
Resolved an issue with the default LuciadFusion platform classpath configuration (located in config/com.luciad.fusion.platform.vmoptions), which prevented LuciadFusion to be able to start if you are using a license text file. It was only possible to run LuciadFusion when the license was in a jar file.

Bug fixLuciadFusion

LF-2573
Fixed an issue that prevented all data from being saved to the database while crawling a data root. This situation only occurred when crawling a file that contains multiple data and access rules templates were defined for the crawl job of the data root.

Bug fixLuciadFusion

LF-2570
Fixed an issue that caused an LTS service to start pre-processing after all its data was removed. This resulted in an error in the log.

Bug fixLuciadFusion

LCD-13386
Resolved an issue with the Maven sample setup scrip, where the sample project's settings.xml file was not used when deploying the license to the Maven repository.

Bug fixLuciadFusion

LF-2582
Fixed an issue with the REST API GET api/data/filter endpoint for wildcard character ^ based equality comparison of String based custom properties. Now the query using wildcard ^ based equality comparison will only work when the wildcard character is placed at the beginning of string to be compared against a custom property. ^ will now be interpreted as a regular character if used anywhere other than the beginning of a string.

Bug fixLuciadFusion

LF-2575
Fixed the issue where OGC 3D Tiles service would no longer fall back to a tilestore.lpc file when no tileset.json file was available.

Bug fixLuciadFusion

LF-2568
Fixed an issue that caused LuciadFusion to report an error if the Principal of the authenticated user was not an instance of UserDetails.

Bug fixLuciadFusion

LF-2579
The list of privileges required by LuciadFusion when using an Oracle database was updated to include the SELECT ON SYS.DBA_RECYCLEBIN privilege. A warning is shown if this privilege is not granted to the user used by LuciadFusion to connect to the database.

Bug fixLuciadFusion

LCD-12748
Fixed an issue in the TLcdGeoTIFFModelDecoder for the case of data with photometric interpretation RGB with additional sample values. The standard cases RGB(A) worked fine. For the case with additional sample values the ALcdImage band semantics did not include information on the red, green, and blue channels. It would be interpreted as a greyscale image by the image painter. Now the correct band semantics are reported which makes the image painter pick it up and render the file correctly.

Bug fixData Connectivity Manager

LF-2490
The Data Connectivity Manager no longer shows an Internal Error dialog when a connection issue occurs with a remote tile store. Instead, a more meaningful error dialog is shown with access to the error message and the involved stacktrace.

Bug fixDatabase Connectors

LCD-4462
TLcdOracleSpatialModelDecoder now uses the CS_SRS table to determine the ILcdModelReference of the decoded ILcdModel when the ILcdModelReference can not be determined using a list of pre-defined references.

Upgrade considerationLuciadFusion

We now enable support for vertical datums by default for a number of model decoders. If your services require preprocessing (such as LTS and OGC 3D Tiles) and you encounter issues with vertical datum application, you may need to preprocess the involved data again to ensure correct application of the vertical datum support. Preprocessing again is only necessary if you have other data with vertical datums and observe inconsistencies. Inconsistencies occur when combining the following data:

  • Data which is served by an LTS or OGC 3D Tiles service, which has not applied the vertical datum. This usually occurs because the service was created with an older LuciadFusion version (2023.1 or older), which did not enable vertical datum support by default.
  • Data which is loaded directly into a client application, is served by a service which does not do preprocessing or is served by a new LTS or OGC 3D Tiles service, which has been created in LuciadFusion 2024.0.

More information about enabling support for vertical datums by default is given in the release note for issue LCD-12921.

Upgrade considerationLuciadFusion

LuciadLightspeed and LuciadFusion now increasingly make use of Java's own file and URI handling API to improve reliability, consistency, and portability when handling data sources. This includes, but is not limited to TLcdIOUtil, TLcdInputStreamFactory, and several model decoders. Because of this, the following invalid data source paths may no longer be recognized:
  • The colon ":" is no longer accepted in Windows file names.
  • Spaces are no longer accepted in file URI's. They need to be escaped as described in the URI specification.
Make sure to correct these source names before passing them to the API.

Upgrade considerationLuciadFusion

LuciadLightspeed and LuciadFusion no longer support 32-bit JDKs. Previously there was still limited support for Linux.

Upgrade considerationLuciadFusion

The minimum supported glibc (GNU C Library) for Linux has been raised to 2.28. This means that Ubuntu 18 is no longer supported.

Upgrade considerationLuciadFusion

LCD-12921

The default behavior of a number of model decoders has been changed. We now enable support for vertical datums by default for a number of model decoders. The vertical datum support will cause the appropriate geoid height to be applied to data files of the affected formats, if the data advertises a vertical datum. In previous versions, we ignored the vertical datum advertised by data by default.

Using the geoid will result in the use of more accurate elevation values, at the cost of performance when processing the data.

The following data formats are affected by this change:

  1. DEM: TLcdDEMModelDecoder
  2. DMED/DTED: TLcdDMEDModelDecoder, TLcdDTEDModelDecoder, TLcdDTEDDirectoryModelDecoder
  3. ETOPO: TLcdETOPOModelDecoder
  4. GeoTIFF: TLcdGeoTIFFModelDecoder
  5. LAS/LAZ: TLcdLASModelDecoder
  6. SwissDHM: TLcdSwissDHMMatrixModelDecoder

Because the default behavior has changed for these formats, your data may be painted at a different height, which can cause misalignment with your other layers. For example, you may apply the geoid to points in a LAS file, which causes your LAS points to be painted at a different elevation. If you combine this LAS data with an inaccurate terrain layer, there may be overlap between your LAS points and the terrain layer. You should check that your data is still properly aligned with your other layers after upgrading.

The recommended way to fix such alignment issues is to make sure you use an accurate terrain layer and use the same geoid on all your layers with elevation data. You should also verify that all your elevation data advertises the correct vertical datum. Read our article on Detecting and fixing vertical datum issues for more details.

If you have different behavior then before, and you are sure that the old behavior is preferred, you can revert to the old behavior in the following ways:

  • Disable geoid support for a specific model decoder, by calling the method #setSupportGeoidDatums(boolean)
  • Disable geoid support for all aforementioned model decoders, by setting the system property com.luciad.geodesy.geoidSupport.LEGACY to true.

Upgrade considerationLuciadFusion

Since the upgrade to Spring Security version 6, Spring Security blocks all requests for which no authorization rule is defined. In order to register authorization rules for services in LuciadFusion, a few changes have been made in the LuciadFusion configuration and the ILfnServiceTypeConfiguration interface, which makes it possible to plug in custom service types in LuciadFusion

The documentation changes consist of 2 new properties: fusion.security.serviceAuthenticationRequired and fusion.security.authenticatedEndpoints

  • fusion.security.serviceAuthenticationRequired allows you to globally configure if services published in LuciadFusion require authentication or if anonymous access is permitted.
  • fusion.security.authenticatedEndpoints allows you to override the configuration set by fusion.security.serviceAuthenticationRequired for certain url patterns. This can, for example, be used if you want to allow anonymous access for all services except services of a certain type (wms, wfs, lts, etc)

Additionally we have deprecated the property fusion.accessControl.authenticatedEndpoints. This property used to only have an effect when access control is enabled, it is now replaced by fusion.security.authenticatedEndpoints, which is also active when access control is disabled. If you are using fusion.accessControl.authenticatedEndpoints, this configuration will still be applied, but this property will be removed in a future LuciadFusion release, so we recommend that you replace its usage by fusion.accessControl.authenticatedEndpoints.

We have added the method getEndpointPatterns() to he interface ILfnServiceTypeConfiguration. This method is used to inform the LuciadFusion Security system of which url patterns are handled by the service type implementation.

Please read the following articles for more information:

Upgrade considerationLuciadFusion

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

Upgrade considerationLuciadFusion

The following dependencies have changed due to the Spring Boot upgrade from version 2.7 to 3.2:
Group ID Artifact ID Old Version New Version
org.springframework.boot spring-boot 2.7.14 3.2.1
org.springframework.boot spring-boot-actuator-autoconfigure 2.7.14 3.2.1
org.springframework.boot spring-boot-actuator 2.7.14 3.2.1
org.springframework.boot spring-boot-autoconfigure 2.7.14 3.2.1
org.springframework.boot spring-boot-configuration-processor 2.7.14 3.2.1
org.springframework.boot spring-boot-starter 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-actuator 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-freemarker 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-jdbc 2.7.14 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-security 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-validation 2.7.14 3.2.1
org.springframework.boot spring-boot-starter-web 2.1.14 3.2.1
org.springframework.boot spring-boot-starter-websocket 2.7.14 3.2.1
org.springframework.ldap spring-ldap-core 2.4.1 3.0.4
org.springframework.security spring-security-config 5.8.6 6.2.1
org.springframework.security spring-security-core 5.8.6 6.2.1
org.springframework.security spring-security-crypto 5.8.6 6.2.1
org.springframework.security spring-security-ldap 5.8.6 6.1.2
org.springframework.security spring-security-oauth2-core 5.8.6 6.1.2
org.springframework.security spring-security-oauth2-resource-server 5.8.6 6.1.2
org.springframework.security spring-security-web 5.8.6 6.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-context-support 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-messaging 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
org.springframework spring-websocket 5.3.29 6.1.2
org.webjars swagger-ui 4.15.5 5.10.3
org.apache.tomcat.embed tomcat-embed-el 9.0.78 10.1.17
org.yaml snakeyaml 2.0 2.2
org.hibernate.validator hibernate-validator 6.2.5.Final 8.0.1.Final
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
org.jboss.logging jboss-logging 3.4.1.Final 3.4.3.Final
org.slf4j jcl-over-slf4j 1.7.36 2.0.9
org.slf4j jul-to-slf4j 1.7.36 2.0.9
org.slf4j log4j-over-slf4j 1.7.36 2.0.9
org.slf4j slf4j-api 1.7.36 2.0.9
ch.qos.logback logback-classic 1.2.12 1.4.14
ch.qos.logback logback-core 1.2.12 1.4.14
com.zaxxer HikariCP 4.0.3 5.0.1
io.github.classgraph classgraph 4.8.149 4.8.108
io.micrometer micrometer-core 1.9.13 1.12.1
joda-time joda-time 2.8.1 2.10.10
com.sun.activation jakarta.activation 1.2.2 2.0.1
jakarta.servlet jakarta.servlet-api 4.0.4 6.0.0
jakarta.validation jakarta.validation-api 2.0.2 3.0.2
jakarta.xml.bind jakarta.xml.bind-api 2.3.3 4.0.0

The following dependencies have been added:
Group ID Artifact ID Version
io.micrometer micrometer-common 1.12.1
io.micrometer micrometer-jakarta9 1.12.1
io.micrometer micrometer-observation 1.12.1
io.swagger.core.v3 swagger-annotations-jakarta 2.2.19
io.swagger.core.v3 swagger-core-jakarta 2.2.19
io.swagger.core.v3 swagger-models-jakarta 2.2.19
org.springdoc springdoc-openapi-starter-common 2.3.0
org.springdoc springdoc-openapi-starter-webmvc-api 2.3.0
org.springdoc springdoc-openapi-starter-webmvc-ui 2.3.0
jakarta.transaction jakarta.transaction-api 6.0.0

The following dependencies have been removed:
Group ID Artifact ID Version
commons-lang commons-lang 2.6
javax.inject javax.inject 1
io.swagger.core.v3 swagger-annotations 2.2.7
io.swagger.core.v3 swagger-core 2.2.7
io.swagger.core.v3 swagger-models 2.2.7
org.springdoc springdoc-openapi-common 1.6.14
org.springdoc springdoc-openapi-security 1.6.14
org.springdoc springdoc-openapi-ui 1.6.14
org.springdoc springdoc-openapi-webmvc-core 1.6.14
org.webjars webjars-locator-core 0.52

LuciadFusion can be used with a Jetty embedded servlet container. The jetty sample dependencies are used in this situation. The following sample dependencies related to Jetty have changed:
org.springframework.boot spring-boot-starter-jetty 2.7.8 3.2.1
org.ow2.asm asm-commons 9.4 9.6
org.ow2.asm asm-tree 9.4 9.6
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
jakarta.annotation jakarta.annotation-api 1.3.5 2.1.1
jakarta.websocket jakarta.websocket-api 1.1.2 2.1.1

The following sample dependencies related to Jetty 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 sample dependencies related to Jetty 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

Upgrade considerationLuciadFusion

LCD-13176
TLcdGXYImagePainter, TLcdRasterPainter, TLcdMultilevelRasterPainter, TLcdEarthGXYRasterPainter, TLcdGXYTiledWMSProxyPainter and TLcdWMSProxyGXYPainter now apply brightness and contrast to raster layers with the same algorithm as Lightspeed's TLspRasterStyle. This used to be different but has now been aligned. With the new behavior, the [0, 2] brightness value range covers the entire color brightness range (black to white). The contrast setting offers a modifier on top for further tweaking.

Upgrade considerationLuciadFusion

The keywords for the Style, Product, Data and Service resources are now sets instead of lists, so any duplicate keywords are removed. The LuciadFusion Studio REST API endpoint POST /api/services/{id}/keywords now accepts a set instead of a list of keywords. Any duplicate keywords that are added to the service are ignored.

Upgrade considerationLuciadFusion

The LuciadLightspeed and LuciadFusion APIs now use the Jakarta EE 10 API and Jakarta Servlet 6.0 API, where in previous releases the Java EE 7 API and Java Servlet 3.1 API were used. There are a few breaking changes in the new Jakarta Servlet 6.0 API, the main one being a rename of the javax.servlet package to jakarta.servlet. Any LuciadLightspeed or LuciadFusion API that use classes from this package thus contain a corresponding breaking change. The affected classes are mainly the classes implementing the OGC server standards (WM(T)S, WFS, etc). Any compilation errors you encounter related to this change can typically be resolved by performing a find and replace operation.

Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

Upgrade considerationLuciadFusion

The property isoMetadataXmlContent that is part of the Service resource of the LuciadFusion Studio REST API was marked for deprecation in release 2023.0 and has now been removed. Instead, use LuciadFusion's Studio Catalog Service to get the ISO-19115 metadata of a service.

Upgrade considerationLuciadFusion

LuciadLightspeed and LuciadFusion now require Java 17. Refer to the documentation on hardware and software requirements in the prerequisites section for more information.

Upgrade considerationLuciadFusion

LF-2408
The following dependencies have been updated:
Group ID Artifact ID Old Version New Version
org.apache.commons commons-configuration2 2.9.0.lcd-11 2.9.0
org.orbisgis cts 1.4.0 1.7.0
org.geolatte geolatte-geom 0.13 1.9.1
com.h2database h2 1.4.195 2.1.214
org.orbisgis h2gis-api 1.3.1 2.2.0
org.orbisgis h2gis-utilities 1.3.1 2.2.0
org.orbisgis h2gis 1.3.1 2.2.0
org.liquibase liquibase-core 3.6.3 4.8.0

The following dependencies have been added:
Group ID Artifact ID Version
org.eclipse.jdt ecj 3.26.0
org.orbisgis poly2tri 0.4.0

The following dependencies have been removed:
Group ID Artifact ID Version
org.codehaus.mojo animal-sniffer-annotations 1.14
com.infradna.tool bridge-method-annotation 1.13
org.javassist javassist 3.18.2-GA
org.reflections reflections 0.9.9
org.orbisgis poly2tri-core 0.1.2
com.vividsolutions jts-io 1.14.0
com.googlecode.json-simple json-simple 1.1
jakarta.activation jakarta.activation-api 1.2.2

Upgrade considerationLuciadFusion

LCD-9539
The following dependencies have been updated:
Group ID Artifact ID Old Version New Version
com.fasterxml.jackson.core jackson-annotations 2.14.2 2.15.3
com.fasterxml.jackson.core jackson-core 2.14.2 2.15.3
com.fasterxml.jackson.core jackson-databind 2.14.2 2.15.3
com.google.protobuf protobuf-java 3.19.4 3.25.3
com.thetransactioncompany cors-filter 1.3.2 3.0
com.thetransactioncompany java-property-utils 1.6 1.17
jakarta.servlet jakarta.servlet-api 4.0.4 6.0.0
joda-time joda-time 2.8.1 2.10.10
org.apache.commons commons-compress 1.22 1.26
org.apache commons-io 2.6 2.15.1
org.apache.commons commons-lang3 3.12.0 3.14.0
org.apache.xmlgraphics batik-xml 1.16 1.17
org.apache.xmlgraphics batik-util 1.16 1.17
org.apache.xmlgraphics batik-transcoder 1.16 1.17
org.apache.xmlgraphics batik-swing 1.16 1.17
org.apache.xmlgraphics batik-svggen 1.16 1.17
org.apache.xmlgraphics batik-svg-dom 1.16 1.17
org.apache.xmlgraphics batik-script 1.16 1.17
org.apache.xmlgraphics batik-shared-resources 1.16 1.17
org.apache.xmlgraphics batik-parser 1.16 1.17
org.apache.xmlgraphics batik-i18n 1.16 1.17
org.apache.xmlgraphics batik-gvt 1.16 1.17
org.apache.xmlgraphics batik-gui-util 1.16 1.17
org.apache.xmlgraphics batik-ext 1.16 1.17
org.apache.xmlgraphics batik-dom 1.16 1.17
org.apache.xmlgraphics batik-css 1.16 1.17
org.apache.xmlgraphics batik-constants 1.16 1.17
org.apache.xmlgraphics batik-codec 1.16 1.17
org.apache.xmlgraphics batik-bridge 1.16 1.17
org.apache.xmlgraphics batik-awt-util 1.16 1.17
org.apache.xmlgraphics batik-anim 1.16 1.17
org.apache.xmlgraphics xmlgraphics-commons 2.7 2.9
org.slf4j slf4j-api 1.7.36 2.0.9
org.postgresql postgresql 42.5.4 42.7.3
org.checkerframework checker-qual 3.5.0 3.42.0

The following dependencies have been added:
Group ID Artifact ID Version
org.locationtech jts-core 1.19.0

The following dependencies have been removed:
Group ID Artifact ID Version
com.vividsolutions jts-core 1.14.0

Upgrade considerationLuciadFusion

LF-2408
LuciadFusion 2024.0 and subsequent releases are not compatible with H2 databases created with LuciadFusion 2023.1 and preceding releases. This is because the H2 library has been updated to version 2.1.214. The H2GIS library has been updated to version 2.2.0.

Upgrade considerationLuciadFusion

LCD-9539
The QueryDSL library has been updated to version 5.0.0. Please note that these libraries have been modified from the original QueryDSL libraries to include additional fixes.

Upgrade considerationLuciadFusion

LCD-9539
The JTS library has been updated to version 1.19.0. Please note that this library is not backward compatible. All classes have moved from com.vividsolutions.* to org.locationtech.*.

Upgrade considerationLuciadFusion

LCD-12881
The LWJGL Java binding for the OpenGL and OpenCL APIs has been updated to version 3.3.3. This improves compatibility with Java 19 and higher.

Upgrade considerationLuciadFusion

Oracle versions 11g, 12c and 18c are no longer supported as a database for LuciadFusion Studio. These versions are no longer supported by Oracle, see the Oracle Lifetime Support Policy document. It's advisable to upgrade to a newer version of Oracle database if you are still using any of these versions.

Upgrade considerationLuciadFusion

PostgreSQL versions 9.4, 9.5, 9.6, 10 and 11 are no longer supported as a database for LuciadFusion Studio. These versions are no longer supported by the PostgreSQL Global Development Group, see the PostgreSQL Versioning Policy page. It's advisable to upgrade to a newer version of PostgreSQL if you are still using any of these versions.

Upgrade considerationLuciadFusion

SQL Server version 2012 is no longer supported as a database for LuciadFusion Studio. This version is no longer supported by Microsoft, see the SQL Server 2012 lifecycle page. It's advisable to upgrade to a newer version of SQL Server if you are still using version 2012.

Upgrade considerationLuciadFusion

LCD-10042
TLcdLRDBModelEncoder#SUPPORTED_COVERAGE_TYPES is removed from the API.

Upgrade considerationAdvanced Raster Services

LF-2542
The dependency for com.erdas.gen3.ecwjp2:ecw-native has been upgraded to version 6.1.0.1084.

Upgrade considerationAdvanced Raster Services

The class TLcdECWConfiguration is now removed from the API to keep the API clean and simple. If you were using this class, it is now required to use TLcdECWModelDecoder#getMaxCacheSize and TLcdECWModelDecoder#setMaxCacheSizeinstead of similar methods exposed by TLcdECWConfiguration.

The class TLcdECWImageDecoder is now removed from the API due to its limited capability in supporting decoding of multi band and multi bit depth ECW data files. If you were using this class, it is now required to use the enhanced TLcdECWModelDecoder, which fully supports decoding multi band and multi bit depth ECW data files. This updated decoder provides a more robust and versatile solution for handling ECW data.

The previous libecw-6.1.*.jar libraries are now replaced by ecw-6.1.0-native*.jar containing the native libraries provided as part of ERDAS ECW JP2 SDK 6.1.0. This change also adds the ecw-6.1.0.jar library which contains the JNI bindings to access the functionalities exposed by the packaged native libraries.

Upgrade considerationAdvanced Raster Services

The method TLcdGDALModelDecoder#setUnlockAllFormats(boolean) and the system property com.luciad.format.gdal.unlockAllFormats have been replaced with the method TLcdGDALModelDecoder#setAllowUnverifiedFormats(boolean) and the system property com.luciad.format.gdal.allowUnverifiedFormats. The old method would only unlock a specific set of whitelisted formats, whereas the new method will unlock any and all formats for which a GDAL driver is found.

Upgrade considerationAdvanced Raster Services

The third-party library GDAL was updated to version 3.8.3. With this update, the TLcdGDALModelDecoder can no longer decode Arc/Info Export E00 GRID files. The GDAL library no longer offers supports for this format. The jpeg, png16 and proj libraries are no longer loaded separately, they are now packaged with the gdal library.

Upgrade considerationDatabase Connectors

LCD-6130, LCD-8872
The TLcdDataModel of the TLcdDatabaseModelDescriptor now maps columns of type CLOB and TIMESTAMP to the correct types, TLcdDatabaseDataTypes#ClobType and TLcdDatabaseDataTypes#TimestampType. Data stored in a column of type TIMESTAMP is now converted into an object of type java.sql.Timestamp instead of a oracle.sql.TIMESTAMP when loading data from an Oracle database.

Upgrade considerationDatabase Connectors

LCD-10712
SQL Server versions 2008 and 2012 are no longer supported by the TLcdMSSQLModelDecoder and TLcdMSSQLModelEncoder. It's advisable to upgrade to a newer version of SQL Server if you are still using version 2008 or 2012.

Upgrade considerationDatabase Connectors

LCD-13196
Oracle versions 8, 9i, 10g, 11g, 12c and 18c are no longer supported as a database by the TLcdOracleSpatialModelDecoder, TLcdOracleSpatialModelEncoder and TLcdOracleGeoRasterModelDecoder. These versions are no longer supported by Oracle, see the Oracle Lifetime Support Policy document. It's advisable to upgrade to a newer version of Oracle database if you are still using any of these versions.

Upgrade considerationDatabase Connectors

LCD-13197
PostgreSQL versions 8.x, 9.x, 10 and 11 are no longer supported as a database by the TLcdPostGISModelDecoder and TLcdPostGISModelEncoder. These versions are no longer supported by the PostgreSQL Global Development Group, see the PostgreSQL Versioning Policy page. It's advisable to upgrade to a newer version of PostgreSQL if you are still using any of these versions.

Upgrade considerationDefense Symbology

LCD-13140

The geometry type of a number of APP-6A/B Minefield symbols has been changed. These symbols were modeled as polygons, which required the symbol to have at least 3 anchor points to define the symbol's shape. To better align these symbols with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape. The following symbols are affected by this change:

  • 2.X.2.2.1.6.1 "Planned Minefield"
  • 2.X.2.2.1.6.2 "Completed Minefield"
  • 2.X.2.2.1.6.5 "Antitank (AT) Minefield"
  • 2.X.2.2.1.6.6 "Scatterable Mines"
  • 2.X.2.2.1.6.7 "Antipersonnel (AP) Minefield Reinforced With Scatterable With Self-Destruct Date-Time-Group"
  • 2.X.2.2.1.6.8 "Scatterable Minefield (Antitank Mines) With Self-Destruct Date-Time-Group"
  • 2.X.2.2.1.7 "Executed Volcano Minefield"

Upgrade considerationDefense Symbology

LCD-13138
The geometry type of the APP-6A/B symbol 2.X.2.3.1.1.2 "Fire Support Graphics - Fire Support Point - Target - Circular Target" has been changed. This symbol's geometry type was a circle, which required the symbol to have 2 anchor points to define the symbol's shape. To better align this symbol with the NVG geometry bindings specification, the geometry has now been changed to a point, which requires only a single anchor point to define the symbol's shape.

Upgrade considerationDefense Symbology

LCD-13175, LCD-13300

The interfaces ILcdAPP6AStyle and ILcdMS2525bStyle, and their implementations TLcdDefaultAPP6AStyle and TLcdDefaultMS2525bStyle have been deprecated.

If you need to create a symbol style, you should use the newly introduced class TLcdMilitarySymbolStyle.

Upgrade considerationInfrastructure Standards

The IFCPath property of the elements in the features model returned by the TLcdIFCModelDecoder has been deprecated. We recommended using the new AncestorPath property instead which has same value. The IFCPath property is still included to maintain backwards compatibility with clients that depend on it, but it will be removed in a future release.

Upgrade considerationInfrastructure Standards

The myVRDatakitConverter library, version 2024.03.73100, is added to the list of third party libraries. It is used by the TLcdRevitModelDecoder.

Upgrade considerationInfrastructure Standards

The discoverDataSources method of the TLcdBinzModelDecoder now returns a list containing two TLcdBIMDataSource objects: one for the geometry model, and one for the features model. Previously, it returned a list containing only a TLcdDataSource for the geometry model.

The following snippet can be used to get the geometry model for both the new and the previous version of this discoverDataSources method.


      TLcdBinzModelDecoder decoder = new TLcdBinzModelDecoder();
      List<? extends ILcdDataSource> dataSources = decoder.discoverDataSources("path/to/dataset.binz");
      ILcdModel geometryModel = decoder.decodeSource(dataSources.get(0));
    

Upgrade considerationInfrastructure Standards

The JNA library, version 5.14.0, is added to the list of third party libraries. It is used by the TLcdRevitModelDecoder.

Upgrade considerationInfrastructure Standards

The following deprecated DGN classes have been removed from the LuciadLightspeed API:

  • TLcdDGNMicroStationServlet
  • TLcdDGNMicroStationModelDecoder
  • TLcdDGNMicroStationDisplayInfo
  • TLcdDGNMicroStationLevelSymbology

Any usage of these classes should be replaced by the TLcdDGNModelDecoder.