We recently deployed a new Blackboard building block (B2) to our production system. After deployment I noticed that this new B2 was not writing log messages. This article explains how I solved that problem.
I recently updated a Java project that uses Spring JDBC from Spring version 3.1.0.RELEASE to Spring version 3.2.2.RELEASE. To get everything to work correctly I had to make a few changes that I thought others might find helpful to know about.
Apache Struts 2 released version 2.3.8 in December 2012. In this version, when development mode is set to true additional messages are written to the log. These messages include ones that indicate whether or not a specific parameter will be handled by the parameter interceptor and made available to the Action class. These log messages can be helpful in clearly identifying parameters that you do not want the parameter interceptor to process for security or other reasons. This article discusses how to exclude parameters from being handled by the parameter interceptor.
I've been learning how to use the Spring MVC web application framework as I contemplate switching from Struts 2 to Spring MVC. In December 2012, Spring announced the release of version 3.2. One of the new features in this release is easier testing of Spring MVC applications (which is a weak area for Struts 2). So this article provides a simple Spring MVC example project that includes JUnit tests of the Spring MVC controller class.
We needed to display a list of Blackboard Course objects on a view page and wanted the list to be sorted by a specific field (courseId). We used the inventoryList Blackboard tag to display the list. Consulting the Blackboard Learn Building Blocks Tag Library Guide for Release 9.0 and 9.1, I found that the inventoryList tag has an attribute, initialSortCol with this description:
The column to initially sort by when the list is displayed. The value should match the name of a list element.
So we set the value of initialSortCol to be the name value for the listElement tag that displays the course ID for each Course object in the collection. But the list of Course objects still was not sorted correctly.
Thanks to some bright colleagues where I work, we were able to get the list sorted correctly. Hopefully this article will save other developers hours of frustrating work caused by incomplete and missing Blackboard documentation.
My university is moving to Blackboard Learn 9.1 Service Pack 9 and to Oracle's Student Administration and Integration Pack (SAIP). We will be using SAIP to provide all our classes and enrollments to Blackboard so that each class has an associated Blackboard course. As part of these changes we need to implement a Building Block (B2) that will allow instructors to add one or more child courses to a parent course in Blackboard. Some of our instructors prefer to have one Blackboard course for multiple sections of the same class they are teaching or to have one Blackboard course for both their lecture and lab sections.
This article discusses our research into creating such a Building Block and the Blackboard API classes we use. There is a prototype Building Block available on my Github repository. I want to share what we've learned, but I also hope to get feedback on our approach and any lessons learned from others experiences.
Blackboard provides a Building Block Eclipse plugin that simplifies setting up a Building Block project and deploying a Building Block application to a Blackboard development server. Using the plugin saves Building Block developers significant time.
As part of learning how to develop Building Blocks (B2) for Blackboard Learn 9.1 I've put together several example projects. I've posted these examples on my GitHub repository. Hopefully other new Building Block developers will find them helpful.
Blackboard Building Blocks are Java web applications that run in the Blackboard Learn platform. Building Blocks allow schools to extend what Blackboard Learn can do or customize what it currently does. Blackboard provides an extensive API and also a JSP tag library. The downside is that as of October 2012 there is little documentation on how to develop Building Blocks for the Blackboard Learn 9.0 and 9.1 platforms. Much of the documentation available is too old.
Beginning with Blackboard Learn 9.1 Service Pack 1, Blackboard enabled a Building Block (B2) to create database tables in the Blackboard Learn schema and insert records into those tables when the Building Block is deployed to the Blackboard Learn application server (ref. 1). This makes it simpler for B2 applications that need to store data in database tables, especially if those tables should contain foreign keys to other Blackboard tables.
The documentation available on how to setup a Building Block so it creates the tables and inserts records into the tables is very limited (at least what I could find) and confusing. After I learned how to do this I thought a tutorial and example on how to have a B2 create tables and insert records that are part of the Blackboard Learn database schema would be useful for other B2 developers.
The university I develop Java applications for needs to create some Building Block (B2) applications for Blackboard Learn release 9.1 service pack 9. I'm somewhat familiar with Blackboard's Building Block technology but needed to update my knowledge for Building Blocks that will work with Blackboard Learn release 9.1 service pack 9. This article lists some resources I found helpful in getting me started and updating my B2 knowledge. Hopefully you will avoid the frustrations I experienced in trying to find up-to-date references.