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 static org.neo4j.server.JAXRSHelper.listFrom;
23
24 import java.net.URI;
25 import java.net.URISyntaxException;
26
27 import org.neo4j.server.NeoServerWithEmbeddedWebServer;
28 import org.neo4j.server.configuration.Configurator;
29 import org.neo4j.server.logging.Logger;
30 import org.neo4j.server.plugins.PluginManager;
31
32 public class RESTApiModule implements ServerModule
33 {
34
35 private static final Logger log = Logger.getLogger( RESTApiModule.class );
36 private PluginManager plugins;
37
38 public void start( NeoServerWithEmbeddedWebServer neoServer )
39 {
40 try
41 {
42 URI restApiUri = restApiUri( neoServer );
43
44 neoServer.getWebServer().addJAXRSPackages( listFrom( new String[] { Configurator.DATA_API_PACKAGE } ),
45 restApiUri.toString() );
46 loadPlugins( neoServer );
47
48 log.info( "Mounted REST API at [%s]", restApiUri.toString() );
49 }
50 catch ( URISyntaxException e )
51 {
52 log.warn( e );
53 }
54 }
55
56 public void stop()
57 {
58
59 }
60
61 private URI restApiUri( NeoServerWithEmbeddedWebServer neoServer ) throws URISyntaxException
62 {
63 return new URI( neoServer.getConfiguration().getString( Configurator.DATA_API_PATH_PROPERTY_KEY,
64 Configurator.DEFAULT_DATA_API_PATH ) );
65 }
66
67 private void loadPlugins( NeoServerWithEmbeddedWebServer neoServer )
68 {
69 plugins = new PluginManager( neoServer.getConfiguration() );
70 }
71
72 public PluginManager getPlugins()
73 {
74 return plugins;
75 }
76 }