четверг, 28 октября 2010 г.

Eclipse полностью работоспособен c OpenJDK на Mac'ах


Сейчас в интернете активно обсуждается следующая тема: Apple отказывается от поддержки своей JVM. Ситуация интересна тем, что официальной Oracle JVM для MacOS X нет. Замечу, что ситуация несколько напоминает ситуацию, которая сложилась с Microsoft во времена JDK 1.2: корпорация зла распространяла свою версию JVM, которая в лучших традициях Microsoft была не совместима со стандартом. Apple точно так же разрабатывала свою версию JVM, которая со стандартом была совместима, однако имела некие "секретные API" для лучшего взаимодействия с графической подсистемой вендора.

Позиция Apple в целом понятна:
1. Убиваем JDK на платформе Mac.
2. Без JDK не работает Eclipse.
3. Соответственно не работает Android Development Tool.
4. ...
5. Profit!

Однако в данном вопросе Apple просчитались. Eclipse замечательно работает на OpenJDK port - SoyLatte без X11. Известный Eclipse и OSGi евангелист - Neil Bartlett приводит в доказательство скриншот:



Все дело в использовании SWT. Да, OpenJDK не имеет оптимизаций, которые есть в Apple JVM, однако они и не нужны, потому что SWT использует нативный код для отрисовки графики, а не Swing/AWT.

Соответственно, другие приложения, использующие SWT, например RSSOwl, точно так же будут полностью работоспособны, а вот гарантировать полную работоспособность NetBeans и IDEA не представляется возможным.

Понравилось сообщение - подпишитесь на блог

среда, 13 октября 2010 г.

ECF: Eclipse Communication Framework мигрировал на Git


Сегодня свершилось радостное событие: Eclipse Communication Framework полностью переведен на использование распределенной системы управления версиями исходного кода - Git. Напомню, что Git начал разрабатываться Линусом Торвальдсом для его проекта Linux, однако сейчас используется во многих Open Source (и, смею предположить, что не только Open Source) разработках.

Веб-интерфейс репозитория расположен по адресу: Eclipse Git. Сами репозитории, которые можно клонировать:

- git://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git
- ssh://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git
- http://git.eclipse.org/gitroot/ecf/org.eclipse.ecf.git

"Переведен на Git" подразумевает, что созданы указанные выше Git-репозитории, а официальный CVS-репозиторий проекта переведен в режим "Только для чтения (Read Only, R/O)". Синхронизация между Git и CVS настраиваться не будет, все новые коммиты будут идти только в Git!

На днях наша команда обновит официальный сайт ECF и пропишет везде вместо путей к CVS - пути к Git.

Преимущества использования Git вместо CVS те же, что и для разработки ядра Linux. Во-первых, теперь коммиттеры могут осуществлять коммиты более часто - в свои локальные репозитории и только после завершения работы над какой-либо новой функциональностью отправлять код в публичный репозиторий. Во-вторых, контрибъютеры могут размещать свой код, например, на GitHub, а после прохождения кодом IP-процесса, коммиттер легко смержит его с основным репозиторием ECF. При этом будет сохранена вся история правок. Уже есть пример такой работы, правда коммиттер мержил свой код с GitHub и официальный репозиторий. В-третьих, у ECF есть особенность - часть кода хранится не в официальном репозитории, а на GitHub, что раньше приводило к проблемам при сборке - приходилось часть кода подгружать из CVS, часть - из Git. Теперь весь код хранится в Git-репозиториях, что конечно же решит данную проблему. В-четвертых, теперь проще делать патчи для Bugzilla и, соответственно, их накатывать. В-пятых, стала доступна операция Code Review с помощью замечательного инструмента - Gerrit, который уже довольно активно используется для проекта EGit.

З.Ы. В отличие от большинства молодых Eclipse-related проектов, перешедших на Git или изначально разрабатывавшихся с использованием этой системы контроля версий, ECF - достаточно развитый проект с многолетней историей правок и разветвленной структурой проектов (порядка сотни бандлов, 30Мб исходников).

Понравилось сообщение - подпишитесь на блог

вторник, 12 октября 2010 г.

Введение в OSGi - Снова о доступности классов


Шпаргалка по механизму, обеспечивающему доступность классов в OSGi.

1. Один класслоадер на бандл

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

Данное решение имеет следствия:
- Classpath больше не линеен - у каждого бандла он свой.
- Классическая иерархия класслоадеров (Bootstrap -> Extension -> System) не работает.
- По-умолчанию в качестве родительского используется Bootstrap classloader, но данное поведение настраивается.

понедельник, 4 октября 2010 г.

Eclipse Foundation изнутри


В статье приведен обзор процесса разработки программного обеспечения с открытым исходным кодом, осуществляемый в рамках организации Eclipse Foundation. С некоторых пор Суровый является коммитером проекта Eclipse Communication Framework, знает процесс изнутри, поэтому может рассказать не только о формальной стороне дела, но и поделиться личными впечатлениями.