Как стать автором
Обновить
0
Рейтинг

Groovy & Grails *

Язык программирования Groovy и фреймворк Grails

Сначала показывать
Порог рейтинга

Прощай, Grails. Привет, Micronaut. Окончание

Блог компании OTUS Программирование *Groovy & Grails *
Перевод

Это третья и последняя статья из цикла о миграции из Grails в Micronaut. Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

В этой статье поговорим о сервисах, контроллерах, приложении Micronaut, Micronaut Data.

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

Вторую статью (о датасетах, маршалинге и классах предметной области) можно прочитать тут.

Читать далее
Всего голосов 2: ↑1 и ↓1 0
Просмотры 578
Комментарии 0

Новости

Прощай, Grails. Привет, Micronaut. Продолжение

Блог компании OTUS Программирование *Groovy & Grails *
Перевод

Это вторая статья из цикла о миграции из Grails в Micronaut. Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

Всего в цикле публикаций о миграции из Grails в Micronaut 10 частей:

Многомодульный проект
Конфигурация
Статическая компиляция
Датасеты
Маршалинг
Классы предметной области
Сервисы
Контроллеры
Приложение Micronaut
Micronaut Data

В этой статье поговорим о датасетах, маршалинге и классах предметной области.

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

Читать далее
Всего голосов 7: ↑4 и ↓3 +1
Просмотры 1.1K
Комментарии 0

Прощай, Grails. Привет, Micronaut

Блог компании OTUS Программирование *Groovy & Grails *
Перевод

Всего в цикле публикаций о миграции из Grails в Micronaut будет 10 частей:

Многомодульный проект
Конфигурация
Статическая компиляция
Датасеты
Маршалинг
Классы предметной области
Сервисы
Контроллеры
Приложение Micronaut
Micronaut Data

Обратите внимание: ваше приложение должно быть создано в Grails 4.x или более поздней версии.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Просмотры 902
Комментарии 0

Дикая природа Gradle Task: руководство по выживанию

Блог компании Yota Groovy & Grails *Разработка под Android *Kotlin *Gradle *
Tutorial

Приветствую, Gradle-адепт! В статье тебя ждёт авторский тур по Gradle Task. В маршрут включено хождение по граблям, изучение секретных практик buildscript-тасок, проведение раскопок по deprecated API, а ближе к концу зарядимся силой Custom Gradle Task, попрактикуемся в строительстве билд-кеша и узнаем, кто такой Worker API.

Читать далее
Всего голосов 17: ↑16 и ↓1 +15
Просмотры 6.2K
Комментарии 2

Наш опыт использования Jira: cоздание подзадач по шаблонам

Блог компании VK JavaScript *Groovy & Grails *Atlassian *


В предыдущей статье "Несколько примеров успешного изобретения велосипеда" мы поделились рядом решений, полученных путем комбинирования наших плагинов для Atlassian, таких как MyGroovy, JSIncluder и MyCalendar. На этот раз мы рассмотрим еще один плагин из нашей коллекции — Custom Select List.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры 4.5K
Комментарии 1

Gradle Plugin: Что, зачем и как?

Блог компании Yota Groovy & Grails *Разработка под Android *Kotlin *Gradle *
Tutorial

Доброго времени, читатель! В предыдущей статье мы рассмотрели, как эффективно использовать стандартные инструменты Gradle в проектах для решения повседневных задач и немного коснулись подкапотного пространства.

Под катом статьи проведём тур по Gradle-плагинам, разберёмся, для чего вы можете писать кастомные плагины уже сейчас, проникнемся процессом разработки на примере реализации плагина для Kotlin-кодогенерации и научимся обходить некоторые Gradle-грабли. 

В первой части статьи проведём небольшой теоретический экскурс и рассмотрим способы реализации плагинов, а во второй части двинемся к практической задаче и проникнемся разработкой плагина для Kotlin-кодогенерации. Заваривайте ваш любимый напиток и поехали.

Читать далее
Всего голосов 10: ↑10 и ↓0 +10
Просмотры 8.9K
Комментарии 2

Готовьсь, цельсь, пли! Как не обжечься при сборке Gradle-приложения, и настолько ли всё серьезно?

Блог компании Yota Groovy & Grails *Разработка под Android *Kotlin *Gradle *
Recovery mode

Доброго дня, читатель! Меня зовут Стручков Михаил и я Android-разработчик в команде мобильного оператора Yota. 

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

Предлагаю вам упростить тернистый путь к пониманию сборки Gradle-приложений, разобрать основные этапы и их особенности, и попробовать совместно сократить трафик stackoverflow на тему Gradle. В качестве бонуса немного коснемся Gradle-плагинов и разберемся, как к ним подходить. 

Читать далее
Всего голосов 23: ↑22 и ↓1 +21
Просмотры 13K
Комментарии 8

Jenkins Scripting Pipeline — генерация стадий выполнения

Блог компании Технологический Центр Дойче Банка Программирование *Groovy & Grails *DevOps *

Всем привет! В интернете довольно много статей, связанных с Declarative Jenkins pipeline, и совсем немного о Jenkins Scripting Pipeline, хотелось бы восполнить этот пробел.


image

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 12K
Комментарии 1

Пишем тысячи лог файлов одновременно

Ненормальное программирование *Java *Groovy & Grails *
Tutorial

Привет, Товарищи!


Что будет, если в приложении Spring Boot выставить logging.level.root=TRACE?


Все логи будут записаны в один файл, в котором будет куча-мала из классов.

Всего голосов 14: ↑11 и ↓3 +8
Просмотры 5.2K
Комментарии 8

Чёрный Ящик: забудьте о логировании

Groovy & Grails *
- Псст, тут есть кто-нибудь?
- Это хаб Groovy.
- Теперь вообще не нужно писать код логирования! Он добавляется автоматически!
- Круто, это сэкономит кучу времени и сил!

Привет!


В предыдущих статьях мы поговорили о логировании и о мета-программировании.


Теперь поговорим о мета-логировании.
Или о семантическом логировании — кому как нравится.


Логгер "Бобина" — это были цветочки. А вот и ягодки: Чёрный ящик.

Читать дальше →
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 2.8K
Комментарии 8

Путь из COBOL в Java: пишем транспилятор за сутки

Ненормальное программирование *Java *Groovy & Grails *Cobol *

Приветствую, Дорогие Друзья.


Продолжаем цикл статей, освещающий деятельность (бурную) нашей некоммерческой организации.


Как и обещал — переходим от простого (логирование) к более сложному: метапрограммирование.

Читать дальше →
Всего голосов 17: ↑17 и ↓0 +17
Просмотры 4.2K
Комментарии 12

Бобина 3.0.0 — обзор улучшений

Java *Groovy & Grails *
Recovery mode

Приветствую!


Прошлый год выдался крайне продуктивным для нашей некоммерческой организации, и эта статья является лишь началом цикла публикаций, освещающих нашу деятельность. А там есть о чём рассказать, ведь несколько наших продуктов оказались в центре больших банковских проектов — и о да — они не подвели!


Но начнём с чего-то простого и более понятного — и при этом, близкого всем нам без исключения — темы логирования.

Читать дальше →
Всего голосов 5: ↑5 и ↓0 +5
Просмотры 3.4K
Комментарии 4

Apache NIFI — Краткий обзор возможностей на практике

Habr Java *Groovy & Grails *Apache *Big Data *
Tutorial

Введение


Так получилось, что на моем текущем месте работы мне пришлось познакомиться с данной технологией. Начну с небольшой предыстории. На очередном митинге, нашей команде сказали, что нужно создать интеграцию с известной системой. Под интеграцией подразумевалось, что эта известная система будет нам слать запросы через HTTP на определенный ендпоинт, а мы, как это ни странно, слать обратно ответы в виде SOAP сообщения. Вроде все просто и тривиально. Из этого следует что нужно…

Читать дальше →
Всего голосов 12: ↑10 и ↓2 +8
Просмотры 13K
Комментарии 6

Выпускаем Predator — предкомпилированные Data-репозитории

Java *Groovy & Grails *Микросервисы *
Перевод


Сегодня, команда Micronaut в Object Computing Inc (OCI) представила Predator, новый проект с открытым исходным кодом, цель которого — значительно улучшить время выполнения и производительность (по памяти) доступа к данным для микросервисов и serverless-приложений, при этом не потеряв в продуктивности по сравнению с такими инструментами, как GORM и Spring Data.

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 5.9K
Комментарии 3

Улучшенный sandboxing для Groovy скриптов

Блог компании Haulmont Java *Groovy & Grails *
Перевод


От переводчика: При разработке CUBA Platform мы заложили в этот фреймворк возможность исполнения пользовательских скриптов для более гибкой настройки бизнес-логики приложений. О том, хороша или плоха эта возможность (и мы говорим не только о CUBA), ведутся долгие споры, но то, что контроль исполнения пользовательских сценариев необходим — это ни у кого не вызывает вопросов. Одна из полезных возможностей Groovy для управления исполнением пользовательских скриптов представлена в этом переводе статьи Cédric Champeau. Несмотря на то, что он недавно‏ покинул команду разработки Groovy, сообщество программистов, по видимому, еще долгое время будем пользоваться плодами его трудов.


Один из наиболее часто используемых способов использования Groovy — это скриптинг, поскольку Groovy позволяет легко исполнять код динамически, в рантайме. В зависимости от приложения, скрипты могут находиться в различных местах: файловой системе, БД, удаленных сервисах… но самое важное — разработчик приложения, исполняющего скрипты, не обязательно сам их пишет. Более того, скрипты могут работать в ограниченном окружении (ограниченный объем памяти, лимит на количество дескрипторов файлов, время исполнения…), или вы можете захотеть запретить пользователю использовать все возможности языка в скрипте.


Этот пост вам расскажет


  • почему Groovy хорошо подходит для написания внутренних DSL
  • каковы его возможности в плане безопасности вашего приложения
  • как настроить компиляцию для улучшения DSL
  • о значении SecureASTCustomizer
  • о расширениях для контроля типов
  • как использовать расширения для контроля типов, чтобы sandboxing был эффективным
Читать дальше →
Всего голосов 9: ↑9 и ↓0 +9
Просмотры 3K
Комментарии 1

Из Groovy ушёл Cédric Champeau‏

Блог компании JUG Ru Group Java *Groovy & Grails *Kotlin *


В проекте Apache Groovy перестаёт участвовать один из ключевых участников сообщества, само имя которого у многих ассоциировалось с этим языком. Уходит Седрик Шампо, известный в первую очередь как автор статического компилятора Groovy.

Если рассмотреть причины ухода в том виде, как их формулирует сам Седрик, получается история о том, как Groovy-сообщество хотело лучшего, а в итоге ненамеренно сделало себе хуже. В самом сообществе, впрочем, есть другие трактовки произошедшего. В любом случае история может быть интересна и разработчикам из JVM-мира, и не только.
Читать дальше →
Всего голосов 38: ↑36 и ↓2 +34
Просмотры 8.8K
Комментарии 13

Моки, стабы и шпионы в Spock Framework

Блог компании Haulmont Java *Groovy & Grails *TDD *
Перевод

Spock предоставляет 3 мощных (но разных по сути) инструмента, упрощающих написание тестов: Mock, Stub и Spy.



Довольно часто коду, который нужно протестировать, требуется взаимодействовать с внешними модулями, называющимися зависимостями (в оригинальной статье используется термин collaborators, который не очень распространён в русскоязычной среде).


Модульные тесты чаще всего разрабатываются для тестирования одного изолированного класса при помощи различных вариантов моков: Mock, Stub и Spy. Так тесты будут надёжнее и будут реже ломаться по мере того, как код зависимостей эволюционирует.


Такие изолированные тесты менее подвержены проблемам при изменении внутренних деталей реализации зависимостей.


От переводчика: каждый раз, когда я использую Spock Framework для написания тестов, я чувствую, что могу ошибиться при выборе способа подмены зависимостей. В этой статье есть максимально краткая шпаргалка по выбору механизма для создания моков.

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 14K
Комментарии 3

SDKMAN — мёртв, да здравствует SDKMAN

Блог компании Haulmont Java *Groovy & Grails *Go *
Перевод

TL;DR: SDKMAN CLI будет переписан на Golang

Шесть лет прошло с тех пор как мы выпустили первую версию SDKMAN. В более ранних версиях он был известен как GVM и использовался для управления Groovy и связанным с ним инструментарием. Вскоре стало очевидно, что он не должен ограничиваться экосистемой Groovy, и может также применяться к другим SDK на JVM. В этот момент GVM был переименован в SDKMAN. Хотя название и изменилось, основная технология осталась прежней.

Подобно тому, как GVM однажды перерос своё имя, SDKMAN перерос технологию, на которой он был построен. Несмотря на то, что сервисы бэкенда были заменены лучшими альтернативами, CLI клиент остался прежним и стал нашим самым большим источником разочарования.
Читать дальше →
Всего голосов 9: ↑8 и ↓1 +7
Просмотры 7.6K
Комментарии 17

Введение в Micronaut Framework

Java *Groovy & Grails *Распределённые системы *
Перевод


1. Что такое Micronaut


Micronaut — это фреймворк на JVM для построения легковесных модульных приложений. Он разработан компанией OCI, той же компанией, что подарила нам Grails. Micronaut это современный фреймворк, призванный сделать создание микросервисных приложений быстрым и простым.

Micronaut содержит возможности похожие на существующие фреймворки, такие как Spring, но в то же время он реализует некоторые новые идеи, которые являются его отличительными чертами. Вместе с поддержкой Java, Groovy и Kotlin он предлагает множество путей создания приложений.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 22K
Комментарии 15

Использование возможностей Groovy DSL для конфигурации Java-приложения

Java *Groovy & Grails *
Tutorial

Предыстория


Всем привет! Я хотел бы рассказать историю о страшных конфигах и как их удалось причесать и сделать вменяемыми. Я работаю над довольно большим и относительно старым проектом, который постоянно допиливается и разрастается. Конфигурация задается с помощью маппинга xml-файлов на java-бины. Не самое лучшее решение, но оно имеет свои плюсы — например, при создании сервиса можно передать ему бин с конфигурацией, отвечающий за его раздел. Однако, есть и минусы. Самый существенный из них — нет нормального наследования профилей конфигурации. В какой-то момент я осознал, что для того, чтобы поменять одну настройку, я должен отредактировать около 30 xml-файлов, по одному для каждого из профилей. Так больше продолжаться не могло, и было принято волевое решение все переписать.


Требования


  • Наследование и переопределение (или fallback). Должна быть возможность задать некий базовый профиль, унаследовать от него дочерние и переопределить или добавить в них те места, которые необходимо
  • Маппинг в java-бины. Переписывать по всему проекту использование конфигурации с бинов на проперти вида mongodb.directory.host не хотелось, использовать map-ы из map-ов тоже.
  • Возможность писать в конфиге комментарии. Не критично, но удобно и приятно.

Хотелось бы, чтобы конфиг выглядел примерно так:


Типичный DSL-скрипт на groovy
name = "MyTest"
description = "Apache Tomcat"

http {
    port = 80
    secure = false
}
https {
    port = 443
    secure = true
}

mappings = [
        {
            url = "/"
            active = true
        },
        {
            url = "/login"
            active = false
        }
]

Как я этого добился — под катом.

Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры 7.4K
Комментарии 19