2010-07-05 215 views
1

我是一个与Hibernate集成的Java开源项目的贡献者。我对Open Source场景相当陌生(作为贡献者),并希望提供关于如何管理依赖关系的建议。管理OSS项目的依赖关系

在我们的项目中管理对Hibernate代码库的更改的最佳策略/方法是什么?

例如,在我们的代码深深依偎如下一行:

ResultTransformer transformer = new PassThroughResultTransformer(); 

这里默认的构造使我们的问题:

  • 这是Hibernate 3.2.x中细,
  • 在Hibernate 3.3.x中它被标记为已弃用,并引入了静态成员: PassThroughResultTransformer.INSTANCE
  • 在Hibernate 3.4中,默认的构造函数被删除。

有一个明确的岔路口,我们无法支持休眠3.2,并且在同一类中休眠3.4。

在我们的代码库中管理这些问题的最佳方法是什么?

为Hibernate的每个发行版分配项目似乎都是一场噩梦,尤其是在使用我们自己的功能发布进行分层时。

回答

1

您必须先决定要支持的版本。例如,如果您绝对想要同时支持3.2和3.4,则需要编写代码,在运行时可能会通过反射来做正确的事情。

您将失去使用反射进行编译时检查,但是您将支持库的两个版本。或者你可以说“从版本X开始,我们只支持Hibernate 3.3和更高版本”。

+0

反射工程。 – 2010-07-05 20:35:34