본문 바로가기

Better SW Development

자바기술 지원 표준 (Java Endorsed Standards)

자바에 포함되어 있는 기술인데,

1. 자바 표준 협의체인 JCP( Java Community Process )에서 정한 기술이 아닌 경우, 혹은

2. 해당 기술이 신기술인지라 새롭게 업데이트 되었을때에 플렛폼에 해당하는 기술로 업데이트가 필요가 생길 수 있는 기술일 경우

JAVA 에서는 두 가지 케이스를 각각

1. 자바기술 지원 표준 (Java Endorsed Standards) 과

2. 독립형 기술 (Standalone Technologies)

이라고 부른다.

그리고 이런 기술들의 변화를 빠르게 지원하기 위해, 해당 기술을 새롭게 구현한 내용(클래스나 인터페이스를 구현한 내용 )으로 덮어씌울 수 있도록 여지를 남겨 두었다.

이걸 Endorsed Standards Override Mechanism (지원 표준 중첩 매커니즘...-_-)이라고 한다.

물론 자바 기술 전체가 아니라, 특정 기술들에 대해서만 창구를 열어 놓았으며, 대표적인게, CORBA, IOP, DOM, XML 파서, Compiler, SOAP 관련 패키지들이다.

그럼 실제적으로는 어떻게 오버라이드 시킬수 있는것일까?

설명에 따르면 플랫폼 폴더 구분자로 분리된 아래 디렉터리를 이용하라고 되어 있다.

    <java-home>\lib\endorsed          [Microsoft Windows]
    <java-home>/lib/endorsed          [Solaris or Linux]

따라서 xml 파서를 Xalan 을 쓰고 싶으면, 해당 파일을 다운 받아서 위 폴더에 넣어 놓기만 하면 끝!

대표적인 예로 만일 JDK를 1.4 -> 5.0 으로 업그레이드 했는데, 이전 버전의 라이브러리를 써야 해서 XML 파서 관련 에러가 난다면, 위 방법을 이용해서 특정 파서(이를테면 XALAN)를 위 디렉터리에 넣어 놓으면 되겠다. (실제 이 경우에는 1.4 에서 5.0 으로 올라가면서 XML 관련 패키지의 경로가 바뀌었는데, Endorsed Standards Override Mechanism 을 이용해 트릭으로 해결하는 것이 가능하다)

참고로, Tomcat 을 사용한다면, Tomcat 하위 폴더에도 마찬가지로 endorsed 라는 폴더가 있는데, 역시 마찬가지 의미를 갖는다고 보면 된다.

아! 혹시 JAVA_HOME 이든 TOMCAT_HOME 이든, 하위에 endorsed라는 폴더가 없다면, 그냥 만들어 주면 된다. (tomcat 은 ver 6 올라가면서 없애 버렸다는데 확인해 보진 않아서 모르겠다. 다만, 스펙에 있으니 만들어
주면 된단다.)

참조

http://java.sun.com/javase/6/docs/technotes/guides/standards/

http://blogs.sun.com/arungupta/entry/metro_on_tomcat_6_x