JFox(J2EE应用服务器开源项目)

JFox 核心 - JFoxKNL


(by huihoo.org JFox项目组)

初稿:orbat (young_yy@hotmail.com)

JFoxKNL核心功能

JFox 的核心建立在 JFoxMX 1.2之上,JFox 的整个结构体现面向服务编程的思想(Service Oriented Programming),一个服务或者一个功能通常作为一个服务用 MBean 来封装,将各J2EE 以及提供基础功能各组件间的耦合性降到最低,便于通过 Internet 来进行合作开发。

JFox 核心不仅将提供了JMX提供的功能:HttpAdaptor,Notification,MLet,Timer,Monitor,Relation等功能,还将提供一下功能;

1、 日志记录,logging
2、 对象持久性功能,persistent
3、 池功能,用于创建连接池,缓冲池等,pool
4、 配置功能,用于读入和运行时查看和改变配置,config
5、 服务控制,用于统一管理已经注册到JMX中的服务,ServiceManager
6、生成服务代理,Proxy

JFox 提供了 org.huihoo.jfox.ServiceSupport 抽象类,所有的服务MBean(如:JMS服务)继承它,它提供了 doCreate(), doStart(), doStop(),, doDestory() 四个抽象方法,这四个方法是每个具体的服务必须要实现的

doCreate(): 资源初始化
doStart():启动服务,服务进入等待状态;
doStop():服务暂停,不再接收请求
doDestroy():服务资源销毁,需再次调用 doCreate() 重新初始化资源

ServiceSupport 已经为每个服务初始化了一个 Logger,是 java.util.logging.Logger 一个实例,但是这个Logger 收到 LogService 的控制,我们可以通过 HttpAdaptor 管理,ServiceSupport也提供了 getLogger() 方法获得 Logger 的实例。

ServiceSupport 也提供了 getInstance() 方法,这个方法该服务的代理对象引用(Proxy),关于 Proxy 的更多的知识请参考 java.lang.refect.Proxy 及其相关的资料,通过 getInstance,我们在获得了 JMX 的可管理性的同时,不必再去为繁琐的 MBeanServer 调用而烦恼了,而就想直接通过该服务的硬引用来执行一样。

ServiceSupport 也加入服务状态的控制代码,这样,我们在 HttpAdaptor 上可以直接看到某个服务当前的运行状态,而这个状态不必我们在每编写一个服务的时候都去自己设定。

要获得 ServiceSupport 的所有这些默认的功能,只需要继承它就可以了。

服务的编写方法:
一个具体的服务,应该继承 ServiceSupport,并实现它的 MBean 接口,这个MBean接口继承 ServiceSupportMBean,并加入自己独有的方法。

下载并安装JFoxKNL

从http://sourceforge.net/projects/jfox/ 下载 jfoxcore-0.1.0
解压后运行bin/xmlet-agent.bat
JFoxKNL核心启动时状态:


JFoxKNL javadoc

浏览 JFoxKNL javadoc >>>

更详细的文档正在完善中