8

我正在考虑实现一两个 JSR API。我还没有阅读整个规范(计划是在编写实现代码时阅读它们)但我对它们非常熟悉。我读过 JSR 过程包括实现一个测试兼容性工具包 (TCK) 来测试所述 JSR 实现。

在我开始编写一堆单元测试来验证我的实现的正确性/完整性之前,我真的很想使用这个 TCK,但我不知道它是否可供我使用。下载所有文件并四处搜索后,我找不到任何可以定义为给定 JSR 的 TCK 的内容。

所以我的问题基本上是:为了生成我自己的 JSR 规范实现,我需要执行哪些步骤,以及如何验证我确实已经这样做了。

对于它的价值,我正在考虑实施 JSR-168 和 JSR-286,但我认为这与这个问题无关。

4

4 回答 4

9

您可能需要做的是联系给定 JSR 的规范负责人。他们可以为您提供有关获得 TCK 的更多信息。

您可能需要支付许可证才能访问 TCK。当然,对于 Java SE 规范,Sun 确实对 TCK 收取许可费,除非您有资格作为非营利组织免费接收它。

也就是说,我相信它因 JSR 而异,所以正如我上面所说,最好的办法是联系 JSR 规范负责人。

于 2009-04-23T11:28:26.853 回答
4

哇,这是一个非常雄心勃勃的项目,通常由公司或大型开源团队接管。如果你有足够的决心去做,我建议你看看一些开源实现。提到的 JSR 由Pluto实现。可能值得看看源代码分发。

于 2009-04-23T11:40:37.137 回答
3

对于我将要介绍的最坏情况,我深表歉意。

由于之前已经这样做了好几次,我强烈建议在您不仅阅读规范而且阅读 JSR 专家组的任何类型的电子邮件存档之前不要编写任何代码。

JSR 规范通常充满歧义,可以用多种不同的方式来解释。以一种非常有条理的方式浏览它会让您在专家组解散并变得没有反应之前尽快向专家组提出相关问题,希望如此。

TCK 通常是一组测试,不能确保您的实现即使在远程也能正常工作,它只是说您是规范的合法实现。

TCK 通常对一个人来说太贵了,无法购买。

显然,实现 JSR 的方式将取决于您所针对的操作系统和虚拟机。更好的 JSR 通常是可以用纯 Java 实现的。

祝你好运!

于 2009-06-06T14:35:42.883 回答
0

如果已经有一个有效的实现,你为什么要实现一个规范?似乎做了很多不必要的工作而没有什么好处......

于 2009-04-23T11:22:51.423 回答