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 is 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
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.