plugging the users in - extend your application with pluggable groovy dsl

38
© 2013 SpringOne 2GX. All rights reserved. Do not distribute without permission. Plugging the users in extend your application with pluggable Groovy DSL

Upload: spring-io

Post on 18-Nov-2014

158 views

Category:

Technology


0 download

DESCRIPTION

Speakers: Baruch Sadogursky 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 ublished 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.

TRANSCRIPT

Page 1: Plugging the users in - extend your application with pluggable Groovy DSL

© 2013 SpringOne 2GX. All rights reserved. Do not distribute without permission.

Plugging the users in

extend your application with pluggable Groovy DSL

Page 2: Plugging the users in - extend your application with pluggable Groovy DSL
Page 3: Plugging the users in - extend your application with pluggable Groovy DSL
Page 4: Plugging the users in - extend your application with pluggable Groovy DSL
Page 5: Plugging the users in - extend your application with pluggable Groovy DSL
Page 6: Plugging the users in - extend your application with pluggable Groovy DSL
Page 7: Plugging the users in - extend your application with pluggable Groovy DSL
Page 8: Plugging the users in - extend your application with pluggable Groovy DSL
Page 9: Plugging the users in - extend your application with pluggable Groovy DSL
Page 10: Plugging the users in - extend your application with pluggable Groovy DSL
Page 11: Plugging the users in - extend your application with pluggable Groovy DSL
Page 12: Plugging the users in - extend your application with pluggable Groovy DSL
Page 13: Plugging the users in - extend your application with pluggable Groovy DSL
Page 14: Plugging the users in - extend your application with pluggable Groovy DSL
Page 15: Plugging the users in - extend your application with pluggable Groovy DSL

– scheduled tasks

Page 16: Plugging the users in - extend your application with pluggable Groovy DSL

– scheduled tasks

– Custom security realms

Page 17: Plugging the users in - extend your application with pluggable Groovy DSL

– scheduled tasks

– Custom security realms

– Change resolution rules

Page 18: Plugging the users in - extend your application with pluggable Groovy DSL

– scheduled tasks

– Custom security realms

– Change resolution rules

– Manipulate downloaded

content

Page 19: Plugging the users in - extend your application with pluggable Groovy DSL

– scheduled tasks

– Custom security realms

– Change resolution rules

– Manipulate downloaded

content

– Listeners on storage

events

Page 20: Plugging the users in - extend your application with pluggable Groovy DSL

– Custom security realms

– Change resolution rules

– Manipulate downloaded

content

– Listeners on storage

events

– searches

Page 21: Plugging the users in - extend your application with pluggable Groovy DSL

– Change resolution rules

– Manipulate downloaded

content

– Listeners on storage

events

– searches

– New rest commands

Page 22: Plugging the users in - extend your application with pluggable Groovy DSL

– Manipulate downloaded

content

– Listeners on storage

events

– searches

– New rest commands

– Custom promotions

Page 23: Plugging the users in - extend your application with pluggable Groovy DSL

– Listeners on storage

events

– searches

– New rest commands

– Custom promotions

– Deploy and query

artifacts and metadata

Page 24: Plugging the users in - extend your application with pluggable Groovy DSL

– Etc.

Page 25: Plugging the users in - extend your application with pluggable Groovy DSL

Page 26: Plugging the users in - extend your application with pluggable Groovy DSL

Page 27: Plugging the users in - extend your application with pluggable Groovy DSL

Page 28: Plugging the users in - extend your application with pluggable Groovy DSL

Page 29: Plugging the users in - extend your application with pluggable Groovy DSL

Page 30: Plugging the users in - extend your application with pluggable Groovy DSL
Page 31: Plugging the users in - extend your application with pluggable Groovy DSL

Page 32: Plugging the users in - extend your application with pluggable Groovy DSL

Page 33: Plugging the users in - extend your application with pluggable Groovy DSL
Page 34: Plugging the users in - extend your application with pluggable Groovy DSL

• System.exit(0)

Page 35: Plugging the users in - extend your application with pluggable Groovy DSL
Page 36: Plugging the users in - extend your application with pluggable Groovy DSL

Page 37: Plugging the users in - extend your application with pluggable Groovy DSL

Page 38: Plugging the users in - extend your application with pluggable Groovy DSL