Как реализовать спецификацию JSR - PullRequest
6 голосов
/ 23 апреля 2009

Я рассматриваю реализацию одного или двух JSR API. Я еще не прочитал всю спецификацию (план состоит в том, чтобы читать их, когда я кодирую реализацию), но я очень знаком с ними. Я прочитал, что процесс JSR включает в себя реализацию Test Compatibility Kit (TCK) для тестирования указанных реализаций JSR.

Прежде чем я начну писать несколько модульных тестов для проверки правильности / полноты моей реализации, мне бы очень хотелось использовать этот TCK, но я понятия не имею, доступен ли он для меня. После загрузки всех файлов и поиска в Google я не смог найти ничего, что можно было бы определить как TCK для данного JSR.

Итак, мой вопрос в основном: какие шаги мне нужно сделать, чтобы создать собственную реализацию спецификации JSR, и как мне убедиться, что я действительно это сделал.

Что бы это ни стоило, я рассматриваю возможность реализации JSR-168 и JSR-286, но думаю, что это не относится к этому вопросу.

Ответы [ 4 ]

9 голосов
/ 23 апреля 2009

Что вам может понадобиться, это связаться со спецификацией для данного JSR. Они могут дать вам больше информации о получении TCK.

Возможно, вам придется заплатить лицензию, чтобы получить доступ к TCK. Разумеется, со спецификацией Java SE Sun действительно взимает лицензионный сбор за TCK, если только вы не квалифицируетесь как некоммерческая организация, чтобы получить его бесплатно.

Тем не менее, я считаю, что это варьируется от JSR к JSR, поэтому, как я уже говорил выше, лучше всего связаться со спецификацией JSR.

3 голосов
/ 06 июня 2009

Прошу прощения за наихудший сценарий, который я собираюсь представить.

Сделав это несколько раз прежде, я настоятельно советую не писать ни одной строки кода, пока вы не прочитали не только спецификацию, но и любой вид почтового архива из группы экспертов JSR.

Спецификации JSR обычно полны неоднозначности и могут интерпретироваться различными способами. Изучение этого вопроса очень методичным способом позволит вам задать соответствующие вопросы экспертной группе достаточно быстро, прежде чем она распадется и, как мы надеемся, перестает отвечать.

TCK, как правило, представляет собой набор тестов, которые не гарантируют, что ваша реализация работает даже удаленно, а просто говорят, что вы легально реализуете спецификации.

ТСК, как правило, слишком дороги для одного человека.

Очевидно, что способ реализации JSR будет зависеть от того, на какую операционную систему и на какую виртуальную машину вы нацелены. Более приятные JSR - это обычно те, которые могут быть реализованы на чистой Java.

Удачи!

3 голосов
/ 23 апреля 2009

Ого, это очень амбициозный проект, обычно принимаемый компаниями или крупными командами с открытым исходным кодом. Если вы полны решимости сделать это, я рекомендую вам взглянуть на некоторые реализации с открытым исходным кодом. Упомянутые JSR реализуются с помощью Плутон . Возможно, стоит взглянуть на дистрибутив исходного кода.

0 голосов
/ 23 апреля 2009

Почему вы хотите реализовать спецификацию, если уже есть работающая реализация? Похоже, много ненужной работы за небольшую выгоду ...

...