Griffon Ormlite 插件配置未获取环境设置
Griffon Ormlite plugin configuration not picking up environment settings
对于我的 griffon 桌面客户端应用程序,我正在尝试编写一些涉及 OrmLite 的测试。我已经使用 configuration section of the griffon-ormlite plugin guide 使用 java 配置文件配置了 OrmLite。我想要做的是将 OrmLite 配置为在测试期间使用不同的(空白)数据库。但是,应用程序没有选择测试配置,而是加载默认设置。
注意事项:
- 按照与配置指南中的src/main/resources/Ormlite.groovy完全相同的方式指定配置(上面的link)将导致抱怨缺少 "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")
)
)
);
}
}
非常感谢任何帮助。
恐怕问题在于基于 class 的 ResourceBundle 不提供对 environments
块(或与此相关的任何其他条件块)的支持,就像 Groovy 脚本做。我们最近向属性文件添加了这种支持(参见 https://github.com/griffon/griffon/issues/196);让我们需要为基于 class 的捆绑包添加相同的东西。
如果可以,切换到 Groovy 脚本配置作为解决方法,确保将 griffon-groovy
添加为项目依赖项。这将添加至少 ~7M 的依赖项。
我已提交 https://github.com/griffon/griffon/issues/212 以跟踪此功能。
对于我的 griffon 桌面客户端应用程序,我正在尝试编写一些涉及 OrmLite 的测试。我已经使用 configuration section of the griffon-ormlite plugin guide 使用 java 配置文件配置了 OrmLite。我想要做的是将 OrmLite 配置为在测试期间使用不同的(空白)数据库。但是,应用程序没有选择测试配置,而是加载默认设置。
注意事项:
- 按照与配置指南中的src/main/resources/Ormlite.groovy完全相同的方式指定配置(上面的link)将导致抱怨缺少 "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")
)
)
);
}
}
非常感谢任何帮助。
恐怕问题在于基于 class 的 ResourceBundle 不提供对 environments
块(或与此相关的任何其他条件块)的支持,就像 Groovy 脚本做。我们最近向属性文件添加了这种支持(参见 https://github.com/griffon/griffon/issues/196);让我们需要为基于 class 的捆绑包添加相同的东西。
如果可以,切换到 Groovy 脚本配置作为解决方法,确保将 griffon-groovy
添加为项目依赖项。这将添加至少 ~7M 的依赖项。
我已提交 https://github.com/griffon/griffon/issues/212 以跟踪此功能。