Preguntas sobre Java 11

Blackboard Learn ahora usa Java 11.

Blackboard Learn SaaS 3800.0.0 y las versiones posteriores se ejecutan en la versión 11 de la plataforma de Java SE de Oracle (lanzada en septiembre de 2018). Este cambio solamente ocurre en el servidor y no está relacionado con ningún Java que usted o sus usuarios puedan utilizar en dispositivos o navegadores. Blackboard utiliza la distribución de Java 11 lista para la producción de Amazon Corretto, que nos brinda los beneficios de una versión de Java gratuita y totalmente compatible, con mejoras de rendimiento y las últimas correcciones de seguridad. Con el fin de ofrecer la solución más segura y de mayor calidad, Blackboard Learn siempre aprovechará la última tecnología Java con compatibilidad a largo plazo.

Este tema responde una cantidad de preguntas comunes que permiten que la institución y usted comprendan qué implica la transición de Java 8 a Java 11 para su entorno de Blackboard Learn.

¿Puedo utilizar el JDK de Java 11 con versiones anteriores de Learn?

No. El JDK de Java 11 solo debe utilizarse con las versiones más recientes de Blackboard Learn.

¿Cómo repercute Java 11 en mi entorno de Blackboard Learn?

El impacto principal se encuentra en los building blocks de otros fabricantes. La mayoría de los building blocks seguirán funcionando sin ningún cambio. Sin embargo, debido a los numerosos cambios entre Java 8 y Java 11, algunos building blocks podrían requerir modificaciones significativas según la forma en que se crearon.

Recomendamos probar todos los building blocks externos en instancias de prueba o ensayo antes de que esta versión esté disponible para la producción.

Las integraciones personalizadas con las implementaciones SIS o LDAP del campus también se pueden ver afectadas debido a los cifrados y protocolos de seguridad en desuso o eliminados.

¿Qué deben hacer los administradores del sistema para prepararse para este cambio? Building blocks externos

Si utiliza building blocks que no forman parte del producto principal de Blackboard Learn, debe planificar probarlos en un entorno de pruebas que ejecute una versión de Blackboard Learn que utilice Java 11. Informe cualquier problema que encuentre en el proveedor de soluciones del building block.

Esta prueba es la recomendada para cualquier actualización; lo alentamos firmemente a realizar la prueba de actualización ya que el cambio es más significativo.

Integraciones de la línea de comandos

Las integraciones que implican la invocación de la línea de comandos pueden verse afectadas. Los casos en los que se invoque a Java desde una secuencia de línea de comandos deben incluir el argumento --add-modules=ALL-SYSTEM para evitar posibles errores relacionados con el módulo.

Las integraciones que implican fechas o marcas de tiempo específicas de la región pueden verse afectadas por la adopción predeterminada del Repositorio común de datos regionales (CLDR) en Java 9 y versiones posteriores (consulte https://openjdk.java.net/jeps/252 para obtener más información). Para Java 11, Blackboard Learn anulará el nuevo proveedor regional de CLDR predeterminado, con el propósito de proporcionar compatibilidad con versiones anteriores para el formato y los datos regionales. Específicamente, Blackboard Learn definirá la propiedad de java.locale.provider de la siguiente manera: java.locale.providers=COMPAT,CLDR.

Según el uso y la carga del cliente, puede haber riesgo de errores Stack Overflow debido al mayor tamaño de la pila de llamadas para resolver archivos de clase en Java 11. Podemos controlar la configuración del tamaño de pila en Tomcat con el ajuste bb-config.properties, bbconfig.max.stacksize.tomcat. La recomendación anterior para el tamaño de pila era de 400 000, y el mínimo recomendado actualmente para Java 11 es de 700 000.

Cualquier integración de línea de comandos basada en Java con Blackboard Learn debe utilizar los mismos ajustes para garantizar la máxima compatibilidad.

Integraciones de SIS e LDAP

Cualquier integración que se base en conjuntos de cifrado más antiguos o menos seguros para las implementaciones de SSL o TLS no funcionará en Java 11. Consulte el boletín de asistencia para obtener más información.

¿Qué deben hacer los desarrolladores?

Normalmente, la mayoría de los códigos de Java 8 son compatibles con Java 11 y funcionarán. Sin embargo, algunos building blocks pueden requerir actualizaciones. Los escenarios probables incluyen los siguientes:

  • Un building block que hace referencia a bibliotecas o archivos .jar de terceros que forman parte de la distribución de Blackboard Learn, o depende de ellos.
    • En este caso, los desarrolladores del building block deberían agrupar sus propias copias de bibliotecas o archivos .jar de terceros que son necesarios para que se ejecute la funcionalidad del building block.
  • Un building block que depende de las clases de marco de edición Enterprise que Oracle eliminó en Java 9 (consulte https://openjdk.java.net/jeps/320 para obtener más información).
    • Se debe eliminar mitigar dependencia de estas clases eliminadas al reemplazarlas por paquetes externos con funciones similares.
  • Es posible que un building block que haga referencia a determinadas API internas de Java, o que dependa de ellas, no funcione correctamente en Java 11. La mayoría de los paquetes com.sun.* y sun.* son internos e inaccesibles de forma predeterminada a partir de la versión de Java 9.
    • Se debe mitigar cualquier dependencia de los paquetes internos de Java al reemplazarlos por paquetes externos con funciones similares.
  • Hay muchos building blocks que no es necesario volver a compilar. Sin embargo, es posible que este proceso sea inevitable para los building blocks que dependen de una o más bibliotecas de terceros que deben actualizarse para funcionar con Java 11 (por ejemplo, bibliotecas de Spring).
    • Para que los building blocks que se basan en el marco de Spring sean compatible con Java 11, deben actualizarse para utilizar Spring 5.1.X o las versiones posteriores.

En cualquier caso, se recomienda volver a compilar los building blocks con Java 11 y los archivos públicos de la biblioteca de la API de Blackboard más recientes.

Como desarrollador, ¿puedo hacer uso de las funciones de Java 11?

Sí, los desarrolladores ahora pueden utilizar cualquiera de las capacidades específicas de cada lenguaje incluidas en Java 9 a 11. Sin embargo, implementar estas funciones significa que el building block no será compatible con las versiones de Java 8 de Blackboard Learn. Si el building block es específico de su entorno, no es un motivo de preocupación. Implemente las funciones específicas de Java 11 después de actualizar Learn.

Es posible que con las soluciones previstas para múltiples versiones de Blackboard Learn se tengan que crear dos building blocks separados o un único building block compilado utilizando las bibliotecas adecuadas de las versiones de destino, y las versiones de origen y destino del compilador para cumplir con los requisitos de compatibilidad de Java 8 y también de Java 11.

¿Cómo puedo obtener más información sobre Building Blocks?

Únase a la Comunidad de desarrolladores de Blackboard Learn.