1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.modules;
21
22 import java.io.IOException;
23
24 import javax.management.MalformedObjectNameException;
25
26 import org.neo4j.server.NeoServerWithEmbeddedWebServer;
27 import org.neo4j.server.RoundRobinJobScheduler;
28 import org.neo4j.server.database.Database;
29 import org.neo4j.server.logging.Logger;
30 import org.neo4j.server.rrd.RrdFactory;
31 import org.rrd4j.core.RrdDb;
32
33 public class WebAdminModule implements ServerModule
34 {
35
36 private static final Logger log = Logger.getLogger( WebAdminModule.class );
37
38 private static final String DEFAULT_WEB_ADMIN_PATH = "/webadmin";
39 private static final String DEFAULT_WEB_ADMIN_STATIC_WEB_CONTENT_LOCATION = "webadmin-html";
40
41 private final RoundRobinJobScheduler jobScheduler = new RoundRobinJobScheduler();
42
43 public void start( NeoServerWithEmbeddedWebServer neoServer )
44 {
45 try
46 {
47 startRoundRobinDB( neoServer );
48 } catch ( Exception e )
49 {
50 log.warn( e );
51 return;
52 }
53 neoServer.getWebServer().addStaticContent( DEFAULT_WEB_ADMIN_STATIC_WEB_CONTENT_LOCATION, DEFAULT_WEB_ADMIN_PATH );
54 log.info( "Mounted webadmin at [%s]", DEFAULT_WEB_ADMIN_PATH );
55 }
56
57 public void stop()
58 {
59 jobScheduler.stopJobs();
60 }
61
62 private void startRoundRobinDB( NeoServerWithEmbeddedWebServer neoServer ) throws MalformedObjectNameException,
63 IOException
64 {
65 Database db = neoServer.getDatabase();
66 RrdFactory rrdFactory = new RrdFactory( neoServer.getConfiguration() );
67 RrdDb rrdDb = rrdFactory.createRrdDbAndSampler( db.graph, jobScheduler );
68 db.setRrdDb( rrdDb );
69 }
70 }