Статьи

Лучшие Groovy-модули, о которых вы могли не знать


Ни для кого не секрет, что Groovy и многие другие связанные с ним вкусности довольно популярны, особенно в DZone, где
анонс Groovy 1.7 набрал 137 голосов, что делает его самой популярной ссылкой DZone в истории! Многие люди слышали об основанных на Groovy фреймворках, таких как Griffon и Grails, и о системе сборки Gradle, которая использует скрипты сборки Groovy. Если вы в последнее время просматривали страницу модулей Groovy
, то увидите, что существует множество других модулей на основе Groovy. Ниже перечислены пять действительно хороших модулей Groovy, но они не получили того внимания, которого заслуживают.

GroovyWS

В Groovy WS имеется некоторая поддержка Groovy для веб-служб. GroovyWS включает в себя Apache CXF, чтобы помочь вам быстро использовать, публиковать и тестировать веб-службы, совместимые с WS-I. GroovyWS может даже использовать защищенные веб-сервисы. Чтобы вызвать веб-сервис, использующий сложный тип, просто напишите сигнатуру метода и его параметры, и GroovyWS создаст правильное сообщение SOAP и вызовет удаленный веб-сервис во время выполнения. Сложные типы автоматически генерируются из WSDL, компилируются и становятся доступны через ваш загрузчик классов. Клиентский API предоставляет метод для простого создания экземпляра сложного объекта по имени класса. GroovyWS облегчает жизнь, регистрируя имена классов, которые генерируются на лету. Клиентская часть GroovyWS легко интегрируется с приложениями Grails и Griffon.

Scriptom

Этот модуль сочетает в себе «синтаксический сахар» Groovy с
Джейкобом(Java COM Bridge) библиотека для использования ActiveX или COM компонентов Windows от Groovy. Для сопоставления COM-объектов с Groovy-объектами во время выполнения используются динамические (с поздним связыванием) принципы Groovy, поэтому вам не нужно много знать о COM, чтобы использовать Scriptom. Вам также не нужно иметь дело с библиотеками типов, и нет никаких оболочек для обслуживания. Просто закодируйте и запустите. Scriptom получил свое название, потому что он подобен сценарию в том смысле, что он похож на написание кода с использованием VBScript (но с более продвинутым языком Groovy). Помимо прочего, Scriptom можно использовать для автоматизации документов Word или Excel, управления Internet Explorer, общения с ПК с помощью Microsoft Speech API, мониторинга процессов с помощью WMI (инструментария управления Windows) или просмотра реестра Windows с помощью WShell. Разговор с кастомным VB6 или Microsoft.NET библиотеки также намного проще с Scriptom.

Groovy Monkey

Если вы работаете над автоматизацией задач в Eclipse или вообще разрабатываете плагины, это инструмент для вас! Groovy Monkey — это ветка программного обеспечения Eclipse Monkey, основанного на Eclipse Jobs API. Это позволяет пользователям быстро пробовать части Eclipse API без дополнительных затрат на плагин или отдельный экземпляр времени выполнения. Это динамический инструмент создания сценариев для написания быстрой и многократно используемой функциональности (например, автоматизации задач), облегчающей жизнь с Eclipse. Groovy Monkey можно использовать даже для перевода быстрой и грязной работы в плагин. Поскольку Groovy Monkey основан на Eclipse API, вы можете без проблем следить за ходом работы на платформе и писать сценарии, которые пользователи могут отменить на полпути. Groovy Monkey также основывается на Apache Bean Scripting Framework (BSF) и OSGi. BSF позволяет писать сценарии на нескольких языках (Beanshell, Ruby,Python), а не просто Groovy! (Но почему бы вам не написать в Groovy? ;-)) Каркас OSGI позволяет Groovy Monkey добавлять загрузчик классов любого пакета в рабочей среде в загрузчик классов скрипта. Это также позволяет Groovy Monkey выполнять анализ белого окна запущенных пакетов / плагинов.

Groosh

Groosh — это Unix-подобная оболочка, написанная на Groovy и может использоваться с Grapes. Grape — это инфраструктура, которая обеспечивает вызовы grab () в Groovy, которые используют Apache Ivy, что позволяет использовать систему модулей, управляемую хранилищем, для Groovy. С Grapes (@Grab) Groosh может стать мощной альтернативой обычным сценариям оболочки. Вот простой пример Groosh в действии:

//Read a text file and write it to stdout
@Grapes([
@Grab(group='org.codehaus.groovy.modules',module='groosh',version='[0.3.6,)'),
@GrabConfig(systemClassLoader=true)
])

import groosh.Groosh
Groosh.withGroosh(this)

cat('test_scripts/blah.txt') >> stdout

GroovySWT

Для построения графического интерфейса Groovy имеет оболочку для Eclipse Standard Widget Toolkit (SWT). GroovySWT позволяет вам легко писать приложения Eclipse SWT прямо в механизме сборки Groovy. Использование Groovy вместо Java для приложений SWT может
значительно сократить объем необходимого кода. Вот некоторый SWT-код с использованием нативного Groovy:

import org.eclipse.swt.SWT
import org.eclipse.swt.widgets.*
import org.eclipse.swt.layout.RowLayout as Layout

def display = new Display()
def shell = new Shell(display)

shell.layout = new Layout(SWT.VERTICAL)

shell.text = 'Groovy / SWT Test'

def label = new Label(shell, SWT.NONE)
label.text = 'Simple demo of Groovy and SWT'
shell.defaultButton = new Button(shell, SWT.PUSH)
shell.defaultButton.text = ' Push Me '

shell.pack()
shell.open()

while (!shell.disposed) {
if (!shell.display.readAndDispatch()) shell.display.sleep()
}

Когда вы запускаете скрипт, это результат:

Griffon разрешит использование GroovySWT в
самом ближайшем будущем.

_________

Большое спасибо
Andres Almiray за помощь в составлении этого списка.

Вы уже пробовали какой-либо из этих инструментов? Думаете, есть еще один Groovy-модуль, который заслуживает большего внимания? Скажите нам, что вы думаете, Groovy-любовник.