[devel] Java: no magic wand, no magic hammer
Igor Vlasenko
=?iso-8859-1?q?vlasenko_=CE=C1_imath=2Ekiev=2Eua?=
Вт Янв 15 20:54:47 MSK 2008
On Tue, Jan 15, 2008 at 10:59:38AM +0300, Денис Смирнов wrote:
> On Mon, Jan 14, 2008 at 11:59:16PM +0200, Igor Vlasenko wrote:
>
> IV> Далее для простоты не будем различать случаи "каталог поиска" и jar,
> IV> так как различие только в синтаксисе и способе хранения.
>
> У jar есть еще метаинформация. Кстати в обычных каталогах она может
> лежать? (я про classpath, собственно).
Гм. ничто не мешает положить туда META_INF/MANIFEST.MF.
Правда, как я понимаю, java (runtime) туда не сотрит.
но другие смотрят, в том же OSGi, например.
Немного отвлекусь, скажу, что способов записывать метаинформацию
уже придумано множество,
Среди наиболее популярных отмечу
среди встроенных в jar -
OSGi manifest (поля вида Bundle-*)
как
Bundle-ManifestVersion: 2
Bundle-Name: SpoonJdt Plug-in
Bundle-SymbolicName: fr.inria.spoon.jdt.builder; singleton:=true
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime,
Export-Package: fr.inria.spoon.jdt,
fr.inria.spoon.jdt.builder.internal
Import-Package: org.eclipse.jdt.internal.ui.preferences,
org.eclipse.jdt.internal.ui.wizards.dialogfieldsдоп.
...
Обсуждение
http://felix.apache.org/site/presentations.data/osgi-apachecon-20060628.pdf
Среди внешних -
maven- описания с помощью POM - файлов (xml)
и symbol-db, используемую в gcj.
в частности, OSGi platform имеет, по сути, весь велосипед -
метаинформацию, пути, стандартные имена, загрузку - но только
для своих сервисов.
У нас в Сизифе почти треть java пакетов имеет описание в виде POM файлов,
и около 2% имеет еще OSGi manifest.
В перспективе хотелось бы, чтобы каждая библиотека имела и POM,
и OSGi manifest, поскольку это реально нужно для сборки проектов
на maven либо на платформе eclipse, но это будет долгая
и кропотливая ручная работа,
которая, возможно, никогда не дойдет до 100%.
Поэтому это не платформы для AutoReq/AutoProv.
Я сам склоняюсь к какому-то аналогу symbol-db,
но, как и говорил, попытаюсь все это опробовать в тестах.
--
Dr. Igor Vlasenko
--------------------
Topology Department
Institute of Math
Kiev, Ukraine
Подробная информация о списке рассылки Devel