A comparison of the legacy CM Provider methods to the (roughly) equivalent methods in the new CM Service
Note
Unless otherwise indicated, all legacy methods are from org.sakaiproject.site.api.CourseManagementProvider and all new CM methods are from org.sakaiproject.coursemanagement.api.CourseManagementService
Legacy CM Method:List getCourseIdRequiredFields();
Comparable CM Method: Moved to SectionFieldManager in /site-manage
Notes: This method allows the Site Info & Worksite Setup tools to take an arbitrary number of text fields and generate an ID that CM understands as a section EID. Since this is peculiar to the UI of Site Info, it's been moved out of CM and into its own API, specifically for this tool.
Legacy CM Method:List getCourseIdRequiredFieldsSizes();
Comparable CM Method: Moved to /site-manage/SectionFieldManager
Notes: See above.
Legacy CM Method:String getCourseId(Term term, List requiredFields);
Comparable CM Method: Moved to /site-manage/SectionFieldManager
Notes: See above.
Legacy CM Method:Course getCourse(String courseId)
Comparable CM Method: Section getSection(String sectionEid)
Notes: The CM unit that we attach to sites via a providerId (and which may automatically become site sections) is now the Section object. The legacy Course object has been removed in Sakai 2.4.
Legacy CM Method:List getCourseMembers(String courseId)
Comparable CM Method: Combination of the following:
Set<Membership> getSectionMemberships(String sectionEid) Section.getEnrollmentSet() Set<Enrollment> getEnrollments(String enrollmentSetEid)
Notes: If a section, which is a group of users that might meet at some place & time is also something that winds up on a transcript, the section has an enrollmentSet. So enrolled students are modeled as enrollments, but the section might have other members as well. Those members have roles that can be mapped to Sakai roles via the configurable CM-based GroupProvider.
Legacy CM Method:String getCourseName(String courseId)
Comparable CM Method: Depending on the intent, this could be:
Section getSection(String sectionEid) -> Section.getTitle()
It could also be the title of the section's CourseOffering.
Section.getCourseOfferingEid() CourseOffering getCourseOffering(String courseOfferingEid)
Notes: Section, Course Offering, and Canonical Course objects all have getTitle() methods.
Legacy CM Method:List getInstructorCourses(String instructorId, String termYear, String termTerm);
Comparable CM Method: Set<Section> findInstructingSections(String userEid, String academicSessionEid)
Notes:
Legacy CM Method:String getProviderId (List providerIdList);
Comparable CM Method: Moved to GroupProvider.packId(String[] ids);
Notes: Since GroupProvider already has unpackId(), this seemed the most appropriate place for packId().