blackboard.platform.integration.provider
Interface MigrationProvider

All Superinterfaces:
IntegrationProvider
All Known Implementing Classes:
AbstractMigrationProvider

public interface MigrationProvider
extends IntegrationProvider

Provides methods used to convert users and courses from the external LMS into native AS records.

Implementation of this provider is optional.

Since:
Bb 9.0

Nested Class Summary
 
Nested classes/interfaces inherited from interface blackboard.platform.integration.provider.IntegrationProvider
IntegrationProvider.ProviderType
 
Method Summary
 CourseContentPackageXO convertCourse(CourseLmsIntegration courseIntegration)
          Initiates conversion of LMS course to AS.
 UserPasswordXO convertPassword(java.lang.String lmsPassword)
          Converts an LMS password into a standard AS password.
 CourseContentPackageXO exportCourse(CourseLmsIntegration courseIntegration)
          Initiates a course content export.
 CourseLmsIntegration extractCourseFromUrl(java.lang.String url)
          Given a URL pointing to a location on the remote LMS, determine whether it points to a course.
 java.util.List<java.lang.String> getPotentialRoleCombinations()
          Some LMS systems allow memberships in multiple roles.
 java.util.Map<java.lang.String,java.lang.String> getRoleLabels(java.util.Locale locale)
          When generating the UI to configure the role mapping rules for the connector, this method can be used to generate source-system-specific role names.
 java.util.Map<java.lang.String,UserPasswordXO> getUserPasswords(java.util.Set<java.lang.String> lmsUserNames, Log auditLog)
          Gets the encrypted passwords for a set of LMS users.
 boolean isPublisherCourse(CourseLmsIntegration courseIntegration)
          Confirms whether this is an ePack publisher course.
 java.util.Map<java.lang.String,java.lang.Boolean> markUsersConverted(java.util.Set<java.lang.String> lmsUserNames, boolean isConverted, Log auditLog)
          Notifies the LMS that a set of users has been converted to native Academic Suite accounts.
 void undoCourseConversion(CourseLmsIntegration courseIntegration)
          Used to notify the LMS that conversion failed.
 
Methods inherited from interface blackboard.platform.integration.provider.IntegrationProvider
initializeProvider
 

Method Detail

getUserPasswords

java.util.Map<java.lang.String,UserPasswordXO> getUserPasswords(java.util.Set<java.lang.String> lmsUserNames,
                                                                Log auditLog)
                                                                throws IntegrationException
Gets the encrypted passwords for a set of LMS users. This is used during the User Conversion operation.

This method will only be called if SupportProvider.Feature.ConvertUser is supported.

Parameters:
lmsUserNames - Users to get passwords for, specified using the target LMS's usernames
auditLog - Log where per-user auditing information should be recorded
Returns:
Map of
Throws:
IntegrationException - if a problem occurs

markUsersConverted

java.util.Map<java.lang.String,java.lang.Boolean> markUsersConverted(java.util.Set<java.lang.String> lmsUserNames,
                                                                     boolean isConverted,
                                                                     Log auditLog)
                                                                     throws IntegrationException
Notifies the LMS that a set of users has been converted to native Academic Suite accounts.

This method will only be called if SupportProvider.Feature.ConvertUser is supported.

Parameters:
lmsUserNames - Users to get passwords for, specified using the target LMS's usernames
isConverted - Indicates whether the user has been converted
auditLog - Log where per-user auditing information should be recorded
Returns:
Map of
Throws:
IntegrationException - if a problem occurs

convertPassword

UserPasswordXO convertPassword(java.lang.String lmsPassword)
Converts an LMS password into a standard AS password.


convertCourse

CourseContentPackageXO convertCourse(CourseLmsIntegration courseIntegration)
                                     throws IntegrationException
Initiates conversion of LMS course to AS.

Operates in the following manner:

  1. The LMS will mark the course as converted (it will be temporarily unavailable in the UI until conversion finishes)
  2. The LMS will create an off-line backup for future reference
  3. The LMS will generate a content export and return it to Academic Suite via the OutputStream

This method will only be called if SupportProvider.Feature.ConvertCourse is supported.

Parameters:
courseIntegration - Integrated course record to operate on
Throws:
IntegrationException - if a problem occurs

undoCourseConversion

void undoCourseConversion(CourseLmsIntegration courseIntegration)
Used to notify the LMS that conversion failed. The course should be returned to its active state.

This method will only be called if SupportProvider.Feature.ConvertCourse is supported.

Parameters:
courseIntegration - Integrated course record to operate on

isPublisherCourse

boolean isPublisherCourse(CourseLmsIntegration courseIntegration)
Confirms whether this is an ePack publisher course.

This method will only be called if SupportProvider.Feature.ConvertCourse is supported.

Parameters:
courseIntegration - Integrated course record to operate on

exportCourse

CourseContentPackageXO exportCourse(CourseLmsIntegration courseIntegration)
                                    throws IntegrationException
Initiates a course content export. The content returned is identical to convertCourse. The main difference between these two methods is that this method exports content from the course without forcing a conversion.

This method will only be called if SupportProvider.Feature.ConvertCourse is supported.

Parameters:
courseIntegration - Integrated course record to operate on
Throws:
IntegrationException - if something major goes wrong

extractCourseFromUrl

CourseLmsIntegration extractCourseFromUrl(java.lang.String url)
Given a URL pointing to a location on the remote LMS, determine whether it points to a course.

This method is used by the incoming SSO handler. The URL provided by the LMS will be passed through this method. We will then determine whether the referenced course has been converted, and if so we will override the redirect to ensure that the converted course is loaded.

Parameters:
url - Relative URL, with the target hostname stripped off. e.g. /courses/eng101/homepage.do
Returns:
CourseLmsIntegration for the course referenced by the URL, or null if the URL does not point to a course.

getPotentialRoleCombinations

java.util.List<java.lang.String> getPotentialRoleCombinations()
Some LMS systems allow memberships in multiple roles. To properly map all possible roles and role combinations for a given system, you can override this method to return the possible role combinations for your system. Each element in the list should be either a role number As documented in the LEC guide for membership role ids, send just the number from: 0=None 1=Student 2=Instructor 3=Course Builder 6=Teaching Assistant 8=Grader 9=Guest or in the case of multiple roles, send a comma separated list, with the individual roles sorted numerically as in: 2,3=Instructor and Course Builder

Returns:
list of possible roles

getRoleLabels

java.util.Map<java.lang.String,java.lang.String> getRoleLabels(java.util.Locale locale)
When generating the UI to configure the role mapping rules for the connector, this method can be used to generate source-system-specific role names.

Parameters:
locale - - the user's current locale
Returns:
mapping of base role ids (0,1,2,3,6,8,9) --> descriptive string


Copyright © 2012 Blackboard, Inc. All Rights Reserved.