- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
源码浅析Eclipse平台地EOSStudio架构(选)
构件体系
基本结构
一个EOS项目的基本包含关系是“构件项目-构件包-构件-构件单元”。
其中构件包是最小的可发布单元。构件项目是构件包的集合,只是多包括了一个WEB模块。
构件关系
构件注册
各种类型的构件通过扩展插件的形式动态的加入Workbench。
扩展点com.primeton.studio.workbench.model描述了一个构件类型所需要的必要信息,通过实现该扩展点来添加新的构件类型。
其中:
fileExtension:该构件支持的文件后缀名,以逗号分隔
label:该构件的显示名称
allowSubfolder:是否支持多层目录
factory:构件工厂类,必须实现接口IModelFactory
imageProvider:构件图像提供类。可选。
interceptor:构件生命周期拦截器。
contentProvider:构件内容提供类。可选。
第一次启动构件类型注册表(ComponentRegistry)时,它会获取所有实现了构件类型扩展点的实现,解析它们的内容,将这些类型加入构件类型注册表中,以ComponentDescriptor类的格式进行描述。
ComponentRegistry提供了多种接口可以查询构件类型方面的信息。
另外,如果factory类实现了IModelFactory2接口,则具备动态配置扩展的可支持的文件类型(如jsp构件类型插件)
构件创建
NodeFacotry提供了构件项目、构件包、构件的创建API。
构件的具体创建方法由构件定义(ComponentDescriptor)中所指定了负责构件创建的IModelFactory接口来定义。
构件下面的构件资源的创建由每个构件给出具体的向导来完成。
构件载入
构件资源的载入由LoadNodeOperation完成。ResourceManager的load???()方法提供了具体的载入逻辑。
构件引用
内部引用
内部引用指的是API一级的相互引用。
UnitID是独立于构件类型的规范的构件,是由(构件包名,构件名,资源名,构件类型)所唯一确定的一组数据,可以标识任意合法的构架资源,是构件之间的引用的标准格式。
IModelFactory接口给出了将UnitID转换成具体构件的String类型ID的方法。
ReferenceTable:构件资源引用表。以UnitID的格式保存了各个构件资源之间的双向引用关系。通过其API可以查询到各个构件的引用和被引用情况。这些信息在每次编译的时候通过解析构件资源的语意(重载EOSUnit.getReferenceUnits())获取更新,并缓存到eclipse的配置目录中以便下次可以获取即时的引用信息。
外部引用
构件通过打包后可以由其他项目引用。
默认所有的构件均为可导出的。实现IExportable接口的IEOSNode可以定义该接口是否可导出。无论构件资源是否可导出,打包时均会置入引用包中。现在实现该接口的IEOSNode包括构件包和构件。
ICompiler中LoadCompiledUnit接口负责载入打包后的构件包里面的构件内容,不可导出的构件资源将不会载入。
构件元信息
WorkspaceMeta:仅当工程下面的目录具备.eos文件时,它才会被识别成一个合法的构件容器EOSFolder
ProjectMeta:项目相关的信息(TODO:deprecated。工程根目录下的.eos文件没有太多存在的必要了,相应的META信息可以一同放在项目的配置文件中)
DeployMeta:Server所需要的元信息格式。
其他接口
资源
Stub类原是桥接Eclipse资源与EOS模型的一种类。今后可考虑用Adapter而不是直接实现IResource系列接口的方式来实现。
ResourceManager是对外的资源管理类,提供了大部分与资源相关的接口(考虑今后将显式的API重构为隐式的API,如removeNode(IEOSNode node)变为IEOSNode.remove(),提高API的使用便利性。但remove()方法实现内部则调用ResourceManager.removeNode(this))。
同时ResourceManager维护着两个表:
“ 资源 - 构件 ”检索表
“ 文件路径 - 构件 ”检索表
事件体系
Eclipse事件
EOSResourceListener负责一般的构件资源事件处理
EOSProjectAdditoinListener负责项目的打开、关闭事件处理
EOSClassPathListener负责.classpath文件内容与web模块下JAVA源文件夹的同步
Studio事件
在执行Load、Add、Remove、Compile等构件操作后,Resou
您可能关注的文档
最近下载
- 环保概论第八章(林).ppt VIP
- 预防静脉输液外渗制度.docx VIP
- 超星网课《社会科学方法论》超星尔雅答案2023章节测验答案.docx VIP
- 中外设计史:中国古代设计史PPT教学课件.pptx
- 翻译美学视角下影视字幕翻译研究.doc VIP
- 基孔肯雅热防控指南.pptx VIP
- 高考新课标卷:2025年-2023年《化学》考试真题与参考答案 .pdf
- 23秋国开(天津)地方政府学终结性考核答案.docx
- 《桥梁养护与加固》教案.docx VIP
- Unit 2 My family(Period 3)(教学设计)-2024-2025学年人教大同版(2024)英语三年级上册.docx VIP
原创力文档


文档评论(0)