Save This Page
Home » activemq-parent-5.3.1-source-release » org.apache » activemq » console » [javadoc | source]
    1   /**
    2    * Licensed to the Apache Software Foundation (ASF) under one or more
    3    * contributor license agreements.  See the NOTICE file distributed with
    4    * this work for additional information regarding copyright ownership.
    5    * The ASF licenses this file to You under the Apache License, Version 2.0
    6    * (the "License"); you may not use this file except in compliance with
    7    * the License.  You may obtain a copy of the License at
    8    *
    9    *      http://www.apache.org/licenses/LICENSE-2.0
   10    *
   11    * Unless required by applicable law or agreed to in writing, software
   12    * distributed under the License is distributed on an "AS IS" BASIS,
   13    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   14    * See the License for the specific language governing permissions and
   15    * limitations under the License.
   16    */
   17   package org.apache.activemq.console;
   18   
   19   import java.io.ByteArrayOutputStream;
   20   import java.util.ArrayList;
   21   import java.util.List;
   22   import java.util.StringTokenizer;
   23   
   24   import javax.jms.TextMessage;
   25   
   26   import org.apache.activemq.broker.util.CommandHandler;
   27   import org.apache.activemq.console.command.ShellCommand;
   28   import org.apache.activemq.console.formatter.CommandShellOutputFormatter;
   29   
   30   /**
   31    * A default implementation of the @{link CommandHandler} interface
   32    *
   33    * @version $Revision: $
   34    */
   35   public class ConsoleCommandHandler implements CommandHandler {
   36   
   37       private ShellCommand command = new ShellCommand(true);
   38   
   39       public void processCommand(TextMessage request, TextMessage response) throws Exception {
   40   
   41           ByteArrayOutputStream out = new ByteArrayOutputStream();
   42           CommandContext ctx = new CommandContext();
   43           ctx.setFormatter(new CommandShellOutputFormatter(out));
   44   
   45           // lets turn the text into a list of arguments
   46           String requestText = request.getText();
   47   
   48           List<String> tokens = tokenize(requestText);
   49           command.setCommandContext(ctx);
   50           command.execute(tokens);
   51   
   52           out.flush();
   53           byte[] bytes = out.toByteArray();
   54   
   55           String answer = new String(bytes);
   56   
   57           response.setText(answer);
   58       }
   59   
   60       protected List<String> tokenize(String text) {
   61           List<String> answer = new ArrayList<String>();
   62           StringTokenizer iter = new StringTokenizer(text);
   63           while (iter.hasMoreTokens()) {
   64               answer.add(iter.nextToken());
   65           }
   66           return answer;
   67       }
   68   }

Save This Page
Home » activemq-parent-5.3.1-source-release » org.apache » activemq » console » [javadoc | source]