The shell for the Java Platform

Related tags

Utility crash
Overview
   ______
 .~      ~. |`````````,       .'.                   ..'''' |         |
|           |'''|'''''      .''```.              .''       |_________|
|           |    `.       .'       `.         ..'          |         |
 `.______.' |      `.   .'           `. ....''             |         |

The Common Reusable SHell (CRaSH) is a shell designed for extending Java programs and the Java Virtual Machine.

How to build CRaSH

Obtaining CRaSH source code

CRaSH can be obtained by cloning the Git repository [email protected]:crashub/crash.git

git clone [email protected]:crashub/crash.git

Building CRaSH

CRaSH is built with Maven.

mvn package

The build produces several archives ready to use:

  • crsh.shell-${version}-standalone.jar : a minimalistic standalone jar (to run with java -jar crsh.shell-${version}-standalone.jar)
  • packaging/target/crsh-${version}-spring.war : the Spring war
  • packaging/target/crsh-${version}.war : the web app war

It also produce the distribution:

  • distrib/target/crash-${version}-docs.tar.gz : the documentation
  • distrib/target/crash-${version}.tar.gz : the standalone distribution
  • distrib/target/crash-${version}-war.tar.gz : the web app distribution
  • distrib/target/crash-${version}-spring.tar.gz : the Spring distribution
  • distrib/target/crash-${version}-mule-app.tar.gz : the Mule distribution
Comments
  • Support interruption of command line editing

    Support interruption of command line editing

    This affects standalone mode.

    In most of popular shells when you are entering a command and you press Ctrl+C (intr) the shell starts a new prompt below and the old text is visible above. This behavior is present when connecting over ssh to crsh.

    This patch leverages jline feature which allows to enable interruption of readline() invocations.

    opened by tgrabiec 11
  • SSH: Add host key pem generator

    SSH: Add host key pem generator

    CRaSH is used on multiple servers (we, specifically, use it as standalone), so it is needed to have a different host key per installation. For this, we find it somewhat a requirement to generate the host key per installation, either at boot or when someone first connects through SSH (Apache's SSHD examples are using SimpleGeneratorHostKeyProvider).

    This patch adds the option to automatically generate a host key, by demand. A new option (ssh.keygen) in crash.properties was added.

    I've made sure this patch is backward compatible. It's also OK to first use it with "ssh.keygen=true" and then disable it. The key is generated with PEMGeneratorHostKeyProvider so it should work with URLKeyPairProvider, once disabled.

    I have also tried to make the change set as small as possible.

    opened by lightpriest 10
  • Add support for SSH subsystem plugins

    Add support for SSH subsystem plugins

    A re-implementation of the previously cancelled pull request (https://github.com/crashub/crash/pull/66), only now with CRaSHPlugin as a way to add Subsystem to the SSH life cycle. This is my naive approach, though it might be encapsulated better (like the CommandPlugin).

    opened by lightpriest 8
  • Reviving discovery of CRaSHPlugins via Spring

    Reviving discovery of CRaSHPlugins via Spring

    I noticed SpringBootstrap used to have code to obtain Spring beans of type CRaSHPlugin; however, the resulting list wasn't actually used and can understand why the code was removed at commit 064f6f131bc256d33f66d71f911e6477ff1c7ed5.

    This seemed like a very useful feature since our app is heavily Spring based. It appeared extending ServiceLoaderDiscovery with the Spring logic made more sense and that did indeed work for our application.

    opened by itzg 8
  • Add exit status to ERROR when the shell process finishes with a response...

    Add exit status to ERROR when the shell process finishes with a response...

    Add exit status to ERROR when the shell process finishes with a response different than ShellResponse.OK

    We can then use the exit status in shells scripts to get the command execution status

    opened by gdepourtales 7
  • Guice integration plugin 1

    Guice integration plugin 1

    Here comes the promised guice integration module.

    I wrote some integration tests using Arquillian to make sure it will keep working in the future.

    I didn't put license header right now, would you mind merging my patch with license headers that does not contain "copyright eXo" in it ? If so, I'll update my pull request to include the license in it.

    opened by mbaechler 6
  • dashboard: Remove GC spaces list print

    dashboard: Remove GC spaces list print

    When using the dashboard command, a list of gc pools is printed to screen before the main table layout is shown.

    This is caused because of (jvm.pools | { name -> .. })(). The closure, in this case, returns the name of the pool in question. This causes it to be printed to screen while the UIBuilder.table() is generated.

    Explicitly placing "null" at the end of the closure makes Groovy consider this as the return value, thus nothing gets printed to screen before the dashboard is displayed.

    opened by lightpriest 5
  • Dashboard

    Dashboard

    • Add jmx info
    • Add jmx ls

    TODO :

    • Correct Pb with jmx info --os NOVAL
    • Correct Pb with jmx ls -inexistingOption => Must show help
    • No jmx pwd implemented
    • invoke command
    opened by drieu 5
  • crash.ssh.idle-timeout and crash.ssh.auth-timeout additional ssh properties

    crash.ssh.idle-timeout and crash.ssh.auth-timeout additional ssh properties

    Added crash.ssh.idle-timeout property to set custom idle timeout of the underlying SSH server Added crash.ssh.auth-timeout property to set custom authentication timeout of the underlying SSH server

    opened by gdepourtales 4
  • Allow overriding of -h option

    Allow overriding of -h option

    The help [-h, --help] option, which is added by default to all commands, prevents one from adding a different "-h" option.

    This patch reverses the order in which options are being searched. It makes it first search the option in the subordinate, which makes it possible for -h to take precedence over the help descriptor.

    Normally, one does not need to override -h, but for the edge cases when someone does, this should provide the expected behavior.

    opened by lightpriest 4
  • SSH: Fix usage of ssh.keypath for hostkey

    SSH: Fix usage of ssh.keypath for hostkey

    serverKey resource wasn't being set when ssh.keypath property was used. This made the plugin basically ignore a key that is being set from a property.

    opened by lightpriest 4
Owner
CRaSH Repositories
The shell for the Java Platform
CRaSH Repositories
Fork of JProcesses with additional features and enhancements. Get cross-platform process details in Java.

Fork of JProcesses with additional features and enhancements. Get cross-platform process details in Java. Add this as dependency to your project via Maven/Gradle/Sbt/Leinigen (requires Java 7 or higher).

Osiris-Team 4 Mar 17, 2022
Gephi - The Open Graph Viz Platform

Gephi - The Open Graph Viz Platform Gephi is an award-winning open-source platform for visualizing and manipulating large graphs. It runs on Windows,

Gephi 5.1k Dec 30, 2022
Java lib for monitoring directories or individual files via java.nio.file.WatchService

ch.vorburger.fswatch Java lib for monitoring directories or individual files based on the java.nio.file.WatchService. Usage Get it from Maven Central

Michael Vorburger ⛑️ 21 Jan 7, 2022
Tencent Kona JDK11 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) with quarterly updates. Tencent Kona JDK11 is certified as compatible with the Java SE standard.

Tencent Kona JDK11 Tencent Kona JDK11 is a no-cost, production-ready distribution of the Open Java Development Kit (OpenJDK), Long-Term Support(LTS) w

Tencent 268 Dec 16, 2022
This repository contains Java programs to become zero to hero in Java.

This repository contains Java programs to become zero to hero in Java. Data Structure programs topic wise are also present to learn data structure problem solving in Java. Programs related to each and every concep are present from easy to intermidiate level

Sahil Batra 15 Oct 9, 2022
An open-source Java library for Constraint Programming

Documentation, Support and Issues Contributing Download and installation Choco-solver is an open-source Java library for Constraint Programming. Curre

null 607 Jan 3, 2023
Java Constraint Programming solver

https://maven-badges.herokuapp.com/maven-central/org.jacop/jacop/badge.svg [] (https://maven-badges.herokuapp.com/maven-central/org.jacop/jacop/) JaCo

null 202 Dec 30, 2022
Java Constraint Solver to solve vehicle routing, employee rostering, task assignment, conference scheduling and other planning problems.

OptaPlanner www.optaplanner.org Looking for Quickstarts? OptaPlanner’s quickstarts have moved to optaplanner-quickstarts repository. Quick development

KIE (Drools, OptaPlanner and jBPM) 2.8k Jan 2, 2023
Alibaba Java Diagnostic Tool Arthas/Alibaba Java诊断利器Arthas

Arthas Arthas is a Java Diagnostic tool open sourced by Alibaba. Arthas allows developers to troubleshoot production issues for Java applications with

Alibaba 31.5k Jan 4, 2023
Java rate limiting library based on token/leaky-bucket algorithm.

Java rate-limiting library based on token-bucket algorithm. Advantages of Bucket4j Implemented on top of ideas of well known algorithm, which are by d

Vladimir Bukhtoyarov 1.7k Jan 8, 2023
Object-Oriented Java primitives, as an alternative to Google Guava and Apache Commons

Project architect: @victornoel ATTENTION: We're still in a very early alpha version, the API may and will change frequently. Please, use it at your ow

Yegor Bugayenko 691 Dec 27, 2022
Dex : The Data Explorer -- A data visualization tool written in Java/Groovy/JavaFX capable of powerful ETL and publishing web visualizations.

Dex Dex : The data explorer is a powerful tool for data science. It is written in Groovy and Java on top of JavaFX and offers the ability to: Read in

Patrick Martin 1.3k Jan 8, 2023
Google core libraries for Java

Guava: Google Core Libraries for Java Guava is a set of core Java libraries from Google that includes new collection types (such as multimap and multi

Google 46.5k Jan 1, 2023
Java regular expressions made easy.

JavaVerbalExpressions VerbalExpressions is a Java library that helps to construct difficult regular expressions. Getting Started Maven Dependency: <de

null 2.6k Dec 30, 2022
MinIO Client SDK for Java

MinIO Java SDK for Amazon S3 Compatible Cloud Storage MinIO Java SDK is Simple Storage Service (aka S3) client to perform bucket and object operations

High Performance, Kubernetes Native Object Storage 787 Jan 3, 2023
java port of Underscore.js

underscore-java Requirements Java 1.8 and later or Java 11. Installation Include the following in your pom.xml for Maven: <dependencies> <dependency

Valentyn Kolesnikov 411 Dec 6, 2022
Manage your Java environment

Master your Java Environment with jenv Website : http://www.jenv.be Maintainers : Gildas Cuisinier Future maintainer in discussion: Benjamin Berman As

jEnv 4.6k Dec 30, 2022
Hashids algorithm v1.0.0 implementation in Java

Hashids.java A small Java class to generate YouTube-like hashes from one or many numbers. Ported from javascript hashids.js by Ivan Akimov What is it?

CELLA 944 Jan 5, 2023
a pug implementation written in Java (formerly known as jade)

Attention: jade4j is now pug4j In alignment with the javascript template engine we renamed jade4j to pug4j. You will find it under https://github.com/

neuland - Büro für Informatik 700 Oct 16, 2022