comparison artifact-database/src/main/java/de/intevation/artifactdatabase/rest/Standalone.java @ 19:1259d192e3c3

* New configuration based on config directory * Artifact database launches REST web server at startup. artifacts/trunk@43 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 09 Sep 2009 07:55:44 +0000
parents
children ff666592c1c3
comparison
equal deleted inserted replaced
18:63a8aa276693 19:1259d192e3c3
1 package de.intevation.artifactdatabase.rest;
2
3 import org.restlet.Component;
4
5 import org.restlet.data.Protocol;
6
7 import de.intevation.artifacts.ArtifactDatabase;
8
9 import de.intevation.artifactdatabase.Config;
10
11 import de.intevation.artifactdatabase.rest.RestApp;
12
13 import org.apache.log4j.Logger;
14
15 public class Standalone
16 {
17 private static Logger logger = Logger.getLogger(Standalone.class);
18
19 public static final String REST_PORT =
20 "/artifact-database/rest-server/port/text()";
21
22 public static final int DEFAULT_PORT = 8181;
23
24 public static void startAsServer(ArtifactDatabase db) {
25 String portString = Config.getStringXPath(REST_PORT);
26
27 int port = DEFAULT_PORT;
28
29 if (portString != null) {
30 try {
31 port = Integer.parseInt(portString);
32 if (port < 0) {
33 throw new NumberFormatException();
34 }
35 }
36 catch (NumberFormatException nfe) {
37 logger.error("rest port is not a positive integer value.", nfe);
38 return;
39 }
40 }
41
42 RestApp app = new RestApp(db);
43
44 Component component = new Component();
45
46 component.getServers().add(Protocol.HTTP, port);
47
48 component.getDefaultHost().attach(app);
49
50 try {
51 component.start();
52 }
53 catch (Exception e) {
54 logger.error(e.getLocalizedMessage(), e);
55 }
56 }
57 }
58 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8:

http://dive4elements.wald.intevation.org