在che中增加EMF支持 – Day0:动机和第一步

42次阅读

共计 1050 个字符,预计需要花费 3 分钟才能阅读完成。

在 2016,eclipse che 在 2016 被发布。作为 eclipse 生态环境中的基于云的 IDE,乍一看它只是在浏览器中运行的一个 IDE。

然而,che 有一个很有趣的特性:可共享的工作空间。一个工作空间是指一个工程以及他的编译、调试、执行环境。传统意义上,工作空间是一个属于本地的概念,开发者在本地确保源码所需的工具都安装完备。而 che 使用 docker 容器来支持工作框架的可执行性。使得一个工作空间可以被多个开发者共享。这就减少了新的开发者加入一个组时,需要的那些配置环境等等的复杂操作。可以通过访问 https://www.eclipse.org/che/ 来了解更多。
毫无疑问,我们对这个新技术很感兴趣,其中一部分需要研究的就是“如何使用它以及和其他 eclipse IDE 相比它有多强大”。当然,作为技术开发者,我们更关心如何将 che 中没有的特性和框架加入并延伸至 che 中。我们是否能够将在 eclipse 里面创建的技术支持移植在 che 里面?
因此,我们进行的尝试便是:为 che 增加一个新的插件。我们的目的是了解和使用这个平台并最后给核心开发团队提供相关的反馈。因此,我们选择了一个我们熟悉的但 che 还没支持的特性:EMF(Eclipse Modeling Framework) 以及生成代码。EMF 是一个很实用的生成 java 中实体类的框架工具,可以自行去了解。
本文开始的一系列博客都将围绕在 che 中建立 EMF 支持展开。下图是我们目标的一个简单实例。

将这个实例分为几个部分

创建模型项目首先,我们想能够创建一个“样例项目”——一个由典型的 Ecore 包。主要包括一个.ecore 文件描述模型和一个.genmodel 文件进行代码生成。因此,我们需要扩展 che 使得它可以提供这个模板,让这个模板可以作为 sample 加载。在一开始,我们可能需要使用一个已有的模板项目,这样使得我们可以进一步实现接下俩的需求。

编辑 Ecore 文件和 GenModel 当然,我们也会想要修改这些人工写的包,所以我们需要编辑器能支持.ecore 和.genmodel 文件。

生成代码如题,为了这个目标,我们想找一个方法来将现有的生成器整合到 che 里面。最后,我们认为可以通过在 che 里加一个操作按键来触发代码生成。

编辑器修改我们想在编辑器里面方便的编辑和修改 Ecore 和 GenModels,所以需要一个可以支持树形 / 表单的编辑器。(如前面的图)

好消息是 Che 所有这一切都是可能的,我们在 Che 中实现了 EMF 支持的原型,以满足所有描述的要求。代码在这个仓库。

正文完
 0