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

Groovy & Grails *

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

Сначала показывать
  • Новые
  • Лучшие
Порог рейтинга
  • Все
  • ≥0
  • ≥10
  • ≥25
  • ≥50
  • ≥100

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

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

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

Читать далее
Всего голосов 15: ↑14 и ↓1 +13
Просмотры 3K
Комментарии 1

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

Блог компании Mail.ru Group JavaScript *Groovy & Grails *Atlassian *


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


image

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

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

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

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


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


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

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

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

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

Привет!


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


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


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

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

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

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

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


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


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

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

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

Java *Groovy & Grails *

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


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


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

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

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

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

Введение


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

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

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

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


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

Читать дальше →
Всего голосов 18: ↑16 и ↓2 +14
Просмотры 5.8K
Комментарии 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
Просмотры 2.6K
Комментарии 1

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

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


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

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

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

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

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



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


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


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


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

Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры 12K
Комментарии 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.1K
Комментарии 17

Введение в Micronaut Framework

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


1. Что такое Micronaut


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

Micronaut содержит возможности похожие на существующие фреймворки, такие как Spring, но в то же время он реализует некоторые новые идеи, которые являются его отличительными чертами. Вместе с поддержкой Java, Groovy и Kotlin он предлагает множество путей создания приложений.
Читать дальше →
Всего голосов 14: ↑13 и ↓1 +12
Просмотры 19K
Комментарии 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
Просмотры 6.6K
Комментарии 18

[Питер] Встреча JUG.ru с Олегом Ненашевым из CloudBees — Groovy DSL в Jenkins и Pipeline. Реализации и подводные грабли

Блог компании JUG Ru Group Java *Groovy & Grails *IT-инфраструктура *DevOps *


В понедельник, 4 декабря, в офисе компании Oracle состоится встреча с Олегом Ненашевым, разработчиком в компании CloudBees, которая является одним из основных контрибьюторов Jenkins. Тема встречи — Groovy DSL в Jenkins и Pipeline.

Несмотря на появление новых средств CI/CD, Jenkins остается одним из наиболее популярных серверов автоматизации. Он фактически является распределенным веб-сервисом и предоставляет различные DSL, в том числе с доступом к JVM и внутренним API. Давать такой доступ нужно аккуратно, а то в продакшне будет мучительно больно: security, UX, performance, и т.д. О предотвращении этой боли и пойдет разговор.

Олег расскажет:

  • как в Jenkins реализованы Groovy DSL и почему их так много;
  • как в Jenkins Pipeline реализованы Groovy Sandbox, доступ к API Java, Script Security и персистентность контекста при рестарте;
  • какие архитектурные проблемы это вызывает;
  • как можно при всем этом расширять и поддерживать DSL для частных задач.
Читать дальше →
Всего голосов 26: ↑22 и ↓4 +18
Просмотры 3.4K
Комментарии 12

Интеграционные тесты для Java с помощью TestContainers. Меньше безумия, больше порядка, и всё это автоматически

Блог компании JUG Ru Group Тестирование IT-систем *Java *Groovy & Grails *Тестирование веб-сервисов *
Перевод
Tutorial

На Хабре совсем нет информации про TestContainers. На момент написания этой статьи, в поисковой выдаче есть анонсы наших же конференций, и всё. Между тем, в проекте на GitHub у них уже более 700 коммитов, 54 контрибьютора и 5 лет истории. Похоже, все эти пять лет проект тщательно скрывался спецслужбами и НЛО. Настало время выйти из тени на свет.



Чукча — читатель, а не писатель. Поэтому, вместо написания своего текста, я попросил разрешения на перевод соответствующей статьи из блога RebelLabs.


Итак, здесь мы поделимся парой слов о наимоднейшей Java-библиотеке для интеграционного тестирования — TestContainers. Кроме этого, будет немного о том, почему интеграционное тестирование настолько важно для ZeroTurnaround и их требования к интеграционным тестам. И конечно, будет полнофункциональный пример интеграционного теста для Java-агента. Если кто-то никогда в глаза не видел код Java-агента, то сейчас самое время. Добро пожаловать под кат!

Всего голосов 27: ↑25 и ↓2 +23
Просмотры 27K
Комментарии 18

Приглашаем на Atlassian Meetup 12 декабря

Блог компании Mail.ru Group Java *Groovy & Grails *Service Desk *Atlassian *


Друзья, приглашаем всех неравнодушных на очередную встречу Atlassian Meetup, которая пройдёт 12 декабря в московском офисе Mail.Ru Group. Как всегда, в программе интересные доклады о способах и особенностях использования продуктов линейки Atlassian.
Читать дальше →
Всего голосов 14: ↑14 и ↓0 +14
Просмотры 2.1K
Комментарии 0