Рубрики
Без рубрики

Начало работы с CRaSH

Быстрое и практичное руководство по CRaSH.

Автор оригинала: Dhrubajyoti Bhattacharjee.

Начало работы с CRaSH

1. Введение

CRaSH является повторной оболочкой, которая развертывается в JVM и помогает нам взаимодействовать с JVM.

В этом учебнике мы увидим, как установить CRaSH в качестве автономного приложения. Кроме того, мы встраиваемся в приложение Spring Web и создадим некоторые пользовательские команды.

2. Автономная установка

Давайте установим CRaSH в качестве автономного приложения, загрузив дистрибутив из Официальный сайт CRaSH.

Структура каталога CRaSH содержит три важных каталога cmd, бен, и conf:

бен каталог содержит автономные скрипты CLI для запуска CRaSH.

cmd каталог содержит все команды, которые он поддерживает из коробки. Кроме того, это где мы можем поставить наши пользовательские команды. Мы изумьем это в более поздних разделах этой статьи.

Чтобы начать CLI, мы идем к бен и начать автономный экземпляр либо с аварии.bat или crash.sh:

3. Встраивание CRaSH в весеннее веб-приложение

Давайте встраиваем CRaSH в веб-приложение Spring. Во-первых, нам понадобится несколько зависимостей:


    org.crashub
    crash.embed.spring
    1.3.2


    org.crashub
    crash.cli
    1.3.2


    org.crashub
    crash.connectors.telnet
    1.3.2

Мы можем проверить для последней версии в Мавен Центральный .

CRaSH поддерживает Java и Groovy, поэтому нам нужно добавить Groovy для скриптов Groovy для работы:


    org.codehaus.groovy
    groovy
    3.0.0-rc-3

Его последняя версия также находится в Мавен Центральный .

Далее, мы должны добавить слушателя в нашем веб.xml:


    org.crsh.plugin.WebPluginLifeCycle

Теперь, когда слушатель готов, давайте добавим свойства и команды в ВЕБ-ИНФ каталог. Мы создадим каталог под названием аварийное и положить команды и свойства внутри него:

После развертывания приложения мы можем подключиться к оболочке через telnet:

telnet localhost 5000

Мы можем изменить порт Telnet в crash.properties файл с использованием crash.telnet.port свойство.

Кроме того, мы также можем создать spring bean для настройки свойств и переопределения местоположения каталога команды:


    
    
    
        
             5000
         
     

4. CRaSH и весенняя загрузка

Весенняя загрузка используется, чтобы предложить CRaSH в качестве встроенного продать, через его удаленной оболочки:


    org.springframework.boot
    spring-boot-starter-remote-shell

К сожалению, поддержка в настоящее время deprecated. Если мы все еще хотим использовать оболочку вместе с приложением Spring Boot, мы можем использовать режим присоединения. В режиме крепления CRaSH зацепит JVM приложения Spring Boot вместо своего собственного:

crash.sh 

Здесь < PID> идентификатор процесса этого экземпляра JVM. Мы можем получить идентификаторы процесса для JVM работает на хосте с помощью JPS команда.

5. Создание таможенного командования

Теперь давайте создадим пользовательскую команду для нашей аварийной оболочки. Есть два способа создания и использования команд; один с помощью Groovy, а также с Java. Мы будем смотреть на них один за другим.

5.1. Командование с Groovy

Во-первых, давайте создадим простую команду с Groovy:

class message {
	
    @Usage("show my own message")
    @Command
    Object main(@Usage("custom message") @Option(names=["m","message"]) String message) {
        if (message == null) {
            message = "No message given...";
        }
        return message;
    }
}

@Command аннотация отмечает метод как команду, @Usage используется для отображения использования и параметров команды, и, наконец, @Option для любых параметров, которые должны быть переданы команде.

Давайте проверить команду:

5.2. Командование с Java

Давайте создадим ту же команду с Java:

public class message2 extends BaseCommand {
    @Usage("show my own message using java")
    @Command
    public Object main(@Usage("custom message") 
      @Option(names = { "m", "message" }) String message) {
        if (message == null) {
            message = "No message given...";
        }
        return message;
    }
}

Команда похожа на команду Groovy, но здесь мы должны расширить org.crsh.command.BaseCommand.

Итак, давайте еще раз проверить:

6. Заключение

В этом учебнике мы рассмотрели возможность установки CRaSH в качестве автономного приложения, встраивая его в веб-приложение Spring. Кроме того, мы создали таможенные команды с Groovy, а также Java.

Как всегда, код доступен на GitHub .