CRaSH: the shell for the Java Platform
Upcoming SlideShare
Loading in...5
×
 

CRaSH: the shell for the Java Platform

on

  • 1,152 views

Learn how to provide a powerful command line interface to your JVM with CRaSH the shell for the Java Platform. ...

Learn how to provide a powerful command line interface to your JVM with CRaSH the shell for the Java Platform.

CRaSH is an open source shell for extending and monitoring a Java Virtual Machine. The shell can be accessed by various means, either remotely using network protocols such as SSH or locally by attaching a shell to a running virtual machine.

Commands are written in the Groovy language and can be developed live making the extensibility of the shell easy with quick development cycles. CRaSH comes with a bunch of commands such as thread management, log management, database access and JMX.

The session will begin with an introduction to the shell, showing basic CRaSH features like auto completion and basic commands. The main part of the quickie will focus on showing how to develop CRaSH commands with several examples, showing how easy and powerful the development of a command can be.

The target audience is pretty much anyone using a JVM. Attendees will learn how to install CRaSH, connect to an instance and develop a CRaSH command to interact with virtual machine resources or services.

Statistics

Views

Total Views
1,152
Slideshare-icon Views on SlideShare
1,152
Embed Views
0

Actions

Likes
1
Downloads
2
Comments
0

0 Embeds 0

No embeds

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    CRaSH: the shell for the Java Platform CRaSH: the shell for the Java Platform Presentation Transcript

    • CRaSH TH E SH EL L FOR TH E J AVA PL ATFOR M S E P T E M B E R 2 0 1 3 @julienviet @defrancea
    • www.exoplatform.com - Copyright 2012 eXo Platform 2 JULIEN VIET − Contact − julien@julienviet.com − @julienviet − http://github.com/vietj − Open source for 10 years − Official mission: deliver enterprise grade portal server − Marseille JUG Leader − Involved in Java Community Process
    • www.exoplatform.com - Copyright 2012 eXo Platform 3 WHAT IS EXO PLATFORM? eXo Platform is an open source social collaboration software solution designed for the Enterprise. It is full featured, standard based, extensible and has an amazing design. eXo Platform is featured in Gartner's Magic Quadrant for Horizontal Portal Products 2012 as a User eXperience Platform.
    • www.exoplatform.com - Copyright 2012 eXo Platform 4 ALAIN DEFRANCE − Contact − defrancea@gmail.com − @alaindefrance − http://github.com/defrancea − Open source for 3 years − Contributed to open source projects like Crash − Marseille JUG Leader
    • www.exoplatform.com - Copyright 2012 eXo Platform 5 BITTITAN − SAAS Products − MigrationWiz: Email migration − SMTPLogic: SMTP gateway − UserActivation: Easy onboarding to Office365 − Our blog − http://blog.bittitan.com
    • www.exoplatform.com - Copyright 2012 eXo Platform 6 CRASH PROJECT − Latest stable 1.2 − Work in progress 1.3 − Licensed under LGPL − Compatibility − Java 6+ − Groovy 1.7+
    • www.exoplatform.com - Copyright 2012 eXo Platform 7 KEY CONCEPTS − Command Line Interface for JVM − Create easily and quickly commands − Compose commands into pipelines − Connectors provide local or remote access
    • www.exoplatform.com - Copyright 2012 eXo Platform 8 MODULAR DESIGN − Core, connectors, plugins − Only use what you need − Memory − Dependencies
    • www.exoplatform.com - Copyright 2012 eXo Platform 9 CONNECTORS − Defines shell interactions − Asynchronous design − Implemented by − System.in / System.out − Telnet − SSH − Web − Attach
    • www.exoplatform.com - Copyright 2012 eXo Platform 10 PLUGIN ARCHITECTURE − Keep core small and lightweight − New features without impacting core − Current plugins − Authentication: simple, jaas, key, crowd, … − Languages: java, groovy, ruby, … − Services: mail, cron, …
    • www.exoplatform.com - Copyright 2012 eXo Platform 11 USER INTERFACE − Interactive Real-Eval-Print-Loop − SSH asynchronous execution − Cron based execution (1.3)
    • www.exoplatform.com - Copyright 2012 eXo Platform 12 POLYGLOT − Leverage polyglot JVM ecosystem − Groovy − Commands − REPL (1.3) − Java − Commands (1.3) − Ruby work in progress
    • www.exoplatform.com - Copyright 2012 eXo Platform 13 EXECUTION MODES − Standalone − Attach to a running JVM − Embedded − Servlet listener − Spring − Guice − Grails − VisualVM
    • www.exoplatform.com - Copyright 2012 eXo Platform 14 BASE COMMANDS − Covers JVM packages − system − jdbc − jndi − jmx − Utilities: filter, sort, egrep, sleep
    • www.exoplatform.com - Copyright 2012 eXo Platform 15 STANDALONE DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 16 JNDI/JDBC/JPA ATTACH DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 17 WRITING A COMMAND public class mycommand { @Command @Usage(“the command”) public void main( @Usage(“foo option”) @Option(names=[ “foo”]) String foo, @Usage(“command arguments”) @Argument List<String> args) { … } } % mycommand –foo the_option value1 value2
    • www.exoplatform.com - Copyright 2012 eXo Platform 18 EMBEDDED − Trivial to embed − Programmatic − Spring − Guice − Servlet listener − Levels − Embed − Virtual file system
    • www.exoplatform.com - Copyright 2012 eXo Platform 19 EMBEDDED BY
    • www.exoplatform.com - Copyright 2012 eXo Platform 20 SPRING EMDEDDED TWITTER COMMAND DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 21 GIT LIKE COMMAND public class git { @Command public void add(…) {…} @Command public void commit(…) {…} … } % git add . % git commit –m “feature implemented”
    • www.exoplatform.com - Copyright 2012 eXo Platform 22 TYPES − String, primitive types, enums − Converter − properties, jmx object name … − Completer − java.io.File − system property name − enums − …
    • www.exoplatform.com - Copyright 2012 eXo Platform 23 COMMAND PIPE jmx find ObjectName Map jmx get sort
    • www.exoplatform.com - Copyright 2012 eXo Platform 24 COMMAND PIPE public class wc { @Command public PipeCommand<String, Integer>) main() { return new PipeCommand<String, Integer>() { int count = 0; public void provide(String s) { count += s.split(“n”).length; } public void close() { context.provide(count); } } } }
    • www.exoplatform.com - Copyright 2012 eXo Platform 25 JMX PIPE DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 26 MAIL/CRON DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 27 READ-EVAL-PRINT-LOOP − Feature of 1.3 − Polyglot
    • www.exoplatform.com - Copyright 2012 eXo Platform 28 REPL DEMO
    • www.exoplatform.com - Copyright 2012 eXo Platform 29 WRAP UP − A multi facet, powerful and extensible tool for all of us − Try online : try.crashub.org − Reach us at − crashub.org − @crashub − crash-users@googlegroups.com