Open Tools框架
在Open Tools 框架中,能对JBuilder的很多功能进行扩展,对J2EE应用服务器支持的扩展就是其中之一。在JBuilder7.0/8.0版本中,已经不采用AppServer机制了,而是提供了Server Plugin机制。JBuilder还提供了一种Legacy机制,可以将基于以前版本JBuilder的应用服务器扩展集成到7.0/8.0版本中。
此外,JBuilder还提供了一种Server Configuration机制,支持对应用服务器进行配置,并保存配置。针对目前使用最广泛的JBuilder7.0及以上版本,为了实现对一个新的第三方J2EE应用服务器的支持,应该采用Server Plugin和Server Configuration机制。因此,对这两种机制,在这里有必要简要介绍一下。
(1)Server Plugin机制
Server Plugin主要涉及三个方面的内容,Server,Service,Plugin。Server指的是一些特定版本的应用服务器,例如Borland Enterprise Server 5.0等。Service是应用服务器所支持的特性,例如EJB等。
Plugin指的是一些classes,可以使Server和Service在JBuilder中注册,以便能在JBuilder的集成开发环境中被使用。每个Server类的子类实现都代表一个应用服务器,该子类可以根据情况包含不同的Services。
在JBuilder启动时,Server类的子类能够通过工具类ServerManager将自己及自己支持的Services注册到JBuilder中。该注册过程位于必须实现的方法initOpenTool()中。
方法initOpenTool()是一个很非凡的方法,它不是由任何接口或虚类指定,但任何想接入JBuilder中的插件都必须提供该方法来将自己注册到JBuilder中。JBuilder 将根据是否提供该方法来自动发现第三方提供的插件,并自动将其按插件方式载入。
ServerLanUCher则是支持Server 启动的类,能提供Server 启动所需的各种信息并且提供了在Server启动和停止的各个阶段插入代码的接口。它由Server来创建。
(2)Server Configuration机制
JBuilder中使用任何一个应用服务器,都必须先进行配置。JBuilder启动后,通过JBuilder菜单中的Tools->Configure Servers,可打开Configure Servers对话框。在该对话框中可以看到,左边是Server列栏,右边是Server的常规配置信息和定制的配置信息。
当一个Server的OpenTool通过ServerManager实现了注册,这个Server将出现在Server列表栏中。选择Server,并对Server进行配置后,注册的Server就可以在JBuilder中使用了。这一配置机制就是JBuilder提供的Server Configuration机制。
该机制能将配置的信息保存起来,下次启动JBuilder时,它就能读取先前的配置,并根据该配置查找类库。假如找不到匹配的Server库(比如已经删除),则该Server在对话框的Server列表栏中显示为红色。
OpenTools API
在OpenTools框架中,和集成J2EE应用服务器相关的API都在包com.borland.jbuilder和包com.borland.primetime中。TongWeb Open Tools是为了将应用服务器TongWeb集成到JBuilder而开发的,它是JBuilder OpenTools框架的一个具体实现。
目前,已经完全支持在JBuilder中基于TongWeb 应用服务器进行EJB和jsp/Servlet的开发、部署、运行以及动态调试。为了实现上述功能,我们需要解决下列问题:
1、Server治理,包括Server的注册载入,Server的启动等;
2、Ejb部署描述符的生成;
3、Jsp/Servlet 的编译;
4、动态部署;
5、动态调试;
6、配置治理,包括Project Properties,Configure Servers等。
TongWeb Open Tools可以划分为6个模块,即Server模块,Generic deploy code(部署代码生成)模块,JSP/Servlet Compiler模块,Deploy(动态部署)模块,Configure模块和动态调试模块。
TongWeb Open Tools的最终产品是一个TongWebOpenTool.jar文件,只需要将这个文件拷贝到 \lib\ext目录下,就完成了产品的安装。完成产品安装后,在JBuilder中就可以轻松的开发,部署应用程序到TongWeb3.4应用服务器上了。