todo 列表:


相关帖子：可以将一个帖子拖到另外一个帖子中，形成相互关系，便于阅读者深入研究。

转推、收藏或稍后保存（类似 Instapaper 或 Read It Later 等服务）
转推功能也可以用在jivejdon http://apple4.us/2009/11/evan-williams-on-why-twitter-reforms-retweeting.html
转推是介于顶 和回复 之间的一个功能

被收藏 分享次数
要对阅读者对一篇文章阅读后产生的各种动作进行记录 如顶次数
被收藏 分享次数
对人关注数：该人任何动作被记录下来。
log模式，对阅读者各种事件自动记录，并能很好拓展。
用户下一次登录可以得到上次登录以来新的主题贴列表。


会员等级积分制度
 
已经完成:
1. RSS输出 2007年10月已经完成 
3. 站内消息  2008年6月完成 xinying_ge@yahoo.com.cn
4. 管理界面对上传图片浏览管理 完成
5. 权限系统通过管理界面设置   bestxuchao@hotmail.com
6. 屏蔽隐藏话题  2007年10月已经完成 
8. 管理界面：Hot关键词 CRUD 类似查封IP地址 完成
9. 标签 帖子内容分类：随着帖子内容增多，需要对一些内容再详细分类，比如RoR技术出来后谈得多，
那么就分一个RoR类；提供开放源码下载帖子偶尔出现，但是如果能分类供大家学习，也需要分类。
10.博客功能 每个用户发表的主题贴在博客页面显示，博客首页可以自定义页面。
11.精华贴  在ApprovedSpec中规定发帖10个以上，有标签的主题可以成为精华贴。
12.手机浏览器浏览贴 参与讨论。
13.更安全的验证码 参考http://www.jdon.com/jivejdon/thread/37104
14.订阅：基于标签的订阅。基于事件的监测监视。
   1. 新标签加入 发消息或邮件
   2. 某主题新回复，发消息或邮件
   3. 收藏功能，每个用户能够将自己感兴趣的帖子收藏，形成自己的知识库。
15.防止抓取软件在不同主题之间并非访问。
16.顶功能
17.关注跟随 订阅功能
18.置顶公告功能
19.会员头像
20.手机浏览器自动识别，手机浏览器浏览http://www.jdon.com/jivejdon/thread/38177将自动
   转到手机格式，http://www.jdon.com/jivejdon/mobile/将自动确定是否为手机浏览器。
   手机发布回复。
21.享道转享，可以将随时将自己看的文章收藏并且评论。
22.一旦有人发帖，1小时内无论注册或非注册用户将收到消息通知。
22.帖子中带@用户名，将给该用户发一条消息通知他，有人在某个帖子中提到他。类似微博功能。
23.新增关注新浪微博通知，注册用户关注某人或某主题后有新内容，发送消息到他的新浪微博上
24.完善的静止爬虫或下载软件功能。(真正运行环境需要和iptables和fail2ban等配合)

jdonframework

需要将被观察者和观察者集中在框架容器，然后，被观察者的每一次调用必须被容器知晓。
 
增加Domain Event到框架中，形成Entity和外部联系的消息事件通道。改变传统将Entity作为数据消息被传送的架构。
@eventSource("subscription", asyn=true)
void addNewMessage(){
  ....
}

@eventAction("subscription", asyn=true)
void action(){
  System.out.println("hello");
}

同步消息：CommandEvent --> CommandMessage 同步事件产生命令消息，然后在接受者receiver按照Queue进入先后次序执行
异步消息: asynEvent -- >AsychronMessage 异步事件产生异步消息，然后在接受者receiver按照Queue进入先后次序执行。

subject:
在框架中扫描eventSource和eventAction，然后将相同名称的方法名放入，形成one-many Hashmap.
实体对象就必须由框架产生，否则如何知道是哪个实体对象被标注了eventSource？
在Controller时，Model是由框架产生的，不过用于Struts与Form的参数传递，由前向后：request Event --> struts Form -->Model -->Service
现在必须由框架负责由后向前：当Model从持久层产生，就是由Factory或Dao创建  ----> Form -----> View
 
实体对象如不由框架产生，那么就必须通过植入代码和接口，就类似观察者模式实现一样。不过，这就无需@注解了。


@Model("user")
Model的CRUD操作可以在Model类中进行
@Key   表示主键
@Handler(service="accountService",ModelForm="accountForm")

@Hanlder(ModelForm="accountForm",Model="user")
在service接口方法上标注
@init
@get     HTTP.GET
@create  HTTP.POST
@update  HTTP.PUT
@delete  HTTP.DELETE


以下是MVC界面层的一个配置，不应该在Model或Service中与其耦合。
引入REST以后，就不是这段配置了。
<model key="username"
			 class="com.jdon.jivejdon.model.Account">
			 <actionForm name="accountForm"/>
			 <handler>
				 <service ref="accountService">
					<initMethod   name="initAccount"/>
					<getMethod    name="getAccountByName"/>
					<createMethod name="createAccount"/>
					<updateMethod name="updateAccount"/>
					<deleteMethod name="deleteAccount"/>
				 </service>
			 </handler>
</model>






   
   
      