2.2.1 Release Notes

2.2.1 Release Notes

Click to see Bugs/Tasks resolved in 2.2.1

Click to see Samigo Known Issues 

Important:  These critical/major bugs are resolved after 2.2.1 was released.  They will be included in 2.3. You can get the revisions as documented in JIRA.

SAK-5935

Configuration: 

sakai.properties settings: 

For File Upload and Audio Recording questions in Samigo, answers are saved to DB as a blob by default.  If you want to save answers to files, you can override this default by adding the following in your sakai.properties file. 

 

\# \*\* Samigo File Upload question type settings \*\*
\# the following default settings
\# com.corejsf.UploadFilter.repositoryPath,
\# com.corejsf.UploadFilter.sizeThreshold,
\# com.corejsf.UploadFilter.sizeMax and
\# com.corejsf.UploadFilter.saveMediaToDb in Samigo web.xml
\# can be overidden with the following settings in sakai.properties

samigo.answerUploadRepositoryPath=/sakaitmp/
samigo.sizeThreshold=512
samigo.sizeMax=20480
samigo.saveMediaToDb=false

Please make sure that Sakai has write privilege to the directory specified in samigo.answerUploadRepositoryPath.

When saveMediaToDb is true, SAM_MEDIA_T.MEDIA must be a blob or equivalent to work.  If you're running Oracle and using auto.ddl to create tables, you should check the data type of the "MEDIA" column in the SAM_MEDIA_T table. Hibernate tries to choose the right data type for this field, but has a habit of choosing the wrong one for Oracle. The correct types for each database are:

  • HSQLDB --> varbinary
  • Oracle --> blob
  • MySQL --> longblob

Audio recording questions (new since 2.2):

Audio recording questions are turned on by default.  You can turn it off by modifying sam/samigo-app/src/webapp/WEB-INF/faceconfig.xml, and changing the showAudio to false.

    <managed-property>
      <property-name>showAudio</property-name>
      <value>false</value>      
    </managed-property>

Audio recording uses the same storage configuration as File Upload questions, so they can be configured to be stored either in DB or files. 

Audio recording questions uses an Audio Recording Applet (Based on Sun's Java Sound API) to record.  Because the default JRE installation doesn't allow Java to record audio from your computer's sound card, you have to do one of the following:

1. Modify your java.policy file and add the following permissions:

      permission javax.sound.sampled.AudioPermission "record";
      permission java.io.FilePermission "<<ALL FILES>>", "read, write";
      permission java.util.PropertyPermission "user.dir", "read";

Or
2. Obtain a digital certificate and use it to sign the applet.

 
  Here is an example we used on our dev instance, coursework-s1, to get a self-signed certificate :

 
  a. login to coursework-s1 
  
  b. assuming we have deployed sakai in tomcat already, i.e. samigo.war has expanded in tomcat/webapps, kill tomcat 
      ~/nightly/sakai2.2-oracle/tomcat/bin/killjava.sh 
    
  c. create ketstore 
       keytool -genkey -keyalg RSA -keystore ~/daisyf/applet-keystore/audio_applet_keystore -alias audioApplet -keypass mypassword -validity 3650 
       I used these value when prompted "cn=Daisy Flemming, ou=SUL / ACOMP, o=Stanford University, l=Stanford, st=CA, c=US" 
  
  d. create self-signed certificate 
      keytool -selfcert -keystore ~/daisyf/applet-keystore/audio_applet_keystore -alias audioApplet -dname "cn=Daisy Flemming, ou=SUL / ACOMP, o=Stanford University, l=Stanford, st=CA, c=US" -validity 3650 
  
  e. signing applet 
      cd ~/nightly/sakai2.2-oracle/tomcat/webapps/samigo/applets 
      jarsigner -keystore ~/daisyf/applet-keystore/audio_applet_keystore -storepass mypassword sakai-samigo-audio-dev.jar audioApplet 
      jarsigner -verify sakai-samigo-audio-dev.jar 
  
  f. restart tomcat 
      ~/nightly/sakai2.2-oracle/tomcat/bin/startup.sh 


  In production, you will probably need to get an officially signed applet.  

References used 
 
1. http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html 
2. http://www-personal.umich.edu/~lsiden/tutorials/signed-applet/signed-applet.html 
3. http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html 

Temporary file location for QTI Assessment Import

Currently, by default QTI Assessment Import also uses the com.corejsf.UploadFilter.repositoryPath parameter in web.xml as the location to store a temporary file.  These temporary files are removed after the import is completed.  com.corejsf.UploadFilter.repositoryPath is set to /tmp by default.  This again can be overridden in sakai.properties the same way as in File Upload/Audio recording questions.   Please make sure that Sakai has write privilege to this directory.

For example, 

    samigo.answerUploadRepositoryPath=/sakaitmp/

Conversion from 2.2 to 2.2.1

    If you are upgrading from Samigo 2.2 to 2.2.1, after you finish running the conversion script,  please be sure to turn off autoddl by setting autoddl=false in your sakai.properties file.  There is a known issue with autoddl=true which causes duplicate indexes to be created.

 
The following statement was left out in the 2.1.2 to 2.2 conversion script, therefore we have included it in the 2.2 to 2.2.1 conversion script (see JIRA-5595).  If you have already fixed this in 2.2 then you can ignore the error saying this column already existed.    

oracle: 
alter table SAM_MEDIA_T add (DURATION varchar(36)); 

mysql 
alter table SAM_MEDIA_T add column DURATION varchar(36); 

hsqldb: 
alter table SAM_MEDIA_T add column (DURATION varchar(36));