`
liuyf
  • 浏览: 34373 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

sakai 应用开发的hello world

阅读更多
本文先生成一个具体的系统,让大家有感性的认识,再对代码做一些简单的分析。
本文的前提是安装 sakai project app builder;同时你得安装maven,并能简单的使用。http://blog.csdn.net/totogogo/archive/2007/12/17/1942867.aspx这篇文章讲了maven 的编译生命期,讲得那是很不错。
采用Sakai Project App Builder,如下图:



选择Project Type为Wicket,Implementations为Hello World app,Sakai  version为K1(2.6.x+)
用cmd到项目的目录下,输入mvn package,在tool目录下有一个target目录,会找到一个sakaiapphelloworld-tool-0.1.war文件。
将这个文件拷到sakai部署的webapps目录下,重启sakai就可以了。
接下来,在浏览器中安装并测试工具。
点击”Sites”,选择一个站点,点击”Add/Edit pages”,到达Page编辑,点击”New Page”,增加一个Page,随便其个名字,点击下面的”Continue Editing Tools”,在工具列表中选择sakai-app-helloworld,如下图:



保存后,算是安装好了。
接下来到达对应的”Site”,就可以看到效果了:



下面说说代码结构。
带着这么一个疑问去看代码:示例产生了什么代码,使得在浏览器中的后台能看到并选中相应的工具。
这个helloworld的包类结构如下:



经过阅读,里面的四个.java 文件,都是和为实现Wicket渲染的代码,并没有主动注册的代码块。
那么,推断该工具是被动注册的,即sakai框架主动加载工具,那么在xml配置文件中就一定有相关信息。
于是,用dir列出该工厂下的所有文件,观察到一个“可疑文件”,”sakai.sakaiapphelloworld.xml”,打开,有下面的描述:



看字段命名推测,再看值肯定,这里就是注册的配置了。
有了推测,我们再找到内核,tool/impl/ToolComponent.java,里面有一个register函数,也发现确实是取这几个字段的。
为了让你看得明白,我们再来跟踪注册过程。
在 调试中才发现,原来注册是在ActiveToolComponent.java中。
有如下堆栈:



其中ToolListener.contextIntialized实现如下:



如上面注释中说的,这个函数找出webapp目录下/tools目录中的资源进行注册。
  • 大小: 18.8 KB
  • 大小: 7 KB
  • 大小: 7.6 KB
  • 大小: 12.5 KB
  • 大小: 7.4 KB
  • 大小: 7.4 KB
  • 大小: 10.3 KB
1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics