Rapidoid - Extremely Fast, Simple and Powerful Java Web Framework!

Open source (Apache license). View benchmark... Community: [email protected]

Admin Center

Starting from v5.1, Rapidoid includes Admin Center. It is accessible only by users with an "administrator" role.

App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_

Basic overview:

Key Value
Application JAR N/A
Application path (root packages) N/A
Active profiles
 default
 dev
Command line arguments N/A

System metrics:

App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_routes

Application routes:

Verb Path Zone Content type MVC View name Roles Handler
GET POST /_ main html _ mvc(() -> ...)
GET POST /_beans main html _beans mvc(() -> ...)
GET /_classpath main html _classpath mvc(() -> ...)
GET POST /_config main html _config mvc(() -> ...)
POST /_deploy main json json((Req) -> ...)
GET POST /_deployment main html _deployment mvc((Req) -> ...)
GET POST /_entities main html _entities mvc(() -> ...)
GET /_graphs/{id:.*} main json json((Req req, Double from, Double to, String id) -> ...)
GET POST /_jmx/classes main html _jmx/classes mvc(() -> ...)
GET POST /_jmx/compilation main html _jmx/compilation mvc(() -> ...)
GET POST /_jmx/gc main html _jmx/gc mvc(() -> ...)
GET POST /_jmx/memory main html _jmx/memory mvc(() -> ...)
GET POST /_jmx/mempool main html _jmx/mempool mvc(() -> ...)
GET POST /_jmx/os main html _jmx/os mvc(() -> ...)
GET POST /_jmx/runtime main html _jmx/runtime mvc(() -> ...)
GET POST /_jmx/threads main html _jmx/threads mvc(() -> ...)
POST /_login main json json((Req, Resp) -> ...)
GET /_logout main json logged_in json((Req, Resp) -> ...)
GET POST /_manageables main html _manageables mvc(() -> ...)
GET POST /_manageables/{type}/{id} main html _manageables/type/id mvc((Req, Resp) -> ...)
GET POST /_metrics main html _metrics mvc((Req, Resp) -> ...)
GET POST /_processes main html _processes mvc(() -> ...)
GET POST /_processes/{id} main html _processes/id mvc((Req, Resp) -> ...)
GET POST /_routes main html _routes mvc(() -> ...)
POST /_stage main json json((Req) -> ...)
GET /_status main json json(() -> ...)
GET POST /_terminate main html _terminate mvc(() -> ...)

Admin routes:

Verb Path Zone Content type MVC View name Roles Handler
App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_beans

Application context of managed beans:

Key Value
Provided classes N/A
Provided instances N/A
Managed instances N/A
By type N/A
App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_config

on

Key Value
port 8080
address 0.0.0.0

admin

Key Value
port same
address 0.0.0.0

app

Key Value
contextPath
home /

gui

Key Value
search
navbar
fluid
cdn auto

admin-zone

Key Value
home /_
brand <i class="fa fa-dashboard"></i> Admin Center
search
fluid
menu
Key Value
Overview /_
Routes /_routes
Configuration /_config
Deployment /_deployment
Processes /_processes
Metrics /_metrics
Manageables /_manageables
Application
Key Value
Beans /_beans
Entities /_entities
System
Key Value
Terminate / Restart /_terminate
Classpath /_classpath
Memory pool /_jmx/mempool
JVM Threads /_jmx/threads
Operating system /_jmx/os
Garbage collection /_jmx/gc
Memory /_jmx/memory
Runtime /_jmx/runtime
Classes /_jmx/classes
Compilation /_jmx/compilation

users

Key Value
admin
Key Value
roles administrator

jobs

Key Value
executor
Key Value
threads 256
scheduler
Key Value
threads 64

hibernate

Key Value
c3p0
Key Value
debug
initialPoolSize 5
minPoolSize 5
maxPoolSize 100
acquireIncrement 5
maxStatementsPerConnection 10
idleConnectionTestPeriod 300
dialect org.hibernate.dialect.HSQLDialect
connection
Key Value
driver_class org.hsqldb.jdbc.JDBCDriver
url jdbc:hsqldb:mem:public
username sa
password
hbm2ddl
Key Value
auto update

c3p0

Key Value
debug
initialPoolSize 5
minPoolSize 5
maxPoolSize 100
acquireIncrement 5
maxStatementsPerConnection 10
idleConnectionTestPeriod 300

oauth

Key Value
google
Key Value
scope profile,email
clientId YOUR_GOOGLE_CLIENT_ID_HERE
clientSecret
github
Key Value
scope user:email
clientId YOUR_GITHUB_CLIENT_ID_HERE
clientSecret
facebook
Key Value
scope public_profile,email
clientId YOUR_FACEBOOK_CLIENT_ID_HERE
clientSecret
linkedin
Key Value
scope r_basicprofile,r_emailaddress
clientId YOUR_LINKEDIN_CLIENT_ID_HERE
clientSecret

net

Key Value
address 0.0.0.0
port 8080
bufSizeKB 256
noDelay
syncBufs

http

Key Value
timeout 30000
timeoutResolution 5000
maxPipeline 10
serverName Rapidoid
mandatoryHeaders
Key Value
connection
date
server
contentType

token

Key Value
ttl 0

log

Key Value
level info
fancy

jdbc

Key Value
driver org.hsqldb.jdbc.JDBCDriver
url jdbc:hsqldb:mem:public
username sa
password
ClasspathUtil.appJar("/opt/app.jar");
App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_deployment

Deployment status:

Description File Exists Size Since Actions
Currently deployed application JAR /opt/app.jar
Application JAR to be deployed /opt/app.jar.staged

Your deployment token is:

Upload an application JAR to stage it and then deploy it:

Packaging and deploying with Maven:

HTTP API for Deployment:

Description Verb Uri Parameters Example
Staging of the application JAR POST /rapidoid/stage
_token Deployment token
file <your-jar>
curl -F '[email protected]' 'http://example.com/rapidoid/stage?_token=...
Deployment of the staged JAR POST /rapidoid/deploy
_token Deployment token
curl -X POST 'http://example.com/rapidoid/deploy?_token=...
App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_terminate

Terminate / restart the application?

App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_jmx/mempool

Memory pool:

Name Type Memory manager names Usage Peak usage Collection usage
Code Cache Non-heap memory CodeCacheManager
12345
12345
12345
12345
12345
12345
12345
12345
Metaspace Non-heap memory Metaspace Manager
12345
12345
12345
-1
12345
12345
12345
-1
Compressed Class Space Non-heap memory Metaspace Manager
12345
12345
12345
12345
12345
12345
12345
12345
PS Eden Space Heap memory
 PS MarkSweep
 PS Scavenge
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
PS Survivor Space Heap memory
 PS MarkSweep
 PS Scavenge
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
PS Old Gen Heap memory PS MarkSweep
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
12345
App.bootstrap(args).adminCenter();

Let's send some HTTP requests and check the results:

GET /_jmx/threads

JVM Threads:

12345
12345
12345
N/A
N/A
12345
12345
12345