001    package org.crsh.shell.impl.command;
002    
003    import org.crsh.plugin.CRaSHPlugin;
004    import org.crsh.plugin.PluginContext;
005    import org.crsh.shell.Shell;
006    import org.crsh.shell.ShellFactory;
007    
008    import java.security.Principal;
009    
010    /** @author <a href="mailto:julien.viet@exoplatform.com">Julien Viet</a> */
011    public class CRaSHShellFactory extends CRaSHPlugin<ShellFactory> implements ShellFactory {
012    
013      /** . */
014      private CRaSH crash;
015    
016      public CRaSHShellFactory() {
017      }
018    
019      @Override
020      public void init() {
021        PluginContext context = getContext();
022        crash = new CRaSH(context);
023      }
024    
025      @Override
026      public ShellFactory getImplementation() {
027        return this;
028      }
029    
030      public Shell create(Principal principal) {
031        return crash.createSession(principal);
032      }
033    }