<% var applications = application.sharedGlobals.get('com.threecrickets.prudence.applications') var version = application.sharedGlobals.get('com.threecrickets.prudence.version') var component = application.component var action = conversation.query.get('action') var item = conversation.query.get('item') var index = conversation.query.get('index') if (null !== index) { if (item == 'host') { item = component.hosts.get(index) } else if (item == 'server') { item = component.servers.get(index) } else if (item == 'application') { item = applications.get(index) } else { item = null } if (null !== item) { if (action == 'stop') { item.stop() } else if (action == 'start') { item.start() } conversation.response.locationRef = conversation.request.resourceRef.baseRef conversation.statusCode = 303 conversation.stop() } } function findRoutes(app) { var routes = [] for (var i = component.hosts.iterator(), index = 0; i.hasNext(); index++) { var host = i.next(); for (var ii = host.routes.iterator(); ii.hasNext(); ) { var route = ii.next(); if (route.next === app) { routes.push({route: route, host: host}) } } } return routes } %> Prudence Administration
Prudence logo: bullfinch in flight

Prudence Administration

Here you're able to control your Prudence component, applications, virtual hosts and servers. Note that live changes you make here will be lost when you restart Prudence.

Running on Prudence version <%= version %>.


Applications

<% for (var i = applications.iterator(), index = 0; i.hasNext(); index++) { var app = i.next(); %>

<%= app.name %>

<%= app.description %>

Owner: <%= app.owner %>
Author: <%= app.author %>

<% var routes = findRoutes(app); if (routes.length > 0) { %>

Routes:

<% } %>

<% if (app.started) { %> Running (stop) <% } else { %> Stopped (start) <% } %>

<% } %>

Virtual Hosts

<% for (var i = component.hosts.iterator(), index = 0; i.hasNext(); index++) { var host = i.next(); %>

<%= host.name %>

URI patterns to match:

  • Hosts: <%= host.hostScheme + '://' + host.hostDomain + ':' + host.hostPort %>
  • Resources: <%= host.resourceScheme + '://' + host.resourceDomain + ':' + host.resourcePort %>
  • Servers: <%= host.serverAddress + ':' + host.serverPort %>

Base routes:

    <% for (var ii = host.routes.iterator(); ii.hasNext(); ) { var route = ii.next(); %>
  • <%= route.template.pattern + (route.matchingMode == 1 ? '*' : '') %> - <%= route.next['class'].simpleName %> <% if (route.next instanceof org.restlet.Application) { %> "<%= route.next.name %>" <% } else if (route.next instanceof org.restlet.routing.Redirector) { %> to "<%= route.next.targetTemplate %>" <% } %>
  • <% } %>

<% if (host.started) { %> Running (stop) <% } else { %> Stopped (start) <% } %>

<% } %>

Servers

<% for (var i = component.servers.iterator(), index = 0; i.hasNext(); index++) { var server = i.next(); %>

<%= server.name %>

Address and port: <%= (server.address ? server.address : '*') + ':' + server.port %>
Protocols: <%= server.protocols %>

<% if (server.started) { %> Running (stop) <% } else { %> Stopped (start) <% } %>

<% } %>