← All posts tagged Grails

Начав с груви, открыл для себя Scala.
А, ведь, во всём виноват AppEngine )
Кабы Grails на нём пахал без сбоев, не начались бы мои искания )
В общем, читаю, сейчас книжку Мартина Одерски, чего и вам желаю, хотя бы просто для расширения кругозора, как в случае с груви.
Для справки, Одерски, родитель Scala — один из разработчиков компилятора javac и дженериков.

Вот смешно, при достижении определённого количества файлов, или даже создании файлов определённого типа, например, фильтров или таглибов, под виндой grails app-engine перестаёт работать, но прекрасно работает под другими средами.
gant падает во время сборки на задаче DataNucleus Enhancer с ошибкой incorrect parameter при вызове java. Проблема кроется в ограниченой длине строки.
Да, есть способ уменьшить количество просматриваемых файлов на предмет сущностей JPA, но даже сами разработчики говорят о нём как о крайней мере и обещают выпустить исправление.

Всё-таки, не очень удобно, что плагины, которые ты ставишь в проект, хранятся не в нём самом, а в
~/.grails/<версия грааля>/projects/<имя проекта>/plugins.
Да, есть способ переопределить настройки в BuildConfig.groovy через grails.plugin.location для каждого плагина отдельно.
Или для всех оптом: grails.project.plugins.dir="./plugins".
Но почему так было сделано по-умолчанию, я пока объяснения не нашёл. Причём до версии 1.1 они хранились именно в проекте.
Всё вышесказанное было к тому, что при таком раскладе, часто возникают проблемы при переключении веток, если разнится состав плагинов или их версии.

Радость оказалась недолгой.
Через некоторое время, отваливаются инъектированные в ShiroUser методы, типа save().
Просто, во время очередного запуска через grails app-engine, ругается на их отсутствие.
Почему так происходит, для меня полная загадка.

Appengine с Nimble не собирается в следствие то ли длинных имён файлов, то ли из-за большого их количества, к сожалению, не разобрался окончательно.
Acegi не работает, так как требует hibernate. Appengine поставляется либо с JPA, либо с JDO на выбор. Но есть способ перегрузить некоторые классы и отвязаться от хибернэйта.
Чистый Shiro, поверх которого построен Nimble, работает сразу из коробки.

На случай, если кто-то вдруг не знает ещё.
Grails обновился до 1.3.4
springsource.org

Примечание к релизу:
grails.org

Странно, что в таком навороченном FW отсутствует автоматическое обновление самого себя, ну или хотя бы уведомление о релизе.
В том же, ROR, который взят за образец подражания, возможность апгрейда присутствует.

Если я забираю проект из гита на новой машине, то он ругается, что нет плагина и предлагает его удалить, но не установить заново.
Или я ещё не до конца понимаю его философию, или это бага.
Надо будет глянуть их багтрекер и сообщить.

Ух ты ж елки ж ты ж палки ж...
Я тут проштудировал одну бесплатную книжку "Getting Started with Grails", Jason Rudolph, 2007.
А оказывается ещё в феврале этого года вышла вторая редакция.
Придётся как-то сравнивать два PDF чего там изменилось...

Попробовал Grails — это такая же штука для построения сервера приложений, как мэйвен для сборки проектов.
Очень гибкая и расширяемая. Теперь надо попробовать слабать, что-нибудь по-серьёзнее хэлловорлда.
Даже если не работать с платформой постоянно, попробовать её имеет смысл, как минимум, для расширения кругозора.