Release Notes for ReportServer 4.0.0

These release notes reflect the changes with respect to ReportServer 3.7.1.

Some Important Features and Noteworthy Improvements for ReportServer RS4.0.0

Library upgrades

Note that as of ReportServer 4.0.0, Java 11 JRE or later is required.

Note that as of ReportServer 4.0.0, legacy JXLS1 is not further supported.

The following important libraries are upgraded in ReportServer 4.0.0:

Hibernate
upgraded to 5.6.3.Final
c3p0
upgraded to 0.9.5.5

These libraries basically manage and control the ReportServer's metadata database and its connection pools.

Numerous other libraries were upgraded. Refer to the release notes table below for details.

LDAP support including StartTLS and LDAPS

As of ReportServer 4.0.0 you can use the new "ldapimport" terminal command together with the sso/ldap.cf configuration file in order to manually import LDAP users. For scheduling the functionality periodically, you can use the script found here and schedule it via "scheduleScript".

Note that encryption is also supported. Both StartTLS (recommended) and SSL (LDAPS) are supported.

Details on configuration options are available in the Configuration Guide. The default sso/ldap.cf file is shown below.


<?xml version="1.0" encoding="UTF-8"?>
<!--
 ReportServer Configuration File
 filename: sso/ldap.cf
 
 Configures LDAP
-->
<configuration>
  <provider>
     <host>directory.example.com</host>
     <port>389</port>
  </provider>
  <security>
    <!-- 
    Allowed values are: none/starttls/ssl
    Recommended is starttls.
    -->
    <encryption>none</encryption>
    <principal>CN=ldaptest,CN=Users,DC=directory,DC=example,DC=com</principal>
    <credentials>password</credentials>
  </security>
  <base>OU=EXAMPLE,DC=directory,DC=example,DC=com</base>
  <filter>(|(objectClass=organizationalUnit)(objectClass=user)(objectClass=group))</filter>
  <externalDir>/usermanager/external</externalDir>
  <writeProtection>true</writeProtection>
  <includeNamespace>false</includeNamespace>
  <logResultingTree>false</logResultingTree>
  <attributes>
    <objectClass>objectClass</objectClass>
    <guid>entryUUID</guid>
    <organizationalUnit>
      <objectClass>organizationalUnit</objectClass>
      <name>name</name>
    </organizationalUnit>
    <group>
      <objectClass>group</objectClass>
      <name>name</name>
      <member>member</member>
    </group>
    <user>
      <objectClass>inetOrgPerson</objectClass>
      <firstname>givenName</firstname>
      <lastname>sn</lastname>
      <username>sAMAccountName</username>
      <mail>mail</mail>
    </user>
    <additional>
    	<!-- 
    	You can request additional attributes including them here as:
    	<attribute>myAttribute1</attribute>
    	<attribute>myAttribute2</attribute>
    	-->
    </additional>
  </attributes>
</configuration>

Support sending reports to Google Drive Datasinks

Google Drive OAuth2-authorized datasinks allow you to send and/or schedule reports to a given directory in your Google Drive account.

For getting your "app key" and "secret key", you have to create an app registration here (Google API Console) and give it the appropriate API permissions.

The "base root" path in the datasink definition, together with the "folder" path, determines the base path of the datasink. The default folder/folders are also included, which can be overriden in specific uses of this datasink, analogously to other datasink types.

Note that the base path must exist. If the (extension) folder/folders does/do not exist, it/they is/are created. If the report already exists in the same path, it is overwritten.

More information on this can be found here.

The path should be entered like this: "/my/path". Note that, different as in other datasinks, "./my/path" does not work.

Support sending reports to Amazon S3 Datasinks

Google Drive OAuth2-authorized datasinks allow you to send and/or schedule reports to a given directory in your Amazon S3 bucket.

You can create an access and a secret key as described here (Amazon S3 access keys) and give it the appropriate API permissions. Further, the unique bucket name and region must be entered into the datasink definition.

If the report already exists in the same path, it is overwritten.

More information can be found here

Support sending reports to Box

Box OAuth2-authorized datasinks allow you to send and/or schedule reports to a given directory in your Box account.

For getting your "app key" and "secret key", you have to create an app registration here (Box Developer Console) and give it the appropriate API permissions.

The "base root" path in the datasink definition, together with the "folder" path, determines the base path of the datasink. The default folder/folders are also included, which can be overriden in specific uses of this datasink, analogously to other datasink types.

Note that the base path must exist. If the (extension) folder/folders does/do not exist, it/they is/are created. If the report already exists in the same path, it is overwritten.

More information on this can be found here.

The path should be entered like this: "/my/path". Note that, different as in other datasinks, "./my/path" does not work.

Visualize live connection pool

As of ReportServer 4.0.0, you can create a live graph of the connection pool including the following:

You can find and control the graph in the System Consoles section analogously as the "JVM Live Memory" system console. An example output is shown below.

You can also use the new "connPoolStats" terminal command for a static snapshot of the current connection state as shown in the following screenshot

Refactor ConfigService location

Note that the location of "ConfigService" changed, so your scripts using ConfigService must be adapted for them to work.

The old location was:


net.datenwerke.rs.utils.config.ConfigService

The new location is:


net.datenwerke.rs.configservice.service.configservice.ConfigService

Support for missing configuration files

Default configuration files are created on first run of ReportServer. Later, when upgrading ReportServer to a newer version, it is probable that newly added configuration files are missing (i.e. all configuration files added between the version originally installed and the version upgraded to).

In order to find out which configuration files are missing without having to search all release notes between these versions, "showmissing" allows you to compare the current set of configuration files with the expected set of configuration files of the currently installed version. Then it shows all missing files.

With help of "createmissing", you can create the default missing configuration files found with "showmissing" into the appropriate location inside your /fileserver/etc path.

For copying all default missing configuration files into a given folder you can use "createall". This allows you to compare configuration file contents/fields, etc.

You can see examples below:

Support for database-independent table copying

As of ReportServer 4.0.0, copying the contents of a table to another table is supported database-independently, i.e. the tables may reside in different database types. E.g. you may copy the contents of a table from a MSSQL database to a table in an Oracle database. All datasource types supported by ReportServer are supported.

The destination table must exist and must contain the same fields as the source table. Their field types must be compatible.

Refer to the following example:


copyTableContents id:DatabaseDatasource:58 RS_SCHEMAINFO id:DatabaseDatasource:60 myschemainfo entity_id false 200

The example copies the contents of the RS_SCHEMAINFO table of your internal datasource with id 58 into a table with name “myschemainfo” in the datasource with id 60.

Again, note this is database-independent. In the example above the datasource with id 58 is a MSSQL datasource, while the datasource with id 60 is an Oracle datasource.

The command prints some information for you to be able to see what is happening in the background. In the example above the information printed is:

Refer to the Admin Guide for more information on how to use this command.

Allow better browsing of dynamic list preview results

Dynamic list previews can now be browsed as shown in the following screenshot.

Allow to compress all reports before sending them or scheduling them to a datasink

Reports may now be compressed before being sent to any datasink. Please refer to the following screenshots:

Allow to send files in filesystem to datasinks

You can now send files in ReportServer's virtual filesystem directly to your datasinks. Refer to the following screenshot.

Allow to print environment information to terminal

Prints environment information of the current installation including relevant environment variables.

Show user information including transitive groups of a given user

You can now use the "id" terminal command for printing including user information.

This includes group information and organizational unit information of a user. Group information includes direct and indirect groups (via another groups or via organizational units).

As an example refer to the following screenshot

The user "dmurphy" is member of 3 groups in the example:
  1. Managers: the user is a direct member of this group
  2. viaGroup: the user is a member of this group via another group.
  3. viaOU: the user is a member of this group via an organizational unit.

Add "report_configuration" entry to audit logs

We added a new entry "report_configuration" which contains the configuration parameters, filters and prefilters. The data is saved in unformatted JSON format. A formatted example with some test parameters (OrderNumber), filters and prefilters is shown below.

Note that this audit log entry is available for all report values.

Also, note you can print all these values into your dynamic list Excel, HTML and PDF export documents as well via report properties.


{
   "configuration_parameters":{
      "OrderNumber":123,
      "RS_DOKU_LOGO":"fileServerAccess?id=7837",
      "_RS_USER_LASTNAME":"root",
      "_RS_USER_USERNAME":"root",
      "_RS_REPORT_NAME":"RS_USER_VAR",
      "_RS_REPORT_KEY":"",
      "_RS_USER_EMAIL":"myemail@myhost.com",
      "_RS_LOCALE_USER":"en",
      "_RS_REPORT_DESCRIPTION":"",
      "RS_DOKU_LOGO_PDF":"fileServerAccess?id=7837",
      "_RS_REX_TOKEN":"13666-6-1642082365569--1101439880:0.6843463243681271",
      "_RS_REPORT_ID":13666,
      "_RS_USER_FIRSTNAME":"root",
      "_RS_LOCALE_SYS":"en",
      "_RS_USER_ID":6,
      "_RS_USER_TITLE":"",
      "_RS_LOCALE":"en"
   },
   "prefilters":{
      "OR":[
         {
            "==":[
               "password",
               "password"
            ]
         },
         {
            "AND":[
               {
                  "OR":[
                     {
                        "AND":[
                           {
                              "OR":[
                                 {
                                    "sex":{
                                       "include":[
                                          "1"
                                       ],
                                       "null_handling":"--",
                                       "case_sensitive":true
                                    }
                                 },
                                 {
                                    "==":[
                                       "password",
                                       "title"
                                    ]
                                 }
                              ]
                           },
                           {
                              "firstname":{
                                 "include":[
                                    "Anthony",
                                    "Barry"
                                 ],
                                 "null_handling":"Include",
                                 "include_range":[
                                    [
                                       "eduardo",
                                       "Diane"
                                    ],
                                    [
                                       "Anthony",
                                       "Foon Yue"
                                    ]
                                 ],
                                 "case_sensitive":false,
                                 "exclude":[
                                    "George"
                                 ],
                                 "exclude_range":[
                                    [
                                       "Jaques",
                                       "John"
                                    ]
                                 ]
                              }
                           }
                        ]
                     }
                  ]
               }
            ]
         },
         {
            "AND":[
               {
                  ">":[
                     "firstname",
                     "lastname"
                  ]
               }
            ]
         }
      ]
   },
   "filters":{
      "id":{
         "null_handling":"--",
         "include_range":[
            [
               "6122",
               "6136"
            ]
         ],
         "case_sensitive":true
      },
      "username":{
         "include":[
            "ftseng",
            "gvanauf",
            "pmarsh"
         ],
         "null_handling":"--",
         "case_sensitive":true,
         "exclude":[
            "gvanauf"
         ]
      }
   }
}

Allow to disable "lost password" dialog

If needed, the "lost password" can be disabled in the /fileserver/etc/security/misc.cf as shown below:


<disableLostPassword>false</disableLostPassword>

Below you can find the complete /fileserver/etc/security/misc.cf configuration file:


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
   <juel>
      <expression>
         <blacklist>getClass</blacklist>
      </expression>
   </juel>
   <errorMessages>
      <hideViolatedSecurityExceptionDetails>false</hideViolatedSecurityExceptionDetails>
   </errorMessages>
   <knownHosts>/path/to/.ssh/known_hosts</knownHosts>
   <disableLostPassword>false</disableLostPassword>
</configuration>

New Features, Improvements and Bug Fixes for ReportServer RS4.0.0-6053

RS-4812 New Feature Add Google Drive datasinks
RS-4940 New Feature Allow to import users via new "ldapimport" terminal command
RS-4953 New Feature Add Amazon S3 datasinks
RS-4962 New Feature Add Box datasinks
RS-5051 New Feature Allow to print connection pool statistics with a new "connPoolStats" terminal command
RS-5055 New Feature Show missing configuration files in current installation with help of "diffconfigfiles showmissing" terminal command
RS-5089 New Feature Add "env" terminal command for showing environmental variables
RS-5090 New Feature Allow to compress report in the send-to button of all datasinks
RS-5091 New Feature Allow to compress report in all datasinks via scheduling
RS-5092 New Feature Add connection pool system console
RS-5108 New Feature Allow to create missing configuration files in current installation with help of "diffconfigfiles createmissing" terminal command
RS-5109 New Feature Allow to create all default configuration files into a specified directory with help of "diffconfigfiles createall" terminal command
RS-5122 New Feature Add "id username" terminal command for showing information of a given user
RS-5125 New Feature Amazon s3 datasinks: allow user to select storage class
RS-5126 New Feature Add "next" and "previous" buttons to the dynamic list row preview window
RS-5127 New Feature Add "first" and "last" buttons to the dynamic list row preview
RS-5188 New Feature Allow to directly send files from the virtual filesystem to the datasinks
RS-5189 New Feature Allow to send directories from the virtual filesystem to the datasinks
RS-5191 New Feature Add user information to UI (right click on user - information)
RS-5201 New Feature Allow to disable the "Lost Password" feature
RS-5205 New Feature Allow to directly send files and directories from the virtual filesystem to the email datasink
RS-5222 New Feature Connection pool console: visualize total number of connections
RS-5224 New Feature Connection pool console: visualize number of busy connections
RS-5225 New Feature Connection pool console: visualize max pool size
RS-5226 New Feature Connection pool console: visualize threads awaiting connections and unclosed orphaned connections
RS-5238 New Feature Allow to compress file before sending it to a given datasink
RS-5251 New Feature Add example script for demonstrating excel to csv transformation: excel2csv.groovy
RS-5263 New Feature Allow to configure write protection in "ldapimport" terminal command
RS-5264 New Feature Allow to configure "include namespace" in "ldapimport" terminal command
RS-5265 New Feature Allow to configure "log resulting tree" in "ldapimport" terminal command
RS-5307 New Feature LdapService should support SSL (LDAPS)
RS-5308 New Feature LdapService should support StartTLS
RS-5329 New Feature Add "report_configuration" record to audit logs containing all configuration parameters
RS-5330 New Feature Add filters to "report_configuration" record in audit logs
RS-5331 New Feature Add prefilters to "report_configuration" record in audit logs
RS-5360 New Feature Add JXLS reports to demo data
RS-5363 New Feature Add grid editor report to demo data
RS-5381 New Feature Add sample SSL connection tester sslTest.groovy
RS-5385 New Feature Add LdapNodePostProcessHook for processing LDAP-imported nodes
RS-5386 New Feature Add ldapUserVariableProcessorHooker.groovy example to set user variables after LDAP import
RS-5393 New Feature Add SearchResultAllowerHook for allowing to filter search results
RS-5394 New Feature Add AdditionalFieldsIndexerHook for allowing to index object additional fields
RS-5395 New Feature Add JXLS grouping example
RS-5397 New Feature Allow "ldapimport" to retrieve additional LDAP attributes
RS-5406 New Feature Allow to copy table contents database-independently with help of the "copyTableContents" terminal command
RS-5407 New Feature Add example script to copy table contents: copyTableContents.groovy
RS-5418 New Feature Add group information to "id" terminal command and user information window
RS-5419 New Feature Add OU information to "id" terminal command and user information window
RS-5422 New Feature Allow terminal commands with 3 levels
RS-5433 New Feature Support JXLS collapsible groups
RS-5434 New Feature Add JXLS collapsible grouping example
RS-5438 New Feature Add demo datasinks to demo data
RS-4695 Improvement Include datasource ID and name in ConnectionPoolConfig
RS-4757 Improvement Disable schedule button for base Saiku reports as these cannot be executed
RS-4912 Improvement Add JXLS template examples to Github
RS-4961 Improvement Correct folder path in datasinks if trailing "/" is not entered
RS-5046 Improvement Global search result categories should be sorted alphabetically
RS-5057 Improvement Improve italian translations
RS-5062 Improvement Remove unnecessary derbyclient.jar dependency
RS-5063 Improvement Datasource list on connPoolStat terminal command should be sorted alphabetically
RS-5064 Improvement Upgrade c3p0 to 0.9.5.5
RS-5065 Improvement Upgrade mchange-commons-java to 0.2.20
RS-5066 Improvement Upgrade groovy to 3.0.9
RS-5067 Improvement Upgrade groovy-astbuilder to 3.0.9
RS-5068 Improvement Upgrade groovy-cli-picocli to 3.0.9
RS-5069 Improvement Upgrade groovy-console to 3.0.9
RS-5070 Improvement Upgrade groovy-datetime to 3.0.9
RS-5071 Improvement Upgrade groovy-json to 3.0.9
RS-5072 Improvement Upgrade groovy-jsr223 to 3.0.9
RS-5073 Improvement Upgrade groovy-macro to 3.0.9
RS-5074 Improvement Upgrade groovy-nio to 3.0.9
RS-5075 Improvement Upgrade groovy-servlet to 3.0.9
RS-5076 Improvement Upgrade groovy-sql to 3.0.9
RS-5077 Improvement Upgrade groovy-templates to 3.0.9
RS-5078 Improvement Upgrade groovy-xml to 3.0.9
RS-5079 Improvement Upgrade jasperreports to 6.18.0
RS-5080 Improvement Upgrade jasperreports-fonts to 6.18.0
RS-5081 Improvement Upgrade jasperreports-functions to 6.18.0
RS-5082 Improvement Upgrade jackson-annotations to 2.12.2
RS-5083 Improvement Upgrade jackson-core to 2.12.2
RS-5084 Improvement Upgrade jackson-databind to 2.12.2
RS-5085 Improvement Upgrade guava to 31.0.1-jre
RS-5086 Improvement Upgrade checker-qual to 3.12.0
RS-5087 Improvement Upgrade error_prone_annotations to 2.7.1
RS-5094 Improvement Remove old jasper code necessary for groovy 3 support in versions older than 6.17.0
RS-5099 Improvement Upgrade commons-compress to 1.21
RS-5102 Improvement Upgrade itext to 2.1.7.js9
RS-5104 Improvement Upgrade commons-io to 2.11.0
RS-5106 Improvement Upgrade commons-configuration to 2.7
RS-5112 Improvement Add commons-text-1.9.jar dependency
RS-5114 Improvement Upgrade requestfactory-server to 2.8.2
RS-5116 Improvement Upgrade bcprov-jdk15on to 1.70
RS-5118 Improvement Upgrade bcmail-jdk15on to 1.70
RS-5119 Improvement Upgrade bcpg-jdk15on to 1.70
RS-5120 Improvement Upgrade bcpkix-jdk15on to 1.70
RS-5123 Improvement Add bcutil-jdk15on-1.70.jar dependency
RS-5131 Improvement Add byte-buddy-1.11.20 dependency
RS-5132 Improvement Upgrade classmate to 1.5.1
RS-5133 Improvement Upgrade dom4j to 2.1.3
RS-5134 Improvement Add FastInfoset-1.2.15.jar dependency
RS-5135 Improvement Upgrade hibernate-c3p0 to 5.6.3.Final
RS-5136 Improvement Upgrade hibernate-commons-annotations to 5.1.2.Final
RS-5137 Improvement Upgrade hibernate-core to 5.6.3.Final
RS-5138 Improvement Upgrade hibernate-entitymanager to 5.6.3.Final
RS-5140 Improvement Upgrade hibernate-envers to 5.6.3.Final
RS-5141 Improvement Upgrade hibernate-jpa to 2.1-api-1.0.2.Final
RS-5142 Improvement Upgrade hibernate-validator to 6.2.1.Final
RS-5143 Improvement Add istack-commons-runtime-3.0.7.jar dependency
RS-5144 Improvement Add jakarta.validation-api-2.0.2.jar dependency
RS-5145 Improvement Upgrade jandex to 2.2.3.Final
RS-5146 Improvement Add jakarta.activation-1.2.1 dependency
RS-5147 Improvement Add jakarta.persistence-api-2.2.1.jar dependency
RS-5148 Improvement Remove unnecessary activation-1.1.1.jar dependency
RS-5149 Improvement Remove unnecessary validation-api-1.1.0.Final dependency
RS-5150 Improvement Upgrade jaxb-api to 2.3.1
RS-5151 Improvement Remove unnecessary jaxb-impl-2.2.5.jar dependency
RS-5152 Improvement Add jaxb-runtime-2.3.1.jar dependency
RS-5153 Improvement Upgrade jboss-logging to 3.4.2.Final
RS-5154 Improvement Add jboss-transaction-api_1.2_spec-1.1.1.Final.jar dependency
RS-5155 Improvement Add stax-ex-1.8.jar dependency
RS-5156 Improvement Add txw2-2.3.1.jar dependency
RS-5158 Improvement Remove unnecessary javassist-3.19.0-GA.jar dependency
RS-5159 Improvement Remove unnecessary javax.mail-1.6.2.jar dependency
RS-5160 Improvement Add jakarta.mail-1.6.7.jar dependency
RS-5161 Improvement Upgrade liquibase-core to 4.7.0
RS-5162 Improvement Upgrade mysql-connector-java to 8.0.28
RS-5163 Improvement Upgrade postgresql to 42.3.1
RS-5166 Improvement Upgrade mariadb-java-client to 2.7.4
RS-5169 Improvement Upgrade commons-vfs2 to 2.9.0
RS-5170 Improvement Upgrade lucene-core to 8.11.1
RS-5172 Improvement Upgrade lucene-analyzers-common to 8.11.1
RS-5173 Improvement Upgrade lucene-queries to 8.11.1
RS-5174 Improvement Upgrade lucene-queryparser to 8.11.1
RS-5175 Improvement Upgrade lucene-sandbox to 8.11.1
RS-5176 Improvement Upgrade sshd-core to 2.8.0
RS-5177 Improvement Upgrade sshd-common to 2.8.0
RS-5178 Improvement Upgrade sshd-sftp to 2.8.0
RS-5179 Improvement Upgrade jcl-over-slf4j to 1.7.32
RS-5180 Improvement Upgrade jul-to-slf4j to 1.7.32
RS-5181 Improvement Upgrade slf4j-api to 1.7.32
RS-5182 Improvement Upgrade slf4j-ext to 1.7.32
RS-5183 Improvement Upgrade slf4j-jdk14 to 1.7.32
RS-5184 Improvement Upgrade flying-saucer-core to 9.1.22
RS-5185 Improvement Upgrade flying-saucer-pdf to 9.1.22
RS-5192 Improvement Refactor datasinks
RS-5195 Improvement diffconfigfiles command should check file server permissions explicitly
RS-5203 Improvement Set consistent datasink order via hook priority
RS-5204 Improvement "Send file to datasink" should hide entries for disabled datasinks
RS-5209 Improvement Improve system console graph colors
RS-5211 Improvement Connection pool console: datasources dropbox should be shown in configuration form
RS-5212 Improvement Connection pool console: show only datasources for which the user has read permissions
RS-5215 Improvement Connection pool console: "refresh datasources" button should be shown next to datasources dropdown list
RS-5216 Improvement Connection pool console: graph should be cleared when switching datasources
RS-5217 Improvement Connection pool console: additional info should not be editable
RS-5219 Improvement Connection pool system console: better axes labels
RS-5220 Improvement Translate memory console axes
RS-5230 Improvement "Lost password": temporary password should be valid for 10 minutes instead of 1 hour
RS-5234 Improvement "diffconfigfiles createall" should allow nested subdirectory paths
RS-5235 Improvement "diffconfigfiles createall" should allow relative paths
RS-5241 Improvement Folder and filenames should be checked for null in all datasinks
RS-5243 Improvement Refactor ConfigService to net.datenwerke.rs.configservice.service.configservice.ConfigService
RS-5246 Improvement Login menu should not show submenu arrow if it is empty
RS-5249 Improvement Add groovy-dateutil-3.0.9.jar dependency
RS-5250 Improvement Add more try-with-resources examples to tryWithResources.groovy sample script
RS-5272 Improvement Allow to check individual methods for Enterprise
RS-5276 Improvement Upgrade log4j-over-slf4j to 1.7.32
RS-5277 Improvement Indicate that SCP datasinks allow only absolute destination paths
RS-5278 Improvement Upgrade logback-core to 1.2.10
RS-5280 Improvement Upgrade logback-classic to 1.2.10
RS-5282 Improvement Upgrade jcifs to 2.1.28
RS-5283 Improvement Upgrade jxls to 2.11.0
RS-5284 Improvement Upgrade jxls-poi to 2.11.0
RS-5285 Improvement Upgrade commons-cli to 1.5.0
RS-5286 Improvement Upgrade h2 to 2.0.210
RS-5287 Improvement Remove unnecessary jakarta-regexp-1.4.jar dependency
RS-5291 Improvement Remove unnecessary guice-jndi-4.2.3.jar dependency
RS-5293 Improvement Remove unnecessary icu4j-54.1.1.jar dependency
RS-5294 Improvement Remove calls to icu4j-54.1.1 dependency
RS-5305 Improvement Priorities for datasinks should be refactored
RS-5309 Improvement Separate LDAP protocol from host in ldap.cf configuration file
RS-5314 Improvement Upgrade hsqldb to 2.6.1
RS-5316 Improvement Remove unnecessary xml-resolver-1.2.jar dependency
RS-5320 Improvement Upgrade xercesImpl to 2.12.1
RS-5321 Improvement Upgrade xom to 1.3.7
RS-5322 Improvement Remove legacy jxls1 support
RS-5323 Improvement Upgrade Saxon-HE to 10.6
RS-5324 Improvement Add XSLT template examples to Github
RS-5326 Improvement "xslt" terminal command should set content-type of result to "text/xml"
RS-5327 Improvement Remove unnecessary relaxngDatatype-20020414.jar dependency
RS-5332 Improvement Refactor excel/html/pdf filter and prefilter output to use FilterService
RS-5333 Improvement Remove unnecessary json-20090211.jar dependency
RS-5334 Improvement Audit log "report_configuration" should be printed in JSON format
RS-5335 Improvement Improve dynamic list record preview word wrap
RS-5336 Improvement Use jackson for json parsing
RS-5338 Improvement Client config should use XML instead of JSON
RS-5340 Improvement Refactor report UI send-to to use file UI send-to
RS-5341 Improvement Refactor file send-to-datasink window to use a new DatasinkSendToFormConfiguratorHook
RS-5342 Improvement Refactor datasink texts, icons and types
RS-5343 Improvement Remove all unnecessary imports
RS-5344 Improvement Prefilter output in excel/html/pdf export should always contain case sensitive information as in filter output
RS-5345 Improvement Prefilter output in excel/html/pdf export should always contain null handling information as in filter output
RS-5347 Improvement Remove deprecated hibernate calls from integrity validator
RS-5348 Improvement Remove unnecessary jxls-1.0.6 dependency
RS-5352 Improvement Format all sources
RS-5354 Improvement Upgrade CodeMirror to 5.65.0
RS-5355 Improvement Replace URL demo dadget with jasper report dadget
RS-5356 Improvement Remove unnecessary d3 dependency
RS-5357 Improvement Remove unnecessary pacman dependency
RS-5362 Improvement Remove unnecessary leaflet dependency
RS-5364 Improvement Remove calls to jstz dependency
RS-5365 Improvement Remove unnecessary jstz dependency
RS-5366 Improvement Upgrade pdf.js to 2.12.313
RS-5369 Improvement Remove calls to old jackson-1.9.13 library
RS-5370 Improvement Remove unnecessary jackson-core-asl-1.9.13.jar dependency
RS-5371 Improvement Remove unnecessary jackson-jaxrs-1.9.13 dependency
RS-5372 Improvement Remove unnecessary jackson-mapper-asl-1.9.13.jar dependency
RS-5373 Improvement Remove unnecessary jackson-xc-1.9.13.jar dependency
RS-5374 Improvement Add jackson-jaxrs-base-2.12.2.jar dependency
RS-5375 Improvement Add jackson-jaxrs-json-provider-2.12.2.jar dependency
RS-5376 Improvement Add jackson-module-jaxb-annotations-2.12.2.jar dependency
RS-5377 Improvement Add jakarta.xml.bind-api-2.3.2.jar dependency
RS-5396 Improvement Let the Lucene library choose the best index Directory for the current platform instead of using the old fixed deprecated RAMDirectory
RS-5405 Improvement "copyTableContents" terminal command should set field type explicitly to avoid errors with NULL values
RS-5420 Improvement Upgrade demo data to support H2 database version 2
RS-5424 Improvement Configure missing datasink types for global search
RS-5428 Improvement Distinguish variants and base reports in global search results
RS-5437 Improvement Allow autocomplete in terminal commands with 3 levels
RS-4583 Bug Line breaks are not showing correctly in HTML email
RS-5186 Bug zip terminal command is not working correctly
RS-5187 Bug Fileserver download button is not working correctly with "unnamed" or empty files
RS-5193 Bug "compressed" field is not being correctly set in the scheduler dialog when editing existing scheduler jobs
RS-5196 Bug DB Deadlock when creating many objects sequentially in MSSQL
RS-5197 Bug hibernate.id.generator.stored_last_used should be set to false
RS-5198 Bug "diffconfigfiles showmissing" terminal command is creating duplicated configuration files
RS-5200 Bug mail.cf comments are causing errors
RS-5206 Bug "Send file to datasink" is not showing errors to the user if these occur
RS-5214 Bug DTOs cannot be created correctly after library upgrade
RS-5228 Bug Amazon s3 datasinks: errors are not being shown correctly to the user in some cases
RS-5229 Bug "compressed" field in datasink scheduling should not be "not null"
RS-5231 Bug "diffconfigfiles createall" terminal command should not create "bin" or "resources" folders
RS-5232 Bug FileServerService.getNodeByPath() is not working correctly in some cases
RS-5233 Bug "diffconfigfiles createall" terminal command should not remove /tmp if it already exists
RS-5236 Bug "mkdir" terminal command is throwing NPE when trying to create directory in root
RS-5237 Bug GeneralInfoService is needed in CE but class cannot be found
RS-5239 Bug Context menu in file datasink export is not working correctly
RS-5244 Bug SFTP and FTPS datasinks are not beeing disabled correctly in context menus
RS-5248 Bug Terminal window is not showing new spaces and text wrapping correctly in some cases
RS-5260 Bug Error messages in CE version after EE trial expires: "Tried to access enterprise method without valid license"
RS-5270 Bug Terminal commands are not working correctly after EE evaluation period ends
RS-5271 Bug SCP datasinks are not showing error response in some cases
RS-5281 Bug jul-to-slf4j and slf4j-jdk14 are not loading correctly
RS-5298 Bug Permissions are not being checked in all datasinks correctly
RS-5299 Bug Sending files from the virtual filesystem to the FTPS/SFTP datasinks is not working correctly
RS-5300 Bug "compressed" checkbox should not be shown in directories from the virtual filesystem before sending them to the datasinks as they are always compressed
RS-5301 Bug Sending files from virtual filesystem to the datasinks is not working if filename does not contain ending
RS-5302 Bug "ldapimport" terminal command is not working in some cases
RS-5306 Bug "ldapimport" terminal command is not showing exceptions correctly
RS-5311 Bug OAuth2-based datasinks are not showing error stack correctly in case of errors
RS-5346 Bug Exception is thrown in some cases while performing maintainance
RS-5353 Bug Variant test is not working
RS-5361 Bug Saiku reports are throwing exception 'module java.base does not "opens jdk.internal.reflect" to unnamed module' in some cases
RS-5392 Bug Global search "object type" header is not showing correctly
RS-5411 Bug Object resolver is not working if current location is located inside file server
RS-5423 Bug Class cast exception in some cases of global search
RS-5425 Bug Objects should be unproxied before they are shown in global search results to avoid duplicate categories
RS-5430 Bug TableReportIntegrityValidator is throwing "clazz_" related exception in some cases
RS-5446 Bug Clicking in "locate" terminal command results it not displaying result correctly in some cases

New Features, Improvements and Bug Fixes for ReportServer RS4.0.0-6054

RS-5479 Improvement Remove unnecessary preStartCheck

New Features, Improvements and Bug Fixes for ReportServer RS4.0.0-6055

RS-5505 Improvement Add icu4j-58.2.jar dependency

New Features, Improvements and Bug Fixes for ReportServer RS4.0.0-6057

RS-4424 Bug Multiselect datasource parameters chained together/dependent are not showing saved values correctly