Updated 18 July 2019
To address recent changes in Oracle’s Java support model, Blackboard Learn is transitioning to adopt a more recent version of Java, Java 11 JDK. Our new target for adopting Java 11 is version 3800.0.0, which is scheduled for SaaS Continuous Delivery release into test on 10 September 2019 and into production on 3 October 2019. Dates may be adjusted, so confirm with the SaaS release schedule.
As with prior Java version changes, it is generally expected that Building Blocks will continue to work as-is. However, Java 9 onwards has significant changes to library management and class reflection which has required numerous changes to the Learn application. In Technical Preview testing, clients and partners found issues with a portion of Building Blocks. Not all Building Blocks have been affected, but the volume is significant enough that we encourage all clients and partners to test their Building Blocks for compatibility.
For developers, partners, and institutions, testing Building Blocks for compatibility is highly recommended because libraries may have changed. For developers, recompiling Building Blocks using the updated Java libraries is also a best practice and should be performed for Java 11. Partners and clients can access early builds of Learn with Java 11 by requesting to join the Learn SaaS Technical Preview program.
As part of this change, we are transitioning from the Oracle-supported version of Java 11 to the AWS-supported version of Java 11 called Corretto. Both the Oracle and AWS versions of JDK come from the open source OpenJDK project--the difference is in the support models between the two providers. We will transition from Oracle to AWS for receiving ongoing support for Java in terms of maintenance and security releases. This does not impact SaaS or Managed Hosting clients. Operational changes for self-hosted clients are minimal and outlined below.
We previously announced this change to Java 11 to be part of Blackboard Learn release 3600.0, scheduled for April 2019. Later, we'd communicated a new target of June 2019 followed by September 2019. Based on the results of testing with Technical Preview participants and our partners, we concluded that Java 11 adoption should be delayed further. This update announces our new target for production to be in 3800.0.0 for SaaS Continuous Delivery. Java JDK is a set of common libraries on which the Learn application runs.
Impact to Self- and Managed-Hosting deployments
There aren’t significant changes for self-hosted and Managed Hosting environments with the exception of frequency of Java JDK version changes and access to JDK security updates.
As before, supported Java-version changes will occur with specific Learn-version changes. When upgrading to a specific release of Learn requiring a new version of Java, it is recommended to test Building Blocks, just as with prior Learn releases where supported Java versions changed. There is no impact to 9.1 release plans for this year--as before, there are two releases planned this year: 9.1 Q2 2019 and 9.1 Q4 2019. Release notes and support bulletins will clarify which release of Learn 9.1 has Java 11 support. Release 9.1 Q2 2019 will continue to use Java 8. We are presently targeting for Java 11 support to be part of Release 9.1 Q4 2019.
One change for self-hosted clients announced previously is that Java JDK security updates for Oracle--applicable for Learn 9.1 Q2 2019 and earlier--will be made available on Behind the Blackboard rather than on Oracle’s website due to a licensing agreement between Oracle and Blackboard made on behalf of Blackboard Learn clients. An additional change starting with Learn 9.1 Q4 2019 is that the required version of Java 11, Java Corretto, will be provided by AWS. Administrators should review release notes and support information for that release for details about access to Java Corretto installers and maintenance releases.
Frequently Asked Questions
How do I get access to an early build with Java 11 so I can work on development and testing?
You can get access to builds by requesting to join the Learn SaaS Technical Preview program. The program is open any client, partner, and developer and isn't restricted just to SaaS users. The title of the program reflects that the testing builds are SaaS-targeted builds, but these same Java 11 changes will eventually become part of an upcoming Learn 9.1 installer so the builds are appropriate for testing.
What actions will Blackboard take if a critical Java security issue is identified prior to a Learn release compatible with an updated version of Java JDK?
We would triage, mitigate, and remediate the issue through our normal processes. Sometimes that means configuration or infrastructure changes that can be implemented for mitigation without changes to Java; other times software patches are required. If the remediation approach requires a Java update, this may require accelerating release of a new Learn version in SaaS. In this circumstance of accelerating a Learn update to accommodate an updated Java JDK, this could mean moving forward upgrade option dates for SaaS Flexible Deployment Option (FDO) environments.
For Managed Hosting environments, this would follow our current practice—if the remediation plan requires software patches, upcoming maintenance windows would be leveraged and required downtimes communicated to administrators of affected environments.
For self-hosted environments, this would also follow our current practice—if the remediation plan requires software patches, appropriate extended support Java patch installers would be posted on Behind the Blackboard and a security bulletin posted encouraging the installation of the software patch.
I’m a Building Block developer. Can I wait until my SaaS test environment is upgraded to the new release before testing?
If you feel the design of your Building Block has a lower risk profile for changes to Java versions and you have the ability to quickly address any issues identified in a Building Block in the three weeks between a Learn release in test and production, you could wait. However, our results from early testing indicate that all Building Blocks should be recompiled and tested as soon as possible.
How can I avoid having to do frequent testing and recompiling of Building Blocks?
Because Building Blocks use Java APIs and run in-process with the application, they are inherently affected by changes to Java libraries. Newer versions of Java are expected to be released more frequently than in the past. If you would like to avoid the overhead of maintaining Building Blocks through these frequent library changes, we encourage you to investigate our ever-expanding support for LTI and REST APIs to determine when it would appropriate for you to transition your solution to these integration frameworks that aren’t impacted by library changes.
What is the impact to Learn SaaS Flexible Deployment Option (FDO)?
Learn SaaS FDO releases always follow Learn SaaS Continuous Delivery releases, so the change for Learn SaaS Continuous Delivery also results in a delay to Java 11 for SaaS FDO. The release version and release timelines for FDO are still being determined but are presently targeted for sometime in Q4 2019. Please continue to monitor the SaaS FDO release schedule and release notes for details. Version 3700.0 (Q2 2019) will continue to use Java 8 and won't be affected by these changes to Java.
I’m a developer in the Open Innovation program. Am I impacted?
No. The Open Innovation initiative is intended to give any developer access to Learn environments for developing in our newer and standards-based integration frameworks—LTI and REST. The older, proprietary Building Blocks framework is not part of this program, so you aren’t impacted by Java changes. You can continue to access the latest Learn builds for development and testing through the Amazon Machine Images (AMIs) provided in the Developer Community.
What are the Oracle changes requiring a different approach for Java and Blackboard Learn?
Starting in February 2019, changes to Oracle’s Java support practices prevent access to critical security fixes on all but the most recent version of Oracle Java without an extended support contract. While this strategy aligns with the global trend toward cloud-based applications, it introduces change for products such as Blackboard Learn that has the option of shipped software installed and maintained by end users.
For self-hosted and Managing Hosting environments where the supported Java version is specific to a particular release, Blackboard has entered into an extended support agreement with Oracle on behalf of these Learn clients on Learn 9.1 Q2 2019 releases and prior. For Learn SaaS environments and for Learn 9.1 Q4 2019 and newer, we are transitioning to Java support provided by AWS.