Существует ли стандартизированный способ внедрения метаданных (например, версия, лицензия) в компоненты SWC? - PullRequest
4 голосов
/ 12 декабря 2008

Сценарий : существует проект Adobe Flex 3 , который использует несколько сторонних библиотек и компонентов в виде SWC файлов.

Как мы можем знать, "что находится внутри" этих SWC файлов? В частности, как я могу убедиться, что в проекте используются последние версии всех этих компонентов?

Согласно официальной справке Adobe Flex 3 , "вы можете определить" (sic) свойство version для компонента, который вы собираетесь упаковывать и распространять. Что-то вроде:

private static const version:String = '1.0.0.42';

Но это свойство не обрабатывается каким-либо особым образом инструментами разработки Adobe, и я подозреваю, что оно, как правило, не используется сообществом.

Файл catalog.xml, который находится во всех SWC компонентах, похоже, не содержит ничего полезного в этом смысле.

Распространяют ли разработчики SWC обычно встраиваемые метаданные в эти файлы каким-либо образом? Существует ли стандартизированный способ получения данных, таких как версия, лицензия, автор и авторские права, из файла SWC?

Ответы [ 4 ]

1 голос
/ 07 января 2009

Вы можете посмотреть дайджесты RSL. Они прикрепляют разные значения хеш-функции к каждой версии конкретной библиотеки (swc / library / library / digests в файле catalog.xml). Тогда все, что вам нужно сделать, это загрузить библиотеку только с известным значением дайджеста.

Если у вас нет никакого контроля над используемыми SWC-файлами и они не используют дайджесты, вы все равно застряли с любой проприетарной системой управления версиями, которую использует поставщик.

1 голос
/ 17 декабря 2008

Я бы посоветовал включать название версии в сам файл .swc. Например, если вы используете платформу Mate, имя файла swc будет примерно таким: Mate_08_5.swc. Сразу видно, что вы используете версию 0.8.5.

Что касается лицензии, обычно вы распространяете текстовый файл LICENSE в ZIP-файле, содержащем ваш файл .swc.

0 голосов
/ 15 декабря 2008

SWC обычно распространяются в пакете с другими вспомогательными файлами, такими как документация и примеры. Информация о версии, лицензии и авторе обычно доступна как часть этого пакета в отдельном файле readme или лицензии. Я никогда не видел, чтобы разработчики компонентов в мире Flex собирали такую ​​информацию в сам SWC.

0 голосов
/ 15 декабря 2008

Вы делаете интересное замечание.

Adobe предоставила способ включить основные метаданные в SWF-файлы (и, следовательно, в SWC-файлы), но они хранятся в двоичном файле, и нет способа извлечь их без декомпиляции.

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

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

...