<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>cjnajr</title>
    <description>&lt;a id=&quot;nabblelink&quot; href=&quot;http://www.nabble.com/Sakai---Development-f18040.html&quot;&gt;Sakai - Development&lt;/a&gt;
&lt;script src=&quot;http://www.nabble.com/embed/f18040&quot;&gt;&lt;/script&gt;</description>
    <link>http://cjnajr.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Sakai 2.5.0 版本发布</title>
        <author>cjnajr</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cjnajr.javaeye.com">cjnajr</a>&nbsp;
          链接：<a href="http://cjnajr.javaeye.com/blog/181040" style="color:red;">http://cjnajr.javaeye.com/blog/181040</a>&nbsp;
          发表时间: 2008年04月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Sakai 是由美国印地安那大学、密西根大学、斯坦福大学和麻省理工学院于2004 年共同发起的一项开源CMS 计划。Sakai 项目的主要目标是，开发Sakai程序的系统架构，将之与已有各种CMS 工具和组件整合为一体。这些工具与组件既可用于课程管理，同时也可作为原有CMS 模型的扩展插件。更为重要的是，Sakai 也将支持研究性协作学习。 <br /><br />      Sakai提供一组软件工具来帮助教师，研究员和学生创建一个用于交流、协作的站点。用户通过使用浏览器，就能从Sakai提供的工具中选择一个来创建符合她们要求的站点（Site）。以下列出几个利用Sakai可能创建的例子：项目主管可以创建一个网站来发布通知与共享资源，比如文档或链接到其它网站的资源。教师可以创建一个网站来让学生们可在线讨论。学生可以登录课程站点学习或者提交电子作业。 <br /><br />       Sakai基金会是由最初的Sakai项目（获Andrew W. Mellon基金资助）和Sakai教育合作者项目基金会（获William and Flora Hewlett基金会部分资助）演变而来。Sakai基金会成立于2005年，它致力于Sakai软件的持续开发和Sakai社区的持续发展。基金会是密歇根州的一个非盈利组织，它采取会员制，合作者项目的会员也将成为Sakai基金会的会员。
          <br/>
          <span style="color:red;">
            <a href="http://cjnajr.javaeye.com/blog/181040#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 09 Apr 2008 22:23:48 +0800</pubDate>
        <link>http://cjnajr.javaeye.com/blog/181040</link>
        <guid>http://cjnajr.javaeye.com/blog/181040</guid>
      </item>
      <item>
        <title>First development - sakai hello world</title>
        <author>cjnajr</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cjnajr.javaeye.com">cjnajr</a>&nbsp;
          链接：<a href="http://cjnajr.javaeye.com/blog/178728" style="color:red;">http://cjnajr.javaeye.com/blog/178728</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          做sakai的插件开发或者说是二次开发，其最大的麻烦在于开发环境的配置。<br /><br />开发环境：<br /><br />Eclipse+MyEclipse+Tomcat的环境集成并不是太难。由于sakai2.4和maven2似乎不大兼容，所以只好根据sakai开源组织官方网站所言，使用maven1。那么要是拥有maven1的eclipse插件会多那么幸福啊。但是至少我现在还没有找到。所以只好每次开发过后，在命令行下编译了。<br /><br />不过很不错的是有专门的sakai maven插件，所以可以直接在你所开发的项目的根目录下编译，而无需牵一发而动全身了。如果要是把整个sakai全编译一次，至少要15分钟以上。而直接在子项目下编译大概两分钟就足够了。<br /><br />这个插件下载的命令如下，其中的2.2根据在/master/project.properties中的设置做适当修改。<br /><br />maven plugin:download -DgroupId=sakaiproject -DartifactId=sakai -Dversion=2.2
          <br/>
          <span style="color:red;">
            <a href="http://cjnajr.javaeye.com/blog/178728#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Apr 2008 11:00:41 +0800</pubDate>
        <link>http://cjnajr.javaeye.com/blog/178728</link>
        <guid>http://cjnajr.javaeye.com/blog/178728</guid>
      </item>
      <item>
        <title>become a sakai' maven--sakai2.4源代码方式的安装</title>
        <author>cjnajr</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cjnajr.javaeye.com">cjnajr</a>&nbsp;
          链接：<a href="http://cjnajr.javaeye.com/blog/178727" style="color:red;">http://cjnajr.javaeye.com/blog/178727</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          考察了几个LMS后，大致准备对sakai下手了。所以第一步是先把源代码在IDE下编译成功，可以运行起来。根据官方说明，环境采用jdk1.5和maven1.0.2。下面对安装的步骤做简单的记录已备后查。<br /><br />安装maven1<br /><br />1、解压程序包，配置环境变量%MAVEN_HOME%和把%MAVEN_HOME%\bin加到path中去。<br /><br />2、cmd下运行maven -v查看版本号，检查是否安装成功。<br /><br />3、运行install_repo.bat %RepositoryRoot%\.maven\repository，把一些jar包拷入%RepositoryRoot%文件夹中（这个%RepositoryRoot%是你希望保存这些下载的jar的文件夹路径，通常都是C:\Documents and Settings\UserName，UserName当然就是你自己的账户名称了）。<br /><br />编译<br /><br />在%RepositoryRoot%下建立一个build.properties文件，把源和tomcat的位置加进去。maven.repo.remote=http://source.sakaiproject.org/maven/<br /><br />maven.tomcat.home=%TOMCAT_HOME%/（这里要把%TOMCAT_HOME%换成实际的路径）。<br /><br />注意，如果是windows用户的话，一定要这样把“\”换成“/”。<br /><br />maven sakai<br /><br />进入sakai源代码的目录下，只需要键入maven sakai即可开始编译。编译的过程中可能会出现一些问题，我出现的问题是在测试代码的时候发现本地设置不是英语，然后报错。解决的方法一是改本地设置为英语(如果是windows XP系统，即是在控制面板-区域和语言选项中把”区域选项“改成英语国家)，二是设置-Dmaven.test.skip=true即可。<br /><br />数据库的配置<br /><br />我采用的是mysql，所以大致的步骤如下：<br /><br />create database sakai default character set utf8;  <br /><br />grant all on sakai.* to sakaiuser@'localhost' identified by 'sakaipassword'; <br /><br />grant all on sakai.* to sakaiuser@'127.0.0.1' identified by 'sakaipassword'; <br /><br />即创建一个sakai数据库，把该数据库的所有权限都授予用户sakaiuser。<br /><br />值得注意的是数据库mysql的版本最好是在4.1.12到5.0之间，尽量不要用5.0。然后记得把mysql-connector3.1.14.jar复制到%TOMCAT_HOME%\common\lib下。<br /><br />把sakai源代码导入到eclipse中（可选）<br /><br />由于我们要在此基础上作二次开发，所以导入代码到一个IDE中是必要的工作。<br /><br />1、切换到一个新的工作空间，选择Window -> Preferences -> Java -> Build Path -> Classpath Variables，把%RepositoryRoot%.maven\repository加入到新建的MAVEN_REPO classpath variable中。<br /><br />2、切换到Java perspective，采用package explorer，取消project中的Build automatically选项。然后开始导入工程。具体要导入的工程可以参考官方网站的列表，不过我在导入的时候报错说manage-api需要cmi-api，所以在官方推荐列表后我导入了cmi-api。<br /><br />然后clean（需要选择clean all project 和 build immediate），再不停地build all，直到没有错误为止。<br /><br />部署<br /><br />在%TOMCAT_HOME%下创建sakai文件夹，然后从代码库中复制sakai.properties到下面，再根据你的配置和路径作适当修改。<br /><br />所有的war包和jar包都会在maven运行后自动复制到tomcat的相应位置，此时所做只是键入http://localhost:8080/portal，开始了sakai的享受之旅。
          <br/>
          <span style="color:red;">
            <a href="http://cjnajr.javaeye.com/blog/178727#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Apr 2008 11:00:00 +0800</pubDate>
        <link>http://cjnajr.javaeye.com/blog/178727</link>
        <guid>http://cjnajr.javaeye.com/blog/178727</guid>
      </item>
      <item>
        <title>sakai integration with LDAP</title>
        <author>cjnajr</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://cjnajr.javaeye.com">cjnajr</a>&nbsp;
          链接：<a href="http://cjnajr.javaeye.com/blog/178726" style="color:red;">http://cjnajr.javaeye.com/blog/178726</a>&nbsp;
          发表时间: 2008年04月02日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Sakai和LDAP的整合<br /><br />现在需要LDAP来统一管理和认证用户的信息，所以需要sakai与ldap密切整合。我们选用的ldap版本是openLDAP。<br /><br />可以直接下载windows 版的安装程序，默认安装就好，有些版本会自动地把Berkeyle DB 也安装好。我安装版本是openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe，也就自动安装好了Berkeyle DB。最主要的工作是配置slapd.conf。配置好后，运行slapd -d 256即可察看是否成功。256是记录日志的等级(0 - 256),具体的说明可以参看官方网站。我选用的provider是Alternative JLDAP Providers，可以从sakai网站下载整个project，然后替换掉以前的providers即可。<br /><br />slapd.conf需要根据sakai的需要做配置。主要配置如下所示：<br /><br />slapd.conf片断<br /><br />suffix     "dc=nldap,dc=com"<br /><br />rootdn "cn=manager,dc=nldap,dc=com" <br /><br />rootpw {MD5}lUbTrx0LmzDXkyabcdeOA==<br /><br />index   cn,sn,uid,mail,displayName eq<br /><br />access to attrs=userPassword<br /><br />by self write<br /><br />by anonymous auth<br /><br />by dn.base="cn=manager,dc=nldap,dc=com" write<br /><br />by * none<br /><br />access to *<br /><br />     by self write<br /><br />      by dn.base="cn=manager,dc=nldap,dc=com" write<br /><br />by * read<br /><br /> <br /><br />sakai-src\providers\component\src\webapp\WEB-INF\jldap-beans.xml片断<br /><br />&lt;bean id="org.sakaiproject.user.api.UserDirectoryProvider"<br /><br />class="edu.amc.sakai.user.JLDAPDirectoryProvider" init-method="init" destroy-method="destroy" singleton="true"><br /><br />&lt;property name="ldapHost"><br /><br />&lt;value>127.0.0.1&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="ldapPort"><br /><br />&lt;value>389&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="ldapUser"><br /><br />&lt;value>cn=manager,dc=nldap,dc=com&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="ldapPassword"><br /><br />&lt;value>mypassword&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="basePath"><br /><br />&lt;value>cn=manager,dc=nldap,dc=com&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="caseSensitiveCacheKeys"><br /><br />&lt;value>false&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="updateUserAfterAuthentication"><br /><br />&lt;value>true&lt;/value><br /><br />&lt;/property><br /><br />&lt;property name="ldapAttributeMapper"><br /><br />&lt;ref bean="edu.amc.sakai.user.LdapAttributeMapper" /><br /><br />&lt;/property><br /><br />&lt;/bean><br /><br />&lt;bean id="edu.amc.sakai.user.LdapAttributeMapper class="edu.amc.sakai.user.SimpleLdapAttributeMapper"<br /><br />init-method="init" singleton="true"><br /><br />&lt;property name="attributeMappings"><br /><br />&lt;map><br /><br />&lt;entry key="login">&lt;value>cn&lt;/value>&lt;/entry><br /><br />&lt;entry key="firstName">&lt;value>givenName&lt;/value>&lt;/entry><br /><br />&lt;entry key="lastName">&lt;value>sn&lt;/value>&lt;/entry><br /><br />&lt;entry key="email">&lt;value>mail&lt;/value>&lt;/entry><br /><br />&lt;entry key="groupMembership">&lt;value>displayName&lt;/value>&lt;/entry><br /><br />&lt;/map><br /><br />&lt;/property><br /><br />&lt;property name="userTypeMapper"><br /><br />&lt;ref bean="edu.amc.sakai.user.EmptyStringUserTypeMapper" /><br /><br />&lt;/property><br /><br />&lt;/bean><br /><br /> <br /><br />sakai.properties片断<br /><br />ldapHost@org.sakaiproject.user.api.UserDirectoryProvider=127.0.0.1<br /><br />ldapPort@org.sakaiproject.user.api.UserDirectoryProvider=389<br /><br />basePath@org.sakaiproject.user.api.UserDirectoryProvider=dc=nldap,dc=com<br /><br />ldapUser@org.sakaiproject.user.api.UserDirectoryProvider=cn=manager,dc=nldap,dc=com<br /><br />ldapPassword@org.sakaiproject.user.api.UserDirectoryProvider=sakai<br /><br />log.config.count=1<br /><br />log.config.1=DEBUG.edu.amc.sakai.user.JLDAPDirectoryProvider<br /><br /> <br /><br />载入entry<br /><br />命令是ldapadd -f sldap.conf -l user.ldif<br /><br />user.ldif文件主要部分<br /><br />dn: dc=nldap,dc=com<br /><br />objectclass: top<br /><br />objectclass: dcObject<br /><br />objectclass: organization<br /><br />o: nldap<br /><br />dc: nldap<br /><br />dn: cn=manager,dc=nldap,dc=com<br /><br />objectclass: organizationalRole<br /><br />cn: manager<br /><br />dn: uid=wangqian,dc=nldap,dc=com<br /><br />uid: wangqian<br /><br />objectClass: top<br /><br />objectClass: person<br /><br />objectClass: organizationalPerson<br /><br />objectClass: inetOrgPerson<br /><br />mail: wangqian@sina.com<br /><br />userPassword: test<br /><br />givenName: Qian<br /><br />displayName: student<br /><br />sn: Qian<br /><br />cn: wangqian<br /><br /> <br /><br />注意到前面的sladp.conf中的index行，可以发现为了查询entry需要把属性列在index中。然后可以用命令<br /><br />ldapsearch -h localhost -p 389 -b "dc=nldap,dc=com" cn=wangqian即可。如果不能工作，说明配置有误，需要检查更改。<br /><br />然后再在sakai-src\providers下smaven sakai 即可。<br /><br />与登录时用户名对应的属性(attribute)是cn，登录密码对应的是userPassword。其次，sakai用户的Last  Name, First Name和email依次对应的ldap entry的attribute分布是sn, givename和mail（这些对应信息可以在jldap-beans.xml做相应修改）。用户类型默认的是student。
          <br/>
          <span style="color:red;">
            <a href="http://cjnajr.javaeye.com/blog/178726#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 02 Apr 2008 10:58:35 +0800</pubDate>
        <link>http://cjnajr.javaeye.com/blog/178726</link>
        <guid>http://cjnajr.javaeye.com/blog/178726</guid>
      </item>
  </channel>
</rss>