Access Keys:
Skip to content (Access Key - 0)

Blackboard Learn Release 9 impacts Blackboard developers in a number of ways. Most notably, this release offers more flexibility and more options than any previous version to extend and customize the core product. Read on to find out how developers are impacted.

What's New

New Building Block types

Course Modules and Group Tools have been added as Building Block types. Course Modules can be used to display information on the default course home page. Customization of Course Modules is available to clients who license the Community Building module. Group Tools can add or link functionality to the group areas of course sites.

New Tag Libraries & Design Framework

New BbNG tag libraries have been added to Release 9 to make it easier for Blackboard developers to inherit the look and feel of the core Blackboard application in their own tools. Blackboard's Design Framework describes the common user interface (UI) design patterns used in its Next Generation (NG) products such as common page types, components, and behaviors. When combined, this information can be used to create consistently usable, high-quality user interfaces that conform to Blackboard's commitment to establishing quality user experiences.

Please see the Design Framework and Tag Library Guide available from the [Documentation] area of this site for more information.

Proxy Tools

Blackboard Learn Release 9 introduces a new and updated framework for writing applications that plug into the core learning platform. Based on the new IMS Learning Tools Interoperability specification and building on the success of the Blackboard PowerLinks framework, Proxy Tools enable developers to seamlessly connect to remote teaching and learning applications that are hosted outside of the Blackboard Learn environment. Placement hooks are provided to display links to the external application from the core Blackboard application in a manner similar to Building Blocks Installed Tools.

UI Customization

Blackboard Learn Release 9 introduces the ability to customize the look and feel of the core product based on customizations to the product's theme. Developers are able to modify the CSS files and certain graphics to do so.

Web Services

A new Web Services framework has been introduced in Blackboard Learn Release 9 that allows developers to connect remotely to a Blackboard Learn server via a client built using the technology of their choice be it Java, .NET, PHP, or other. Security access controls are present that allow a Blackboard Administrator to restrict access to the Blackboard server based on discoverability, SSL, IP restriction and other requirements. Additional options allow further restrictions based on individual API method calls and on tool-specific access controls.

What's Changed

Changes in product terminology

Building Blocks
Blackboard Building Blocks are now called Blackboard Building Blocks - Installed Tools. These refer to tools that natively install on the application server environment and are the evolution of the Building Blocks technology in Release 8 and prior. This is in contrast to tools developed for the new Proxy Tools framework which are called Blackboard Building Blocks - Proxy Tools.
Blackboard Learn
The Blackboard Academic Suite is now called Blackboard Learn. It consists of the core Course Delivery component and optional Community Engagement, Content Management, Portfolio Management, Outreach Notification, and Outcomes Assessment capabilities.

Infrastructure

Tomcat
Tomcat 6 is now used as the application server foundation on which the Blackboard application is installed. This upgrade means that new libraries are included with the core application server. More importantly, this upgrade introduces a requirement to comply with the Servlet 2.5 and JSP 2.1 specifications. This impacts the syntax of code used within JSPs, particularly when retrieving request parameters or supporting internationalization/localization within the BbUI, BbNG, or JSP tag libraries. When using a quotation mark within a tag, it is now necessary to escape it with a backslash \ (<some:jsptag attr="<%= request.getParameter(\"foo\") %>">) . Failure to do so renders this error: "quoted with " which must be escaped when used within the value."

Alternatively and only as an immediate, short-term workaround, in bb-config.properties set bbconfig.jvm.options.extra.tomcat=-Dorg.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING=false and restart Blackboard services.

Another issue that you may encounter is the stricter implementation of the HTTP cookie specification which does not permit the equal ( = ) sign to be used within a stored value. This may impact certain custom authentication and Single Sign On code when upgrading to Release 9. More information is available here.

Configuration

Default Memory Settings
The default memory settings for Blackboard Learn Release 9 have been tuned for production use by default. If you experience difficulty starting Blackboard services or incur service stability issues after installing Blackboard Learn Release 9, this is likely due to the product's default memory configuration. For development servers, particularly those with less than 1gb of memory, it is necessary to reduce the application's memory footprint. To do so:

  1. Open the file /blackboard/config/bb-config.properties
  2. Reduce the values for the heapsize as follows:
    bbconfig.min.heapsize.tomcat=512m
    bbconfig.max.heapsize.tomcat=512m
  3. Save the file
  4. Run the command /blackboard/tools/admin>PushConfigUpdates.bat/.sh

Page Caching
For performance reasons, Tomcat has been configured by default to cache JSPs and not check for changes to JSPs for one hour. Developers may desire more immediate changes on their development machines. To do so:

  1. Navigate to /blackboard/config/tomcat/conf/web.xml
  2. Change the value for <param-name>development</param-name> to true
  3. Set the value for <param-name>modificationTestInterval</param-name> to 1
  4. Add the value for <param-name>checkInterval</param-name> and set it to 1
  5. Run the command /blackboard/tools/admin>PushConfigUpdates.bat/.sh

Trim Spaces
By default, trimspaces is set to true in the Tomcat configuration. This value can be changed in /blackboard/config/tomcat/conf/web.xml. After changing it, running the PushConfigUpdates command is required.

<init-param>
  <param-name>trimSpaces</param-name>
  <param-value>true</param-value>
</init-param>

UI & Navigation

Core Product Subsystem Navigation
URLs to many areas of core product have changed. If your Building Block links directly to any of these areas (such as the Grade Center, Calendar, Announcements area, course home page, etc), the corresponding URLs will need to be changed.

Course Content Building Blocks

  • Custom course content type Building Blocks now appear under a separate "More" drop-down in each course content area. Previously, all content types appeared in a single drop-down menu.
  • Blackboard Learn Release 9 pre-pends the word "Add" to each custom content type appearing in the More drop-down menu. This introduces the possibility of duplicate words in drop down menu if the Content Handler name in the bb-manifest begins with the word "Add."

Custom Grade Center Navigation
Assessment and grade center integrations that define a custom grade handler can now be accessed by clicking View Grade Details and then selecting the appropriate attempt to view in the Grade Center. This is a change in workflow that was made in Release 8.

HTML 4.01 Strict
The HTML rendered by the tag libraries is now HTML 4.01 strict compliant.

Icon Sets
Many icons used in the core product change in Release 9. If your tool uses or links to any of these graphics, it will be necessary to update these links.

PERL
There is no longer PERL code in the product's web-based GUI. PERL still ships with the product to support back-end processes.

UI Frameset
Due to user feedback and to improve accessibility, the course content frame in the product frameset has been removed. There are only two frames - the Control frame that provides tab-based navigation at the top of the page and the Main frame to display page content. The left Menu frame only displays when accessing the Content Management area. To automatically render the course menu along the left hand side of your Building Block content, use the <bbNG:learningSystemPage> tag.

UI Updates and Maintenance
Developers will want to consider adhering closely to the user experience customs and user-interface-level changes introduced in Release 9. These impact the GUI components of Building Blocks and will impact JSPs at a code level. Although the BbUI tag libraries will continue to work in Release 9, developers should migrate their Building Blocks to the BbNG tag libraries. It is possible to maintain a single Building Block that displays one set of JSPs to clients running Release 6.x, 7,x, & 8.x and another to Release 9.x. It is also possible to branch a single Building Block into two that can be maintained independently moving forward thereby allowing you to fully take advantage of the developer improvements introduced in 9.0.

Please see the Design Framework and Tag Library Guide available from the [Documentation] area of this site for more information.

API

When using our publicly documented APIs and following best-practice development standards, changes required to update Building Blocks will be minimal.

BbList
If you are using undocumented or non-supported APIs in your Building Block, you may notice that some methods now return java.util.List objects instead of BbList objects. This is expected behavior. All publicly documented and supported APIs continue to support BbList with no code changes required.

BbServiceManager Deprecations
The BbServiceManager methods used to invoke ConfigurationService, BbSessionManagerService, PersistenceService, LogService, LocaleManager, BundleManager, PlugInManager, FileSystemService, & ContextManager are all deprecated. Instead, use (as an example) ContextManagerFactory.getInstance() to retrieve these services and managers.

Content System Metadata
Blackboard Content System metadata properties previously set in blackboard.cms.filesystem.CSEntryMetadata
now exist in blackboard.cms.xythos.impl.BlackboardFileMetaData in the bb-bbxythos.jar library.

If you are using custom metadata, please see this listserv posting. Note: failed calls to populate metadata will not throw exceptions.

Group APIs
There have been incremental additions to the Group APIs to support their newly expanded capabilities. Although not intended, this may introduce compatibility issues depending on your implementation.

Building Blocks (framework)

Bb-manifest.xml file validation
Validation of the bb-manifest.xml file is stricter in Release 9. Tool type Building Blocks that declare links must now appear within the application element as follows:

<application-defs>
  <application handle="sampleapp" type="course" name="SampleTool">
    <links>
      <link>
        ...
      </link>
    </links>
  </application>
</application-defs>

Communication-type Building Blocks Deprecation
Former "communication" tools will now display in the (student-facing) Tools area of each course. This area also displays Building Blocks of the type "tool." If your Building Block defines both, both will display in the GUI to a user. If you are freshly installing a Building Block on v9, and your Building Block defines both with each pointing to the same JSP, only the "tool" type definition will display.

Course Control Panel Building Blocks
Teacher-facing Building Blocks of type "course_tool" that formerly displayed in the Control Panel will now display in the left hand menu under Course Tools.

Portal Custom Data
To avoid losing portal custom data during your upgrade, do not increment the plugin version number in the bb-manifest.xml file.

Updating Live Building Blocks
When updating a Building Block without changing the version number, updates to JSPs will require the Building Block to be made Inactive and then Available for these changes to take effect. Alternatively, a Blackboard services restart will have the same effect.

  1. 03 Feb 2010

    Volker Kleinschmidt says:

    Note that bbconfig.jvm.options.extra.tomcat will not work on release 9 unless on...

    Note that bbconfig.jvm.options.extra.tomcat will not work on release 9 unless only one single option is used – this is due to the Java Service Wrapper. Instead, options must be entered into wrapper.conf, one per line. This is fixed in 9.0SP2.

  2. 22 Jun 2009

    Roger Feese says:

    bb-manifest.xml file validation: Where is the XML DTD or Schema so that we may ...

    bb-manifest.xml file validation:

    Where is the XML DTD or Schema so that we may validate our bb-manifest.xml files?

Adaptavist Theme Builder (4.1.3) Powered by Atlassian Confluence 3.3, the Enterprise Wiki