Griffon Ormlite插件配置没有获取环境设置

时间:2017-02-18 13:11:17

标签: java ormlite griffon

对于我的griffon桌面客户端应用程序,我正在尝试编写一些涉及OrmLite的测试。我使用configuration section of the griffon-ormlite plugin guide为OrmLite配置了java配置文件。我要做的是配置OrmLite在测试期间使用不同的(空白)数据库。但是,应用程序没有获取测试配置,而是加载默认设置。

注意事项:

  • 在配置指南(上面的链接)中以与 src / main / resources / Ormlite.groovy 完全相同的方式指定配置将导致插件抱怨缺少“default.url” “ 设置。所以要么这个例子是错的(它可能已经过时,但这不太可能)或者我遗漏了一些关于环境的东西(在阅读之前是否正在转换配置?我没有找到任何关于此的文档)。
  • application environment枚举,在测试期间正确导致Environment.TEST,在运行期间正确导致Environment.DEVELOPMENT。
  • 版本:griffon 2.9.1,griffon-ormlite 1.1.0

这是配置文件:

import java.util.Map;

import griffon.util.AbstractMapResourceBundle;

import static griffon.util.CollectionUtils.map;

public class Ormlite extends AbstractMapResourceBundle {
    @Override
    protected void initialize(Map<String, Object> entries) {
        map(entries)
            // the default database setting
            .e("database", map()
                .e("url", "jdbc:h2:internal")
            )
            .e("environments", map()
                .e("test", map()
                    // the database that should be used during testing, but is not being picked up
                    .e("database", map()
                        .e("url", "jdbc:h2:mem:internal-test")
                    )
                )
            );
    }
}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

我担心问题在于基于类的ResourceBundles不像Groovy脚本那样提供对environments块(或任何其他条件块)的支持。我们最近为Properties文件添加了这种支持(参见https://github.com/griffon/griffon/issues/196);让我们需要为基于类的包添加相同的内容。

如果可以,请切换到Groovy脚本配置作为解决方法,确保将griffon-groovy添加为项目依赖项。这将增加至少约7M的依赖性。

我已提交https://github.com/griffon/griffon/issues/212来跟踪此功能。