기술 호환성 키트

Technology Compatibility Kit

TCK(Technology Compatibility Kit)는 적어도 명목상으로는 Java 사양 요청(JSR)의 특정 구현에 대해 적합성을 검사하는 시험 모음입니다.Java Community Process에서 비준된 JSR에 필요한 3가지 요소 중 하나로, 다음과 같다.

컨텐츠 및 아키텍처

TCK는 주어진 JSR의 사양 리드로부터 얻는 경향이 있다.이러한 애플리케이션은 일반적으로(그러나 항상은 아님) TCP/IP를 통해 테스트 중인 디바이스 또는 Java 가상 시스템과 통신하는 그래픽 호스트 애플리케이션으로 구성된다.테스트는 일반적으로 HTTP를 통해 디바이스에 의해 획득되며, 결과는 유사한 방법으로 호스트 애플리케이션에 다시 게시된다.이 디커플링을 통해 TCK를 전체 TCK 호스트 애플리케이션을 실행할 수 있는 전원이 없는 CLDC 휴대전화와 같은 장치에서 가상 머신을 테스트할 수 있다.

JSR에 포함된 시험은 JSR 규격의 문장에서 도출한 것으로 추정된다.주어진 API에는 오류 조건을 포함하여 의도한 방식으로 동작하는지 확인하기 위한 일련의 테스트가 있을 것이다.

주어진 JSR 준수를 명시하기 위해, 자바 구현은 관련 TCK를 통과해야 한다.예외는 사양 리드와 협상해야 한다.이 때문에, TCK는 JSR을 구현할 때 매우 중요하다.첫 번째 큰 이정표는 우선 TCK를 실행하는 것인데, 여기에는 반드시 일정 수준의 성숙도를 가진 자바 구현과 기본 네트워킹 스택이 수반된다.다음으로, TCK는 적절하게 구성되어야 한다 - 구현에 대처할 수 있을 만큼 충분히 유연해야 하기 때문에, 많은 옵션이 있다. (예를 들어, JSR135에 대해 지원되는 모든 미디어 형식과 관련 옵션 컨트롤을 나열하는 것)또한 특정 테스트에는 일부 설정 활동이 필요하다. 이는 각 오류를 발생시키기 위해 자바 구현이 올바른 상태에 놓여야 하기 때문에 오류 조건에서 올바른 동작을 보장하는 테스트에 특히 복잡한 경향이 있다.마지막으로, 각 불합격 시험은 반드시 고쳐야 하며, 일반적으로 일반적인 결함 추적 메커니즘에 의해 처리된다.

일부 자바 구현자는 TCK가 통과하면 그들의 제품이 주로 완성된다고 생각한다.TCK가 꽤 포괄적이라는 것은 사실이지만, 그들이 다루지 않는 많은 분야들이 있다.여기에는 선택적 기능뿐만 아니라 성능도 포함된다.비록 JDTS와 같은 추가 테스트 제품군이 도움이 될 수 있지만, 이러한 단점을 해결하기 위해 많은 실제 테스트를 하는 것 외에는 다른 대안이 없다.

Java 플랫폼용 TCK

특정 Java 플랫폼에 대한 기술 호환성 키트를 JCK(Java Compatibility Kit)라고 한다.오라클과 라이센스 소유자가 플랫폼의 호환 가능한 구현을 보장하기 위해 사용하는 광범위한 테스트 제품군이다.

JCK for Java 6.0 소스 코드가 출시되었다.[1][2]관련 라이선스는 처음에 사용자가 테스트를 컴파일하거나 실행할 수 있도록 허용하지 않았지만,[3] 코드를 볼 수 있는 권리는 우려사항과 관련이 없으며, 소스 코드에 대한 공개 코멘트가 허용된다.[1]그러나 OpenJDK가 출시된 이후 특정 라이선스는 OpenJDK 컨텍스트에서 JCK를 실행할 수 있도록 허용하는데, 이는 실질적으로 OpenJDK에서 도출되는 모든 GPL 구현을 위한 것이다.[4][5]

OpenJDK Community TCK 라이센스 계약 v 2.0은 2011년 12월부터 Java SE 7 규격에 대해 발행되었다.[6]

TCK 프레임워크

JavaTest 하니스 도구는 오늘날 구현 컴플라이언스를 검증하는 데 사용되는 가장 일반적인 장치 테스트 프레임워크다.TCK 시험을 실행하도록 설계된 범용 시험 프레임워크다.그러나 일부 규격은 JUnit 또는 TestNG도 사용하고 있다.[7]

면허증 및 논란

Sun의 OpenJDK 출시 이후,[8] Sun은 OpenJDK에서 실질적으로 도출된 GPL 구현에 대해 OpenJDK 컨텍스트에서 TCK 실행을 허용하는 특정 라이센스를 발표했다.

이 요건은 아파치 하모니 프로젝트가 TCK를 사용할 수 있는 아파치 라이센스 호환 권리를 부인하는 것이다.2010년 11월 9일 아파치 소프트웨어 재단은 추가 제한 없이 하모니 TCK 면허를 받지 못하면 자바 커뮤니티 프로세스에서 탈퇴하겠다고 위협하였다.[9]

2010년 12월 9일, 아파치 소프트웨어 재단은 자바 SE/EE 집행 위원회 위원직을 사임했다.[10]

참고 항목

참조

  1. ^ a b Hamilton, Graham (2004-12-13). "J2SE Compatibility Test Sources Released". Archived from the original on 2004-12-16. Retrieved 2008-03-08. We have tried to make sure the license meets the reasonable needs of developers who want to evaluate the JCK sources: It's available at zero cost, through a click-through license; There is no "tainting". Once you delete your copy of the JCK, you aren't constrained in your future actions. To try to make this really clear, we included a section explicitly granting what the lawyers call "residual rights", which basically means that stuff that sticks in your head is OK to use in the future; You can publish feedback and comments publicly.
  2. ^ JCK 프로젝트 2007년 7월 8일 웨이백 머신보관
  3. ^ ""READ ONLY" SOURCE LICENSE AGREEMENT, v1.0 JAVA (TM) COMPATIBILITY KIT 6a". Sun Microsystems. June 2007. Archived from the original on 2010-12-31. Retrieved 2008-03-08.
  4. ^ Darcy, Joseph (2008-03-06). "Matching JDK and JCK Versions". Archived from the original on 2011-08-12. Retrieved 2008-03-08. If you're interested in running the JCK in context of OpenJDK projects, a license is available.
  5. ^ "OPENJDK COMMUNITY TCK LICENSE AGREEMENT V 1.1" (PDF). Sun Microsystems. Retrieved 2008-03-08. Subject to and conditioned upon its Licensee Implementation being substantially derived from OpenJDK Code and, if such Implementation has or is to be distributed to a third party, its being distributed under the GPL License, Sun hereby grants to Licensee, to the extent of Sun's Intellectual Property Rights in the TCK, a worldwide, personal, non-exclusive, non-transferable, limited license to use the TCK internally and solely for the purpose of developing and testing Licensee Implementation.
  6. ^ http://openjdk.java.net/legal/OpenJDK-TCK_SE7_27Dec2011.pdf[bare URL PDF]
  7. ^ https://java.net/projects/jbatch/sources/jsr-352-git-repository/show
  8. ^ "OPENJDK COMMUNITY TCK LICENSE AGREEMENT V 1.1" (PDF). Sun Microsystems. Retrieved 2008-03-08. Subject to and conditioned upon its Licensee Implementation being substantially derived from OpenJDK Code and, if such Implementation has or is to be distributed to a third party, its being distributed under the GPL License, Sun hereby grants to Licensee, to the extent of Sun's Intellectual Property Rights in the TCK, a worldwide, personal, non-exclusive, non-transferable, limited license to use the TCK internally and solely for the purpose of developing and testing Licensee Implementation.
  9. ^ ASF Board가 Java Community Process, Apache Software Foundation 블로그, 2010-11-09에 참여한다는 성명
  10. ^ ASF, 2010-12-09, Apache Software Foundation 블로그 JCP 집행위원회에서 사임

외부 링크