Есть ли стандартизированный способ встраивания метаданных (например, версии, лицензии) в компоненты SWC?

Сценарий: есть проект 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 файла?


person tripu    schedule 12.12.2008    source источник


Ответы (4)


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

Что касается лицензии, обычно вы распространяете текстовый файл ЛИЦЕНЗИИ в архиве .zip, который содержит ваш файл .swc.

person darronschall    schedule 17.12.2008

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

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

person inferis    schedule 07.01.2009

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

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

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

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

person Philippe    schedule 14.12.2008
comment
Спасибо, Филипп. Где документация об этих метаданных, которые могут быть включены в SWF? - person tripu; 15.12.2008

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

person Josh Tynjala    schedule 15.12.2008