Организация Apache Software Foundation (ASF) сообщила новые подробности о недавно выпущенной Cayenne 3.0 — новейшей версии свободной Java-платформы для реляционного отображения объектов (ORM), долговременного их хранения и кэширования.

ASF объявила о готовности Cayenne 3.0 в мае 2010 г. и опубликовала новую техническую справку по этой технологии 7 июля. Но сама технология разрабатывается уже почти 10 лет, а с 2006 г. является первоочередным проектом ASF, отмечает Салли Худаири, вице-президент ASF по маркетингу и PR. Apache Cayenne служит основой приложений и веб-сайтов, к которым обращаются миллионы пользователей ежедневно. В качестве примера можно назвать сайты Unilever, НХЛ и Юридической библиотеки Конгресса США, говорится в пресс-релизе ASF.

В технической справке вице-президент Apache Cayenne Андрюс Адамчик пояснил, как Cayenne позволит удовлетворить широкий спектр потребностей пользователей по долговременному хранению объектов, поддержке генерирования баз данных, выполнению задач обратного проектирования, интеграции веб-сервисов, поиску ошибок в объектах, автообнаружению баз данных и др.

Адамчик отметил, что основой архитектуры Cayenne являются “насыщенные” объекты долговременного хранения и чёткое отделение модели отображения от Java-кода. Cayenne использует такие атрибуты, как прозрачные и “легкие” транзакции, контекстное вложение, долговременное хранение удаленных объектов, родовые типы и динамическое отображение, а в качестве инструмента моделирования — CayenneModeler. Это кросс-платформный, независимый от интегрированной среды разработки (IDE) инструмент отображения графического интерфейса пользователя (ГИП). Он избавляет от необходимости иметь дело с исходной моделью, обеспечивает поддержку различных относящихся к ORM операций БД и гарантирует гладкий апгрейд между версиями Cayenne.

Кроме того, в новой версии ASF предложила множество обновлений и расширений, устранив в общей сложности более 225 проблем, сообщил Адамчик.

Cayenne 3.0 поддерживает использование родовых типов, атрибутов flatten и вертикального наследования, а также событий жизненного цикла и подключаемого кэша запросов. Другие новшества в Cayenne 3.0 включают улучшение производительности, поддержку запросов объектов как строк, улучшения в реализации функции SelectQuery и обновления в инструменте моделирования Cayenne.

Адамчик пишет:

“В версии 3.0 существенно улучшен инструмент Modeler. Мы добавили функции “отменить/повторить”, “копировать/вставить”, контекстные меню, поиск модели, автозаполнение, отправку изменений модели обратно в БД и, конечно, поддержку отображения всех новых концепций 3.0, таких как обратные вызовы/приёмники, атрибуты flatten, внедряемые объекты и т. п.”.

Адамчик коснулся также будущего Cayenne, сообщив, что ведется планирование и разработка еще одного крупного релиза, 3.1. “Самое примечательное новшество, уже доступное в транке SVN (система контроля подверсий версий), это малый и простой в использовании контейнер инъекции зависимостей (DI)”, — пишет он.

В заключение он подчеркнул:

“Еще одна важная задача — как следует взглянуть на существующие функции, которые появились в 3.0 в результате нашего уклонения на территорию JPA, и посмотреть, как улучшить их и сделать более “родными” для принципов разработки Cayenne. Например, EJBQLQuery и SelectQuery следует слить в единый запрос, который дает строку и API объекта и поддерживает функции обоих текущих запросов. В рамках этого процесса мы доработаем также использование родовых типов в запросах”.