Issue Details (XML | Word | Printable)

Key: SAK-12861
Type: Task Task
Status: Closed Closed
Resolution: Won't Fix
Priority: Major Major
Assignee: Oliver Heyer
Reporter: Oliver Heyer
Votes: 0
Watchers: 1
Operations

If you were logged in you would be able to see more operations.
Sakai

Allow OOTB creation of course sites without the demo data load

Created: 29-Jan-2008 11:50   Updated: 23-Oct-2008 05:50  Due: 30-Jan-2008
Component/s: Course Management
Affects Version/s: trunk [DO NOT USE]
Fix Version/s: None

Time Tracking:
Not Specified

Issue Links:
Relate
 

2.6.x Status: None
2.5.x Status: None
2.4.x Status: None


 Description  « Hide
In order to create course sites, an OOTB install of Sakai currently requires that you set demo to true to invoke the demo data load or that the DB be populated directly with the term information. Admins wishing to set up demonstration or small pilot sites w/o a provider or CM implementation should be given an easy option to define the term range and enable the creation of course sites .

 All   Comments   Work Log   Change History   Subversion Commits   git Commits      Sort Order: Ascending order - Click to sort in descending order
Ray Davis added a comment - 29-Jan-2008 13:04
As I understand it, the underlying requirement is that an OOTB installation which has _not_ done a demo data load still be able to show the work flow for course site creation, which in turn requires that some terms (or "academic sessions") be available, and that this be the case without requiring anyone to write SQL scripts or a Java app.

"sakai.properties" comes to mind because that's how pre-2.4 Sakai defined terms. But since there are some well-known issues with using sakai.properties to update databases, it might be worth thinking about an alternative.

I'm going to link SAK-12696 to this since it seems possible that solving this issue can solve that one as well.

Ray Davis made changes - 29-Jan-2008 13:04
Field Original Value New Value
Status Open [ 1 ] In Progress [ 3 ]
Ray Davis made changes - 29-Jan-2008 13:05
Link This issue relates to SAK-12696 [ SAK-12696 ]
Oliver Heyer made changes - 29-Jan-2008 13:28
Summary Restore ability to set course term information via sakai.properties Allow OOTB creation of course sites without the demo data load
Description ,In order to create course sites, an OOTB install of Sakai currently requires that you set demo to true to invoke the demo data load or that the DB be populated directly with the term information. Admins wishing to set up demonstration or small pilot sites w/o a provider or CM implementation should be given the option to set a sakai property to define the term range and enable the creation of course sites. In order to create course sites, an OOTB install of Sakai currently requires that you set demo to true to invoke the demo data load or that the DB be populated directly with the term information. Admins wishing to set up demonstration or small pilot sites w/o a provider or CM implementation should be given an easy option to define the term range and enable the creation of course sites .
Ray Davis added a comment - 29-Jan-2008 14:06
I went back and looked at the original justification for the "sakai.demo" approach at SAK-9064 and now I see how the CM issues arose. It's a combination of two factors:

1. The OOTB default is for Sakai to run _without_ the "sakai.demo" system property set to "true", By definition, this means that not all of Sakai's capabilities can be demonstrated in a plain OOTB deployment.

2. The OOTB default CM provider is DB-based, but it doesn't write any sample data unless "sakai.demo" is true.

This combination meant one of Sakai's capabilities that used to be demonstrable by default in 2.3 (course site creation) is no longer demonstrable by default in 2.4+. Since this takes away a very visible feature (albeit while adding access to many more features!), people got upset.

A different but related issue is that the demo system needs some way to automatically keep its CM data "up to date" so long as course site creation is restricted to a current-date-based view of academic sessions.

Ray Davis added a comment - 29-Jan-2008 15:22
So here are a couple of possible solutions....

A) Instead of having the DB-based implementation be the default, make the OOTB default an almost-null non-persistent CM implementation which uses "sakai.properties" to define academic sessions. This returns us to more-or-less the pre-2.4 behavior but might break 2.4 and 2.5 installations... hmm, maybe not so good.

B) Continue to make the DB implementation the default, but provide some easy optional way to create academic session records without bothering to create any other demo data. A Maven goal or a SQL script might be easy enough to produce, if that level of hands-on work is acceptable. Otherwise, we'll need to go with "sakai.properties" and all the usual "auto.ddl"-style cautions.

C) For the binary demo, make "sakai.demo" true by default so that tables will always be loaded with demo data. Also, make the CM demo dataloader keep itself up to date with course site creation by adding new academic sessions and courses as time passes.

Ray Davis added a comment - 29-Jan-2008 15:36
C1) Actually, the simplest solution for timing-out would be to keep Worksite Setup's list of "current" terms static in the demo system rather than making it time-dependent. That way no changes would ever happen to a demo/QA system "behind your back". Which kind of seems like what we want with a demo/QA system....

Ray Davis made changes - 31-Jan-2008 09:52
Status In Progress [ 3 ] Open [ 1 ]
Ray Davis added a comment - 31-Jan-2008 09:53
As Yuji Shinozaki reminded me on sakai-dev, we already supply a way for non-Java-programmers to make changes to the default CM database: the ClassPathCMSyncJob Quartz job described under "Reconciliation" in:
https://source.sakaiproject.org/svn/course-management/trunk/xdocs/readme.txt

This mechanism has a number of advantages over alternative suggestions:

* XML is better for describing structured data than property strings are.
* Quartz jobs can be safely run once without any further fuss. Safely using "sakai.properties" to update the DB usually means editing the configuration for just one server in the cluster, starting the server up, and then editing the configuration again before the next start.
* Unlike web services or Groovy scripts, Quartz job management is available to Sakai admins by default in an OOTB deployment.

The only issue I see with this approach as implemented in 2.4.x and 2.5.x is that it currently requires editing source and re-building, because the Quartz job set-up is commented out in "components.xml" and because the code reads its XML input from the classpath. I don't think it would be difficult to make the job always deployed but disabled by default, or to have it read from the file system instead. However, given how many other CM tasks are open and the lack of known customers, I'm reluctant to tack this extra work onto this task. So I'll hand it back to Oliver to decide whether to close it as a "Won't fix" or to create a new task for simplified CM Admin access via Quartz.

Ray Davis made changes - 31-Jan-2008 09:53
Assignee Ray Davis [ raydavis ] Oliver Heyer [ oheyer ]
Oliver Heyer made changes - 31-Jan-2008 10:25
Status Open [ 1 ] Closed [ 6 ]
Resolution Won't Fix [ 2 ]
casey dunn added a comment - 05-Feb-2008 11:22
The Quartz Job can be uncommented. It won't run w/out a trigger.

It could easily use a file:/// URI to pull in the XML document from anywhere on the disk system.

Our jobs use the location of sakai.home to find alternate configuration files ( alternate to sakai.properties ) which in turn can be used to configure the URI. By configuring the job to be reloaded each time it's run the configuration file is reloaded as well, This allows a Developer/Admin to edit the configuration file between runs... to point at alternate XML files.

We load Subject/Departments as well as Rosters this way.

What is the timeframe for 2.6?

Ray Davis added a comment - 05-Feb-2008 11:54 - edited
The timeframe for the official release probably doesn't matter as much to prospective users as just getting your improvements into the trunk, where they can then selectively be migrated to branches or used to create patches. Since you have more experience using this critter than I do (and since I'm supposed to be near 100% on Image Galllery right now), I think it would be great if you gave it a go -- thanks for thinking of it!

Jason Shao added a comment - 06-Feb-2008 09:40
I wonder if a better example would be to steal the XML document format -- and do a quick Impl that plugs into the Federating Impl and allows both trees. I get concerned with anything that requires configuration or the amount of data we stick into the db being hard to replicate between environments or tiers.

Filter Maintainer made changes - 10-Jun-2008 14:59
2.5.x Status None
Filter Maintainer made changes - 11-Jun-2008 07:21
2.4.x Status None
Filter Maintainer made changes - 23-Oct-2008 05:50
2.6.x Status None