是否可以在安装后修改由资源处理器创建的工件,而不必重新创建包含的部署程序包?

时间:2020-01-28 20:39:54

标签: osgi

我正在研究资源处理器(OSGi纲要,6.0.0,114.10),该处理器解析YAML文件并通过游戏的Item Admin服务创建Items。我想作为部署程序包(cmpn,114.2)进行部署:

  • 框架:运行游戏所需的所有服务/处理器(包括项目,区域,模型,子画面,用户界面等服务)。所有服务/处理器均作为捆绑包提供,独立于Framework软件包。该框架是服务/处理器的特定组合,用于创建某种类型的游戏(平台,RPG,fps,沙盒等)
  • 游戏:包含框架处理的资源。

框架包含Item Admin服务和Item Resource Processor。游戏包含YAML资源,这些资源包含包含剑在内的物品的定义。

id: sword

游戏还包含用于物品相关属性的资源处理器和服务,例如通过物品伤害管理服务击中物品时造成的伤害:

item:
  id: sword
damage: 10

玩家玩游戏并享受游戏。他们唯一的抱怨是他们希望剑能造成更多的伤害。他们想看看,如果剑造成的伤害超过开发商指定的伤害,是否会更有趣。他们也想尝试很多其他值(3、40、100、500、99999),而又不会增加迭代的负担。

物品损坏管理员提供了一种设置物品造成的损坏的方法,setDamage(item: Item, damage: Int)。物品损坏资源处理器使用此方法设置安装游戏时物品的损坏。

问题

玩家可以在不使用资源处理器的情况下,以持久的方式修改剑的伤害,而不必重新创建游戏部署包吗?

资源-部署包中的一个文件,经过处理以在框架中创建构件。 例如,捆绑,配置和权限是不同的资源。 -(cmpn,114.1.2)

工件-从部署包中的资源创建的构造。资源可以 有零个或多个与之相关的工件。工件没有通用的界面,因为它们 性质不同,资源处理器服务抽象了它们的存在。神器必须 删除其相关资源后将其删除。工件的一个例子是配置 从部署程序包中的配置文件创建的对象。 -(cmpn,114.1.2)

部署程序包是一组相关的资源,需要将其作为单元而不是单独进行管理 件。例如,一个部署程序包可以同时包含捆绑软件及其配置 数据。部署软件包的资源与部署软件包紧密相关,并且 无法与其他部署程序包共享。 -(cmpn,114.2)

部署包将拥有其资源。如果卸载了部署软件包,则其所有资源, 因此,也必须将其文物去除。所有权模型遵循不共享 原则:部署程序包之间不共享相等的资源。 -(cmpn,114.2.2)

由于资源(包含物品损坏的YAML文件)创建了0..n伪像(物品损坏对象/关联),并且资源不得在部署包之间共享,这是否也意味着物品也不能在部署包之间共享?还是我可以在安装游戏后的某个时间修改Artifact,而不必更新部署包,只要在删除资源后仍可以删除Artifact?

0 个答案:

没有答案