Changes in 7.5 That May Affect Your Upgrade

Driver Updates

In the 7.5 release, the Simba JDBC drivers for Spark and Impala have been updated. By default, the new release supports the new JDBC drivers, and the old drivers cannot be used. You should update your data sources to use the new driver. For more information, see the JasperReports Server Community Project Administrator Guide.

The drivers have been replaced due to vulnerabilities from third-party libraries. Update your data sources to use the new drivers

Using the Old Impala Driver

If you want to continue using the Impala driver that was previously available from the community website, modify the install as described below.

1. Add the following files to the <js-install>/WEB-INF/lib directory:
     Curator-client-2.6.0.jar
     Curator-framework-2.6.0.jar
     Curator-recipes-2.6.0.jar
     Hive-metastore-1.2.2.jar
     Hive-service-1.2.2.jar
     Impala-jdbc4-1.0.44.1055.jar
     Libfb303-0.9.3.jar

If you do not add the files listed, data sources that use the old Impala driver will cause errors when running reports that rely on them.

Using the Old Spark Driver

If you want to continue using the Spark driver that was previously available from the community website, modify the install as described below.

1. Add the following files to the <js-install>/WEB-INF/lib directory:
     Curator-client-2.6.0.jar
     Curator-framework-2.6.0.jar
     Curator-recipes-2.6.0.jar
     Hive-metastore-1.2.2.jar
     Hive-service-1.2.2.jar
     Spark-jdbc4-1.1.1.1001.jar
     Libfb303-0.9.3.jar

If you do not add the files listed, data sources that use the old Spark driver will cause errors when running reports that rely on them.

Changes to the Cloud Software Group MongoDB Query Language

The Cloud Software Group MongoDB Query Language has been updated to reflect changes in the MongoDB driver:

All aggregate commands must be updated to the new API-driven query syntax.
All other command-driven queries (queries that use runCommand) are deprecated. If you want to use your queries in a future release, you should update them to the new syntax.

See the language reference for more information.

Encryption Keys

JasperReports Server 7.5 streamlines how it manages the encryption keys it uses to protect sensitive data inside and outside of the server. There is no more any need to configure the encryption keys because all keys are generated automatically during the installation and stored in a central keystore. The keys are used transparently whenever the server stores passwords internally or exports sensitive data. And as long as the same user performs the upgrade, the upgrade scripts have access to the same keys in the keystore.

The new keys are backward compatible with the default keys from previous servers. However, there are possible cases when you need to manage keys during an upgrade. For example, if you do not have access to the user who installed the 7.5 instance, you may not be able to access the keystore anymore.

If you are in this situation, you should plan your upgrade as follows:

1. Before starting, back up your original 7.5 server.
2. Then export everything from your running 7.5 server with the following command:
cd <js-install-7.5>/buildomatic
js-export.sh --everything --output-zip js-7.5-export.zip --genkey

This encrypts the export with the key that is displayed on the console output:

Secret Key: 0xb1 0x44 0x72 0x0a 0xe9 0x5b 0x39 0xf5 0x87 0x5c 0xa9 0x1b 0x99 0x9d 0x14 0x4c
Key Alias (UUID): 9e41cd54-31da-43aa-84c2-638a7d0b47b8
3. Proceed with the upgrade and installation of the new server, but without migrating your data.
4. Import the key into your upgraded server with the following command.
./js-import.sh --input-key "0xb1 0x44 0x72 0x0a 0xe9 0x5b 0x39
                 0xf5 0x87 0x5c 0xa9 0x1b 0x99 0x9d 0x14 0x4c"
               --keyalias 9e41cd54-31da-43aa-84c2-638a7d0b47b8
               --keyalg AES --keypass NewKeyPassword
5. Proceed with the migration of your data to the upgraded server, or manually import your catalog to the upgraded server. As the data is imported, it is decrypted with the given key, and re-encrypted with the server's new keys.
6. Once the server is ready for production, back up your data and new keystore once again.

For more information and procedures for importing keys, see the JasperReports Server Security Guide.

Theme Changes

The look and feel of the JasperReports Server web interface has been redesigned to modernize the application's appearance. To accomplish this, markup and styles have been modified. As a result of these modifications, custom themes developed for the previous interface will need to be updated for the new interface. The main changes are in the banner, body, and home page.

The following table lists the changes made to the user interface, except for the changes to the home page. The changes to the home page are extensive. Instead of attempting to update an existing home page, you should re-implement the home page in the new default theme.

If you have not customized the user interface, these changes will not affect you.

Banner

Element Classname and Modifications File Notes
Banner

.banner

Changed background-color, font-family and height

containers.css

Default value:

background-color: #062e79
font-family: source_sans_proregular
height: 40px

Body

#frame

Changed the top value to fit the body of the application between the banner and footer without overlap

containers.css

Default value:

top: 40px

Banner Logo

#logo

Changed width and height.

Responsive behavior was added to the banner. There is now a breakpoint at which the logo shrinks in size (1100px) and a breakpoint at which it becomes hidden (980px).

theme.css

Default values:

height: 23px
width: 200px

Breakpoint from 981-1100px:

width: 150px

980px and below:

display: none

Banner Main Navigation home icon

.menu.primaryNav #main_home .wrap > .icon

New sprites for background-image: one for standard-resolution displays and one for high-resolution displays.

containers.css

Default value:

background-image: url(images/banner_icons_sprite@1x.png)

High resolution value:

background-image: url(images/banner_icons_sprite@2x.png)

Banner Main Navigation Item text

.menu.primaryNav .wrap

Enlarged font-size. Changed height and line-height to be 1px shorter than .banner.

containers.css

Default values:

font-size: 14px
height: 39px

line-height: 39px

Banner Main Navigation Item arrow icon

.menu.primaryNav .node > .wrap > .icon

New sprites for background-image: one for standard-resolution displays and one for high-resolution displays. Changed height of icon container.

containers.css

Default values:

background-image: url(images/disclosure_icons_sprite@1x.png)
height: 16px

High resolution value:

background-image: url(images/disclosure_icons_sprite@2x.png)

Banner Metadata container

#metalinks

Changed heightto be 1px shorter than .banner. Increased margin-right to accommodate search box.

With the addition of responsive behavior, the margin-right value changes at certain breakpoints to accommodate a smaller search box.

theme.css

Default values:

height: 39px
margin-right: 270px

Breakpoint from 821-1100px:

margin-right: 200px

Breakpoint from 751-820px:

margin-right: 140px

Banner Metadata text

#metalinks li

Enlarged font-size. Increased line-height to vertically center text in the banner

theme.css

Default values:

font-size: 14px
line-height: 39px

Banner Search container

#globalSearch.control.searchLockup

Increased width of container

Responsive behavior was added to the banner. There are now breakpoints at which the search container shrinks in width and a breakpoint at which it becomes hidden.

controls.css

Default value:

width: 250px

Breakpoint from 821-1100px:

width: 180px

Breakpoint from 751-820px:

width: 100px

750px and below:

display: none

Banner Search input wrapper

#globalSearch.control.searchLockup > .wrap

Increased height of input wrapper.

controls.css

Default values:

height: 28px

Banner Search input

#globalSearch.control.searchLockup > .wrap > input[type=text]

Responsive behavior was added to the banner. There are now breakpoints at which the search input shrinks in width and a breakpoint at which it becomes hidden.

controls.css

Default value:

width: 200px

Breakpoint from 821-1100px:

width: 130px

Breakpoint from 751-820px:

width: 80px

750px and below:

display: none

Banner Search button icon

#globalSearch .button.search

New sprites for background-image: one for standard-resolution displays and one for high-resolution displays.

controls.css

Default value:

background-image: url(images/search_icons_sprite@1x.png)

High resolution value:

background-image: url(images/search_icons_sprite@2x.png)