OFBIZ 9.04模块化结构分析

component是什么:component包含2大类,完整的APP应用,如accounting、product、marketing,以及某个功能模块及基础服务,如entity、security、service。每个component目录下有对应的ofbiz-component.xml。OFBIZ特色就是所有的功能模块都是component。



如何组织:所有的component向component-loader.xml进行注册,其目的是描述该文件夹作为独立的component。通常以目录名称作为component-location。在每个component目录下面,存放ofbiz-component.xml文件,用于描述该component相关信息,如entity-resource的定义文件目录及路径、test-suite的路径描述、classpath路径描述、service-resource。如果是APP,还可以描述APP的虚拟路径。



如何新增加component-loader:在base的config下面,有component-load.xml,该文件描述了当前系统中,需要被加载的所有component-loader,是所有component-loader的注册中心。当需要增加新的component-loader时,需要在相应的目录下新增component-load.xml,并向base/config的component-load.xml注册中心进行注册。



load-components与load-component的区别:load-components用于描述多个component-load.xml,load-component用于描述单个component-load.xml。load-components只描述下级load-component的路径。而load-component描述component路径和名称,路径是必须的。

例如:A component-load底下还包含B component-load,B包含多个component,那么B想A做注册的时候,就必须使用load-components,用于递归。A向base注册的时候,也是load-components。B底下的component如果没有再包含component,则使用load-component。



一个ofbiz-component包含哪些:classpath、depends-on、resource-loader、entity-resource、service-resource、test-suite、keystore、webapp



目录划分:从svn checkout(https://svn.apache.org/repos/asf/ofbiz/branches/release09.04)出来后,可以看到它的目录结构

applications:存放OFBIZ自带的应用,包括accounting、humanres、order、party、content等等

framework:底层框架及基础服务、工具,包括base、start、entity、security、minilang、testtools、datafile等等

hot-deploy:该目录只有一个说明文件,官方的用意是存放应用开发者本身的应用。

This is a hot-deploy component directory.

All components in this tree will be loaded after the OFBiz components, including those in::

framework

themes

applications

specialpurpose

runtime:运行时数据。这里的运行时数据是指OFBIZ运行时产生的日志,或者安装时生成的配置文件以及其他的临时文件。为什么会有运行时的数据?这个是因为目前的OFBIZ本身嵌入了tomcat,用David的原话翻译过来是说,目前是OFBIZ里面嵌入了tomcat,而不是tomcat下面运行着OFBIZ。

setup:安装时,自动配置脚本生成的相关配置。例如:将OFBIZ迁移到外置的tomcat6下面时,使用 java –jar setup tomcat6,这时会在setup下面生成tomcat6相应的配置。如何将OFBIZ进行APP容器的迁移,会在下一篇文章中描述。

specialpurpose:顾名思义,特殊用途。里面存放OFBIZ开发人员为某些特殊领域或者模块定制的功能,例如:pos、googleCheckout、ebay、ecommerce等等

你可能感兴趣的:(ofbiz)