源码浅析Eclipse平台地EOSStudio架构(选).docVIP

源码浅析Eclipse平台地EOSStudio架构(选).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

静待花开 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档