001    package org.crsh.shell.impl;
002    
003    import groovy.lang.Script;
004    import org.crsh.command.GroovyScriptCommand;
005    import org.crsh.command.ShellCommand;
006    import org.crsh.plugin.PluginContext;
007    import org.crsh.plugin.ResourceKind;
008    
009    /** @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a> */
010    public class CRaSH {
011    
012    
013      /** . */
014      final ClassManager<ShellCommand> commands;
015    
016      /** . */
017      final ClassManager<Script> lifecycles;
018    
019      /** . */
020      final PluginContext context;
021    
022      public CRaSH(PluginContext context) {
023        this.context = context;
024        this.commands = new ClassManager<ShellCommand>(context, ResourceKind.COMMAND, ShellCommand.class, GroovyScriptCommand.class);
025        this.lifecycles = new ClassManager<Script>(context, ResourceKind.LIFECYCLE, Script.class, Script.class);
026      }
027    
028      public CRaSHSession createSession() {
029        return new CRaSHSession(this);
030      }
031    }