Отметьте: Дополнительные пакеты являются новым термином для того, что имело обыкновение быть известным как стандартные расширения или только расширения.
Версия 1.3 JavaTM 2 Платформы, представленная поддержка расширенного набора Файла фляги проявляет атрибуты, которые позволяют апплетам определить версию и информацию о поставщике для дополнительных пакетов, которых они требуют. Декларации Упакованных флягой апплетов могут определить URL, в котором последняя версия дополнительного пакета Плагин Java может загрузить если
необходимый дополнительный пакет уже не устанавливается в среде выполнения Java, или
дополнительный пакет устанавливается, но имеет устаревший номер версии, или
дополнительный пакет устанавливается, но не от указанного поставщика.
Явные атрибуты, которые могут использоваться, чтобы определить версию и информацию о поставщике, описываются ниже.
Явные Атрибуты для Использования Установленными Дополнительными Пакетами
Следующая часть демонстрационного файла манифеста иллюстрирует атрибуты, которые доступны для использования дополнительными пакетами.
Extension-Name: javax.help
Specification-Vendor: Sun Microsystems, Inc
Specification-Version: 1.0
Implementation-Vendor-Id: com.sun
Implementation-Vendor: Sun Microsystems, Inc
Implementation-Version: 1.0
Атрибуты в этом примере:
Имя расширения
Этот атрибут определяет имя для дополнительного пакета, содержавшегося в файле Фляги. Имя должно быть уникальным идентификатором, таким как имя основного пакета, включающего дополнительный пакет.
Поставщик спецификации
Этот атрибут идентифицирует компанию, которая породила спецификацию, которой соответствует дополнительный пакет.
Версия спецификации
Этот атрибут определяет номер версии спецификации, которой соответствует реализация.
Идентификатор поставщика реализации
Значение этого атрибута является уникальным идентификатором для компании, которая произвела дополнительную реализацию пакета, содержавшуюся в файле Фляги.
Поставщик реализации
Значение этого атрибута является именем компании, которая произвела реализацию дополнительного пакета. Этот атрибут должен использоваться только в таких целях, таких как пользовательская обратная связь, и программное обеспечение Плагина Java не использует это, чтобы идентифицировать дополнительного поставщика пакета. Скорее Плагин Java полагается на атрибут Идентификатора поставщика реализации, чтобы обеспечить уникальную идентификацию поставщика.
Версия реализации
Этот атрибут указывает на номер версии поставщика для реализации дополнительного пакета.
Каждый дополнительный пакет, установленный в среде выполнения Java, может использовать эти явные атрибуты, чтобы идентифицировать себя. Когда Плагин Java выполняет апплет, который требует дополнительного пакета, плагин может получить доступ к этим атрибутам, чтобы определить, соответствуют ли установленные дополнительные пакеты поставщику и критериям версии, определенным апплетом. Апплет определяет такую информацию при использовании явных атрибутов, описанных в следующем разделе. Отметьте, что все вышеупомянутые явные атрибуты должны быть включены в декларацию дополнительного пакета. Если плагин будет искать, но не найдет один из этих атрибутов в декларации дополнительного пакета, то это предположит, что дополнительный пакет не является подходящим для апплета.
Явные Атрибуты для Использования Файлами Фляги Апплета
Следующий демонстрационный файл манифеста иллюстрирует атрибуты, которые доступны для использования Упакованными флягой апплетами. (Эта выборка в иллюстративных целях только. Никакие фактические дополнительные пакеты не доступны в URL, упомянутых в этом примере.)
Этот атрибут указывает на дополнительные пакеты, которые необходимы апплету. У каждого дополнительного пакета, перечисленного в этом атрибуте, будет ряд дополнительных атрибутов, что использование апплета, чтобы определить, какой версии и поставщика дополнительного пакета это требует.
<расширение> - Имя расширения
Этот атрибут является уникальным именем дополнительного пакета. Плагин Java сравнит значение этого атрибута с атрибутом Имени расширения в декларациях установленных дополнительных пакетов, чтобы определить, устанавливается ли дополнительный пакет.
<расширение>- (Дополнительная)Версия спецификации
Этот атрибут определяет минимальную дополнительную версию спецификации пакета, которая требуется апплетом. Плагин Java сравнит значение этого атрибута с атрибутом Версии спецификации установленного дополнительного пакета, чтобы определить, современен ли дополнительный пакет.
<расширение>- (Дополнительная)Версия реализации
Этот attritute определяет miminum дополнительный номер версии реализации пакета, который требуется апплетом. Плагин Java сравнит значение этого атрибута с атрибутом Версии реализации установленного дополнительного пакета, чтобы видеть, должна ли более свежая реализация быть загружена.
<расширение>- (Дополнительный)Идентификатор поставщика реализации
Этот атрибут может использоваться, чтобы идентифицировать поставщика дополнительной реализации пакета, если апплет требует реализации от определенного поставщика. Плагин Java сравнит значение этого атрибута с атрибутом Идентификатора поставщика реализации установленного дополнительного пакета.
<расширение> - URL реализации
Этот attritute определяет URL, который может использоваться, чтобы получить новую версию дополнительного пакета, если необходимая версия уже не устанавливается.
Правила Обновления Плагина Java
Плагин Java выполняет следующие определения, загружая апплет, декларация которого указывает, что требуются один или более дополнительных пакетов:
Если дополнительный пакет с корректным значением атрибута Имени расширения не будет установлен, то Плагин Java запросит пользователя позволять этому загружать дополнительный пакет.
Если дополнительный пакет с корректным значением атрибута Имени расширения уже устанавливается, Плагин Java делает следующие сравнения:
Если значение Версии спецификации дополнительного пакета больше или равно требуемому апплетом:
Если Идентификатор поставщика реализации приписывает соответствие:
Если Версия реализации дополнительного пакета больше чем или равна определенному в декларации апплета, ничего не сделайте - актуальная версия дополнительного пакета уже устанавливается.
Если Версия реализации дополнительного пакета будет меньше чем определенное в декларации апплета, то плагин запросит пользователя загружать обновление от того же самого поставщика.
Если атрибуты Идентификатора поставщика реализации не будут соответствовать, то Плагин Java запросит пользователя загружать дополнительный пакет от поставщика, определенного в декларации апплета.
Если значение Версии спецификации дополнительного пакета является меньше чем требуемое апплетом:
Если соответствия Идентификатора поставщика реализации дополнительного пакета, которые указали в декларации апплета, Плагин Java, запросят пользователя загружать обновленный дополнительный пакет от того же самого поставщика.
Если Идентификатор поставщика реализации дополнительного пакета не соответствует, что определенный декларацией апплета, Плагин Java запросит пользователя загружать дополнительный пакет от поставщика, определенного в декларации апплета.
Если декларация апплета не будет содержать один или больше дополнительных атрибутов, то плагин примет любое значение соответствующего атрибута в декларации дополнительного пакета.
Загрузка и Установка Дополнительных Пакетов
Следующие соображения принадлежат дополнительным пакетам, которые загружаются Плагином Java.
Дополнительный пакет загружает URL как обозначено в декларации апплета <расширение> - атрибут URL реализации не должен быть ограничен кодовой базой Апплета.
Все загружаемые файлы должны быть подписаны, используя DSA или сертификат RSA. Любые дополнительные пакеты, не столь подписанные, не будут установлены, но вместо этого будут обработаны как связанный дополнительный пакет и загружены через загрузчик класса апплета, совместно используя атрибуты безопасности апплета.
Когда Плагин Java получит дополнительный пакет от URL, обозначенного в декларации апплета, это проверит декларацию дополнительного пакета на атрибут Основного класса после проверки подписи дополнительного пакета. Если файл манифеста дополнительного пакета не будет содержать атрибут Основного класса, то Плагин Java просто бросит файл Фляги в дополнительный каталог пакетов среды выполнения (jre/lib/ext в JDK и lib/ext в JRE).
Некоторые дополнительные файлы Фляги пакета могут содержать свои собственные программы установщика или в собственном коде или как приложения, записанные в языке программирования Java. Такая программа установщика может быть необходимой в целях, таких как установка собственных библиотек или доступ к реестру Microsoft Windows, например. Если Плагин Java найдет атрибут Основного класса в декларации дополнительного пакета, то он предположит, что указывает на класс, который служит установщиком языка Java и вызовет метод main() того класса.
Декларация дополнительного пакета может альтернативно содержать атрибут Установки расширения. Значение этого поля укажет на собственное приложение установки, которое должно использоваться Плагином Java, чтобы установить дополнительный пакет.
URL дополнительного пакета как определено <расширение> - URL реализации должен указать на файл JAR. Плагин не будет загружать и устанавливать дополнительные пакеты, упакованные как.exe или.bin файлы.
Некоторые дополнительные пакеты, прибывшие упакованный в различных файлах Фляги для различных операционных систем. Такие случаи могут быть размещены <расширение> - атрибут URL реализации при использовании конструкции $(os-name)$ в значении атрибута. Вот пример.