Включая дополнительные ресурсы с пакетами OSGi

Как упомянуто, если Вы хотите притон “per-ответвления, ” Вы действительно, хотят новое ответвление, разветвляющееся прочь от существующего ответвления.

кроме того, помимо уже упомянутого того, что притон позволяет Вам вытягивать в ответвление, которое продолжающий работать you’re, он также позволяет Вам переключатель ответвления перед фиксацией всего. Это полезно не для избирательного подхода к выбору в обычном смысле так что касается избирательного подхода к выбору Ваша рабочая копия .

F.ex., при работе над ответвлением функции я буду часто замечать незначительные ошибки или косметические примеси в коде что aren’t относящийся к тому ответвлению. Ну, я просто фиксирую тех сразу же. Когда время настает к фиксации, я выборочно фиксирую соответствующие изменения, но не меры и косметику. Вместо этого я прячу тех, который позволяет мне переключаться на свое ответвление minor-fixes-on-stable, где я могу тогда применить притон и фиксировать каждую незначительную фиксацию отдельно. (В зависимости от рассматриваемых изменений я также спрячу некоторых из них все снова и снова, для переключения на различное ответвление функции, где я подаю заявку те .)

Это позволяет мне идти глубоко в режим программирования, когда я работаю, и не беспокойство о надлежащем библиотечном деле моего кода. Тогда, когда я делаю умственный перерыв, я могу возвратиться и тщательно отсортировать свои изменения на все правильные полки.

, Если бы притон weren’t глобальный, этот тип рабочего процесса было бы намного более трудно сделать.

5
задан Dave Ray 11 September 2009 в 16:00
поделиться

2 ответа

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

Вы должны это сделать, потому что одной из сильных сторон OSGi является управление жизненным циклом, которое также позволяет вам удалять пакеты и службы без следа. Для этого фреймворк отслеживает все, что делает пакет. Если запустить исполняемый файл после того, как вы удалили установленный и запустили пакет, соединение будет потеряно, и он может продолжать работать до перезагрузки компьютера (часто это не вариант для встроенных систем).

2
ответ дан 14 December 2019 в 13:42
поделиться

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

Обычная проблема, с которой вы сталкиваетесь в OSGi, - это определение пути к файлу, поскольку OSGi не предполагает, что файловая система доступна (это не так странно, как звучит так, будто OSGi зародилась во встраиваемых устройствах.)

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

Если вы хотите, чтобы каталог копировал или распаковывал файлы, используйте:

org.eclipse.core.runtime.Platform.getStateLocation()

Что дает вам рабочий каталог для пакета.

Если вы хотите найти путь для конкретный файл в вашем пакете, вы можете сделать:

org.eclipse.core.runtime.FileLocator.toFileURL((context.getBundle().getEntry("/etc/readme.txt")))

Что в этом случае вернет URL-адрес файла на /etc/readme.txt в текущем пакете.

4
ответ дан 14 December 2019 в 13:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: