Jdon框架5.5版本和JiveJdon3.5发布

JdonFramework 5.5版本经过严格的并发性能重构和测试,解决了以往框架中可能存在的内存泄漏漏洞,使用ThreadLocal以及java.concurrent等JDK5.0以上新的并行功能,增强了并行计算能力。

5.5版本经过并发性能重构后,可支持严酷的并发访问压力,结合JiveJdon3.5测试表明:可支持10分钟内数万不同客户端发出的请求,测试样本见JiveJdon3.5源码包下的JmeterTest.jmx,使用Jmeter打开,服务器端运行Jprofiler和JBoss服务器,注意:进行并发测试时,需要将concurrent_myaspect和concurrent_web.xml提到原来的myaspect.xml和web.xml,失效JiveJdon的防SPAM功能。

JdonFramework 5.5使用ehcache作为缺省的缓存器,以增强兼容性和伸缩性,分布式云技术开源产品Terracotta http://www.terracotta.org/ 可以将encache自动进行分布到多台服务器,这样,Jdon框架也能支持分布式缓存和计算(http://www.jdon.com/article/34888.html)。

JdonFramework 5.5将HttpRequest/HttpSession与框架剥离,Jdon框架可以只作为一个IOC/DI框架,使用在JavaEE 或Aplication或J2ME/JME/SWING等应用中,拓展用途。可运行框架源码包中的runTest.bat测试。

JdonFramework 5.5限制了Session周期的SessionContext中放置对象最大个数,防止应用者造成内存泄漏,最大个数可以在container.xml中配置定义。JdonFramework 5.5还对其他可能造成内存泄漏的地方进行重构,杜绝内存泄漏可能性,以保证基于Jdon框架开发的应用系统高性能 高稳定性。

JdonFramework 5.5是至今经过长期成熟运行考验和重构的稳定版本,5.5版本的源码经过并发性能重构,增强稳健型和快速性,是目前Jdon框架中最稳定的版本。建议用户升级到5.5版本,5.5版本需要JDK5/6


下载地址:
http://www.jdon.com/jdonframework/download.html

太好了, 尝鲜!

但是, 在jdk6.10 + apache 2.2 + tomcat 6.0.18集群环境下, 报错:
java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1295)
org.apache.catalina.ha.session.DeltaSession.setAttribute(DeltaSession.java:567)
org.apache.catalina.ha.session.DeltaSession.setAttribute(DeltaSession.java:551)
org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:130)
com.jdon.controller.context.web.HttpSessionWrapper.setAttribute(HttpSessionWrapper.java:21)
com.jdon.container.visitor.http.HttpSessionVisitorFactoryImp.createtVisitor(HttpSessionVisitorFactoryImp.java:54)
com.jdon.container.access.UserTargetMetaDefFactory.create(UserTargetMetaDefFactory.java:65)
com.jdon.controller.service.WebServiceFactory.getService(WebServiceFactory.java:70)
com.jdon.controller.service.WebServiceFactory.getService(WebServiceFactory.java:58)
com.jdon.controller.WebAppUtil.getService(WebAppUtil.java:81)

那jdon的发布包缺省就不支持集群了?

> Jdon框架也能支持分布式缓存

banq 大哥能否提供一个入门级的例子, 介绍一下怎么使用jdon 的分布式缓存, 即怎么将一些session的东西放在分布式缓存里, 共享给多个tomcat集群呢?

谢谢,辛苦了 !

激动,非常激动!
问一下banq老师,你会在下一个版本引入下面几个特性吗?
1,元注释,例如


@Stateful
@SessionContextAcceptable
public class AccountServiceImp implements AccountService {
}

@Poolable
@SessionContextAcceptable
public class ForumMessageShell ForumMessageService {
}

@Entity
@JdonCache
public class ForumThread {
}

2,JPA整合
3,ajax脚本支持,比如无刷新分页组件
4,@Stateful组件实现业务对话
[该贴被oojdon于2008-11-20 20:07修改过]

这个要支持下....

>Non-serializable attribute
放入session的对象都要执行接口序列化seriaXXXX

OOJDON概括的元注释名词很标准,能不能烦请你拿一个完整的元注释名词,这样我们就按照你这个定义为框架增加元注释功能。

持久层元注释就不需要了,可以直接用Hibernate和JPA。

至于AJAX,JiveJdon3.5就是现在用的这个论坛已经支持AJAX prototype.js 我个人认为无需加入框架这个层面,这样框架可以保持简单纯洁,主要以IOC/AOP为核心,完全可配置为特点,发挥短小精悍专业的特点,可以和其他专业框架无缝结合一起开发,不走Spring那种大而全,可以替代JavaEE标准的那套做法。

很多业务系统都是jdk1.4
如果要降到1.4 banq可以做点说明.

>>OOJDON概括的元注释名词很标准,能不能烦请你拿一个完整的元注释名词,这样我们就按照你这个定义为框架增加元注释功能
banq老师也太看得起我了,承受不起烦请两个字啊!这几个元注释也是jdon框架中已有的名词啊,至于持久层@JdonCache,一个好处是实体对象不再继承Model,第二个是使用JdbcTemp的时候做业务缓存,当然使用Hibernate/JPA的时候也可以打开。

>>持久层元注释就不需要了,可以直接用Hibernate和JPA
也就是说下一个版本会引入JPA?

至于ajax脚本支持,比如无刷新分页组件,我哪天有空了自己写一个出来玩一下,并且在第一时间把jdon框架的所有新特性使用到hibernate版jivejdon中,有人需要的直接找我要。希望国产Jdon框架被更多人看中和使用。

BTW:jdonframework.xml千万不要被元注释取代了,如果我要替换框架或者应用的一个组件,直接修改配置文件就行了,我不想改代码!


[该贴被oojdon于2008-11-20 20:46修改过]

>如果要降到1.4 banq可以做点说明
1.4在并行性能上基本不支持,JDK 也只有从5.0以后才引入并发计算一些特征。

>至于持久层@JdonCache,一个好处是实体对象不再继承Model,第二个是使用JdbcTemp的时候做业务缓存
使用JdonCache名称是否太特别?元注释名称最好是一个标准,否则换了框架,这些代码中元注释名称也要改,所以,Spring才要大家使用符合EJB标准的元注释名称,而且他也是向这上面靠。

想想:如果Spring再定义一套Spring Autowired之类元注释名称,Jdon定义一套JdonCache之类元注释名称,乱套了,从这里看出元注释不象XML的Schema语法,随便怎么定义都可以,我的应用程序从Spring移植到Jdon框架,只是XML配置更换一下,甚至无需源码或编译。如果是元注释,就要在代码中改,设计模式 OO一个宗旨就是:不要修改原有代码,破坏封装,使用继承拓展来实现新功能,可见OO对“动成熟源码”这个事情很忌讳。

能否解释一下,为什么下载页面的JdonFramework-5.5.zip下不了呢?

com.jdon.container.visitor.http.HttpSessionVisitorFactoryImp.createtVisitor(HttpSessionVisitorFactoryImp.java:54)

session 里放的是 HttpSessionComponentVisitor, jdon框架里的东西, 它没有执行接口序列化seriaXXXX

楼上意见正确,框架中HttpSessionWrapper没有执行序列化。已经更新,请你再下载试验看看,集群环境服务器要同步Session,所以会把Session中的数据进行通许传输,因为需要序列化。谢谢 注意经常下载最新版,有什么问题希望继续提出。
[该贴被banq于2008-11-21 11:33修改过]

jivejdon中的帖子一旦被人回复就不能编辑了,banq老师可不可以取消这个限制?

>jivejdon中的帖子一旦被人回复就不能编辑了
想想看:别人回复也许就是因为你帖子某句话,如果你编辑改变了,那么是不是别人的回复怎么办?如果别人没有回复,你怎么修改都可以。

>>别人回复也许就是因为你帖子某句话,如果你编辑改变了,那么是不是别人的回复怎么办?
呵呵,但我经常有发了帖但想再完善一下,或者根据回帖更改某些错误的想法,不过另外跟帖也可以,既然不能改变那就适应吧----适配器设计模式
报告代码错误,WebAppUtil


public class AppUtil extends DemoApplication {
private final static String module = WebAppUtil.class.getName();
}

>>JdonFramework 5.5将HttpRequest/HttpSession与框架剥离,使用在JavaEE 或Aplication或J2ME/JME/SWING等应用中

现在 getService(String name);不依赖HttpServletRequest?我可以将jivejdon中的WebAppUtil替换掉?

工具类AppUtil有构造函数,我必须new,String fileName意味着我只能传一个文件?
public AppUtil(String fileName) {
css.prepare(fileName, this);
}

[该贴被oojdon于2008-11-21 12:55修改过]