확장 기능 - xrath.com 에서 번역됨

## Java Web Start Version 6 의 확장 기능

- 「policy」 및 「check」속성을 가지는 <update> 요소가 JNLP 스펙에 추가된다

「policy」 및 「check」속성을 가지는, 새로운 <update> 요소가 지원되었습니다. update 요소에는, Java Web Start 가 Web 상에서 갱신을 체크하는 방법, 및 기동전에 갱신이 입수 가능하다라고 하는 것이 알았을 경우의 동작에 관한 어플리케이션 설정을 지정합니다.
이전의 버젼의 Java Web Start 에서는, <offline-allowed> 요소가 다중 정의 되고 있어, 다음과 같은 상태였습니다. : 1. 「오프 라인」모드에서의 어플리케이션 실행이 허가되고 있었다(어플리케이션을 오프 라인 모드로 실행하려면 , 커멘드행에 「-offline」인수를 추가하는지, 캐쉬 viewer를 사용한다). 2. 어플리케이션 (오프 라인 모드로 실행되어 있지 않은 경우)의 기동전에, 갱신의 체크를 타임 아웃 할 수 있었다. 갱신의 체크가 타임 아웃 했을 경우, 어플리케이션은 캐쉬로부터 기동되어 갱신의 체크가 백그라운드에서 속행됩니다.
6.0 에서는, <update> 요소 및 check 속성의 등장에 수반해, <offline-allowed> 요소는 후자의 의미를 가지지 않게 되었습니다. 디폴트 값는 <update check="timeout"/> 로, 이 동작은 이전의 버젼으로 <offline-allowed> 를 지정했을 경우와 같습니다. 이전에 <offline-allowed> 를 생략 했을 경우에 간 동작을 재현 하려면 , <update check="always"/> 를 지정할 필요가 있습니다. 백그라운드에서 갱신을 체크하면서, 캐쉬로부터 항상 즉시 기동하는 경우는, 3 번째의 값 <update check="background"/> 를 지정할 수 있습니다. 2 번째의 속성 「policy」를 사용해, 어플리케이션의 기동전에 갱신이 입수 가능하다라고 하는 것이 알고 있는 경우의 동작을 지정합니다. 항상 갱신을 취득하는 일도, 사용자로 지정을 요구할 수도 있습니다. policy 속성치에는, 「always」(디폴트), 「prompt-update」, 「prompt-run」의 어느쪽이든을 지정할 수 있습니다.

- DownloadService API 의 요건에 관한 JNLP 스펙이 완화된다

이전의 버젼에서는, API 에 인수로서 건네줄 수 있는 URL 는, API 의 종류에 관계없이, 실행중의 어플리케이션의 jnlp 파일에 기술된 자원에의 URL 에 한정되어 있었습니다. 이 제한이 변경되어 서명되고 신뢰된 코드에 관해서는 제한이 없어졌습니다. 또, 신뢰되지 않는 코드에 대한 제한은, jnlp 파일에 기술되고 있을까는 아니고, 같은 코드 베이스로부터의 코드인가로 판단되게 되었습니다.
게다가 jnlp 파일 자체에의 URL 가 허가되게 되었기 때문에, DownloadService.removeResource()의 호출을 사용해, 캐쉬로부터 어플리케이션 전체를 삭제하거나 DownloadService.loadResource()를 사용해 어플리케이션을 임포트 하거나 할 수 있게 되었습니다.
이 변경에 의해, 어떠한 jnlp 파일에도 기술되어 있지 않은 자원을 어플리케이션으로 사용할 수 있게 됩니다. 예를 들어, 로케일을 en_xx 로 설정하면, 사용 가능한 자원 jar 를 jnlp 파일에 기술하지 않아도, 어플리케이션은 DownloadService 를 사용해 resources_en_xx.jar 를 로드할 수 있습니다(지원하는 로케일을, jnlp 파일을 변경하지 않고 동적으로 추가하는 것이 가능).

- SocketService 의 구현

샌드 박스의 정의의 명확화도 중요한 스펙 변경입니다. 이것은, 디폴트의 샌드 박스만을 대상으로 하고 있어 그 구현에서는 샌드 박스의 허가하지 않는 조작을 사용자를 자유롭게 허가할 수 있습니다. 1. 5.0 에서는, 이것이 인쇄에 관해서 실현되고 있었습니다. 즉, awt 내의 일반적으로의 인쇄 api 를 사용하는 것만으로, 샌드 박스를 전개해 어플리케이션으로부터 프린터에의 액세스를 허가할 수가 있었습니다 (사용자가 동의 했을 경우). 6. 0 에서는, 이것이 소켓 접속에서도 가능하게 되었습니다. 이 때문에, 신뢰되지 않는 어플리케이션이 url 에의 접속을 시도했을 경우에서도, 사용자는 접속을 허가하도록(듯이) 요구됩니다.

- <j2se> 요소에 교체되는 신규 <java> 요소가 jnlp 파일에 추가된다

Java Web Start Version 6.0 이후에서만 사용되는 jnlp 파일에서는, <java> 요소를 사용해 <j2se> 태그를 옮겨놓을 수가 있는 (주로, 지금은 Java Platform Standard Edition 가 j2se 라고는 불리지 않기 때문에). 하위 호환성을 유지하기 위해(때문에), <j2se> 태그는 계속해 동작합니다. <java> 요소는, <j2se> 요소와 동일합니다.

- <association> 요소에 <icon> 및 <description> 서브 요소를 포함할 수가 있게 된다

Java Web Start 어플리케이션과 파일 확장자(extension) 및 mime 타입과의 관련짓고의 작성시에, 어플리케이션용의 디폴트 아이콘을 사용하는 것이 아니라, 관련지을 것에 별개의 아이콘을 지정할 수 있게 되었습니다. 또, 설명도 지정할 수 있습니다.

- Jar 인덱스가 완전하게 지원되어 JNLPClassLoader 가 URLClassLoader 의 인스턴스가 된다

JNLPClassLoader 를 고쳐 쓸 수 있어 URLClassLoader 의 확장이 되었습니다. 이것에는, 몇개의 강력한 이점이 있습니다.
우선, Jar 인덱스가 완전하게 지원됩니다. 복수의 jar 파일이 존재해, 모든 jar 파일을 인덱스화하는 jar 인덱스를 메인 jar 파일내에 작성하는 경우, 추가하는 각 jar 에 지연의 마크를 붙여, 그 내부의 자원 또는 클래스가 참조될 때까지 다운로드되지 않게 할 수 있습니다. 이것에 의해, 낡은 part 나 package 요소가 불필요하게 되어, 지연 jar 가 사용에 앞서 다운로드되지 않는 것이 보증됩니다.
또, JNLPClassLoader 가 URLClassLoader 를 확장하게 되었기 때문에, 어플리케이션은 getURLs()를 호출해 jnlp 파일내에 기술되고 있는 jar 요소 (또는 jnlp 파일에 기술되어 있지 않아도, DownloadService API 를 사용해 다운로드된 jar 요소, 전술의 설명을 참조)의 일람을 취득할 수 있습니다.
또, ClassLoader.getResource()의 호출로 반환되는 URL 가, 넷상의 항목의 적절한 JAR URL 가 됩니다. 이전의 버젼에서는, 반환되는 URL 는 캐쉬내의 항목의 파일 url 의 jar url 였습니다. URLClassLoader 를 확장하는 것으로써, 캐쉬된 장소 (존재하는 경우)는 의미가 없어져, Java Web Start 가 캐쉬없이 동작하는 것이 가능하게 되었습니다.

- 아이콘 지원의 확장

Java Web Start 에서는, 2 개의 아이콘 형식 「. png」 및 「 「. ico」가 새롭게 지원됩니다. 이것에 의해, 지정한 아이콘을, 용도에 응해 다른 형식으로 변환할 필요가 없어집니다. 또, 「kind="shortcut"」도 지정할 수 있게 되어, Java Web Start 는 폭과 높이의 힌트 정보를 참조하게 되었습니다. 예를 들어, 다음과 같이 지정했다고 합시다.
<icon kind="shortcut" href="menushortcut.ico" width="16" height="16"/>
<icon kind="shortcut" href="desktopshortcut.ico" width="32" height="32"/>
이 경우, 작성된 데스크탑 및 메뉴 쇼트 컷의 모두로, 별개의 이미지를 지정할 수 있는 (주:Java Web Start 의 사용하는 아이콘 사이즈는, 데스크탑 쇼트 컷의 경우는 대략 32 X32, 메뉴 쇼트 컷의 경우는 대략 16X16 이다).

- Windows 의 「프로그램의 추가와 삭제」내의 엔트리의 지원가 확장된다

Windows 의 「프로그램의 추가와 삭제」내의 Java Web Start 어플리케이션용 엔트리에, jnlp 파일의 정보 블록으로부터 취득한 발행자, 발행자의 Web 사이트, 인스톨 일자, 및 어플리케이션 아이콘이 포함되게 되었습니다.

- 데스크탑 쇼트 컷의 툴팁

Java Web Start 에 의해 작성된 데스크탑 쇼트 컷에서는, jnlp 파일내의 <description> 요소를 사용해, 어플리케이션을 설명하는 툴팁가 생성되게 되었습니다.

- JNLPDownloadServlet 의 확장 기능

JnlpDownloadServlet 에 $$hostname 와 $$sight 의 양쪽 모두의 매크로가 포함되게 되었습니다. 확장에 의해, $$hostname 매크로에는 호스트명을 포함할 수 있습니다. $$site 매크로에는, WAR 문맥 부분 없음의 Web 사이트 주소를 포함할 수 있습니다.

- 시큐리티 보호된 vm 인수와 프로퍼티의 리스트가 확장된다

시큐리티 보호된 vm 인수와 프로퍼티의 최신의 리스트에 대해서는, 개발자 가이드를 참조해 주세요.

- 몇개의 커멘드행 인터페이스 (CLI) 항목이 변경 또는 추가된다.
  최신의 Javaws CLI 에 대해서는, 개발자 가이드를 참조해 주세요.

### Java Web Start 와 Java Plug-in 에 공통의 확장 기능

- 모든 다이얼로그가 재설계되어보다 사용하기 쉽게

Java Web Start 와 Java Plug-in 로 표시되는 모든 다이얼로그 및 화면이, User Experience 팀의 협력의 아래에서재설계되어보다 사용하기 쉽게 편리하게 되었습니다.

- DownloadEngine 와 캐쉬의 통합 및 재설계

Java Web Start 와 Java Plug-in 간으로, 캐쉬 기구 및 다운로드 엔진 전체가 재설계 및 통합되었습니다.
이것에 의해, Java Plug-in 만으로 이용할 수 있던 기능이 Java Web Start 로 새롭게 이용 가능하게 되어, Java Web Start 만으로 이용할 수 있던 기능이 Java Plug-in 로 새롭게 이용할 수 있게 되었습니다.

- Java 컨트롤 패널을 사용해 캐쉬 전체를 무효화할 수 있습니다.
- Java 컨트롤 패널로 설정한 캐쉬의 최대 사이즈가 Java Web Start 에도 적용되게 되었습니다. 이것에 의해, 캐쉬가 사용자의 설정한 최대 사이즈에 가까워졌을 때에, Java Web Start 로부터 클린 업 용도의 thread를 개시해, LRU 항목을 캐쉬로부터 삭제할 수 있습니다.
- <no-cache> 지시자가 적용되게 되었습니다. 다운로드한 자원에 no-cache 지시자가 포함되는 경우, 이 자원은 캐쉬에 포함되지 않습니다.
- 유효기간이 적용되게 되었습니다. 다운로드한 자원에 유효기간이 포함되는 경우, 그 일자 이후, 그 자원은 사용되지 않습니다.

주: 캐쉬의 형식은 완전하게 변경되고 있기 (위해)때문에, 결코 억측이나 추측으로 판단하지 않게 해 주세요. 캐쉬 형식이 이전인 채인 것을 전제로 하는 기존의 코드는, Java Web Start 용이든, Java Plug-in 용이든, 동작하지 않습니다. Java Web Start 캐쉬내의 기존의 어플리케이션은, Java Web Start 어플리케이션의 첫회 실행시 또는 캐쉬 viewer의 기동시 ( 「javaws -viewer」를 사용)에 업그레이드 되어 신규 캐쉬 형식에 변환됩니다. 같이 Java Web Start 를 시스템 모드로 처음으로 기동하는지, 「javaws -system」를 사용해 기동하면(자), 시스템 캐쉬가 새로운 형식에 업그레이드 및 변환됩니다.

- Java 콘솔이 모다리티로부터 제외된다

Java 6 의 AWT 로 추가된 새로운 모다리티 기능을 사용하는 것으로, 어플리케이션에 모덜 다이얼로그가 표시되고 있는 경우에서도, Java 콘솔과의 대화 처리를 실행할 수 있게 되었습니다.

- OCSP/CRL 의 신규 지원

Java Web Start 및 Java Plug-in 가, 증명서의 검증용으로 CRL (Certificate Revocation Lists) 및 OCSP (Online Certificate Status Protocol)를 새롭게 지원하게 되었습니다.

- SSL/TSL 의 신규 지원

Java 컨트롤 패널에, 디폴트의 SSL 핸드 쉐이크 프로토콜을 선택하는 옵션이 추가되었습니다.
디폴트에서는 SSLv3 및 SSLv2 가 설정됩니다만, 나중에 사용자나 기업이 TSL 로 변경할 수 있습니다.