addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwchatcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgoogleimageimagesinstagramlinklocation-pinmagnifying-glassmailminusmoremuplabelShape 3 + Rectangle 1outlookpersonplusprice-ribbonImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruseryahoo

Groovy DSLs and API Design with Baruch Sadogursky (a.k.a JBaruch)

We are very lucky to have Baruch Sadogursky (a.k.a. JBaruch) stop by NYC on his way to JavaOne.  He can only make it on this day, hence the Friday meeting.  Hope you can make it - should be a great one!  As you know, Groovy is especially well suited for creation of DSLs - Baruch will talk about that, and more!


Baruch Sadogursky (a.k.a JBaruch) is the Developer Advocate of JFrog, the creators of Artifactory Binary Repository, the home of Bintray, and JavaOne 2011 Duke Choice Awards winner.  For a living he hangs out with the JFrog tech leaders, writes some code around Artifactory and Bintray, and then speaks and blogs about all that. He does it repeatedly for the last 10 years and enjoys every moment of it.Baruch is @jbaruch on twitter and mostly blogs on and His speaker history on Lanyrd:


Plugging the users in - extend your application with pluggable Groovy DSL.  It is often beneficial to allow users extend your software with their own logic. With the rise of dynamic languages on the JVM it is also much more easier to do than ever before. In this session we will share our experience in creating Groovy authored user plugins interface.

After a brief introduction to domain specific languages (DSLs), their relevance to user plugins and how they can be easily implemented in Groovy, we’ll look at more user-friendly, but developer-challenging type of DSLs, which support plugins written both in Groovy or Java.

Good public API design is another very important aspect - while the APIs have to be broad enough to allow interesting functionality, internals should stay close to allow changes and further development. Exposing APIs to the world come with great responsibility - once published they can’t be changed without a price, so it is important keep backwards compatibility in mind.

Another very important aspect is security - you let strangers into your chambers, and you better be ready. Leveraging security mechanisms is essential to establish proper sandboxing and protect your application from malicious or faulty plugins.
Finally, we will cover another very important and nontrivial aspect of user plugins exposure - the classpath isolation when your plugins require dependencies. We will compare different solutions like establishing classpath hierarchies, OSGi, JBoss modules and the long-awaited Project Jigsaw.---

He going to deliver these talks in SpringOne 2GX this year and can stop by way to JavaOne in NYC Sept 20.

Join or login to comment.

  • Eugene D.

    Interesting talk. Thank to Jean and Baruch. It would we good if Baruch can share code samples he demonstrated somewhere on GitHub. Then we can research in depth the topic.

    1 · September 21, 2013

    • Baruch S.

      I'll do my best. As I mentioned, we need to figure out how we can publish it, since this part of Artifactory codebase is not open-source.

      September 21, 2013

    • Eugene D.

      Hi Baruch, I am interested how did you passed DSL command (verb) into groovy shell. I use binding, but your mentioned methodNonfound exception. Any progress on publishing some code snippets from your talk?

      October 12, 2013

  • Baruch S.

    Hi folks, I'll upload my slides shortly, will post the link once done. Regarding the DSL talk I mentioned - SpringOne and JavaOne talks were boh recorded, I'll let you know when I'll see them online. Here's a relatively old version of it -

    September 30, 2013

  • Mehboob A.

    Found an old slide deck from Peter Bell, who presented here before..

    September 21, 2013

  • Pat C.

    Well prepared and informative talk! Since I'm a Groovy newbie, Jean's clarifications were very helpful. Thanks Barauch and Jean.

    1 · September 21, 2013

  • Mehboob A.

    Very enlightening real-world example of DSLs, made my interest in Groovy grow even stronger. Thanks Baruch!

    1 · September 21, 2013

  • Scott M.

    Thank you Baruch and thank you Jean for organizing.

    1 · September 21, 2013

  • Amit

    Baruch's talk will inspire me to look into DSL more deeply. Thanks for organizing this talk

    2 · September 21, 2013

  • Amit

    have programmed in groovy. So this is interesting

    1 · September 19, 2013

  • Mehboob A.

    Looking forward to this.. is there a firm location yet?

    September 17, 2013

    • Mehboob A.

      Thanks for putting this together at such short notice.

      September 18, 2013

  • Kenneth L.

    Wow this sounds like a great talk but I won't be able to make it.

    1 · September 13, 2013

Our Sponsors

  • SpringSource

    SpringSource has generously provided us with space for meetings.

  • Yodle

    Yodle has hosted our meetups. They are a java shop, but use groovy.

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy