diff src/main/java/de/mpiwg/itgroup/annotations/restlet/RestServer.java @ 5:bbf0cc5bee29

version 0.2 really works now
author casties
date Tue, 03 Jul 2012 21:23:17 +0200
parents 3599b29c393f
children 6dfbe2400f64
line wrap: on
line diff
--- a/src/main/java/de/mpiwg/itgroup/annotations/restlet/RestServer.java	Mon Jul 02 22:39:46 2012 +0200
+++ b/src/main/java/de/mpiwg/itgroup/annotations/restlet/RestServer.java	Tue Jul 03 21:23:17 2012 +0200
@@ -40,9 +40,13 @@
     private Properties consumerKeys;
     public String CONSUMER_KEYS_PATH = "WEB-INF/consumerkeys.property";
 
+    private Properties serverConfig;
+    public String CONFIG_PROPS_PATH = "WEB-INF/serverconfig.property";
+
     private GraphDatabaseService graphDb;
     public static final String GRAPHDB_KEY = "annotationmanager.graphdb";
-    public String DB_PATH = "WEB-INF/neo4j-annotation-db";
+    public static final String GRAPHDB_PATH_KEY = "annotationmanager.graphdb.path";
+    public String graphdbPath = "WEB-INF/neo4j-annotation-db";
 
     private WrappingNeoServerBootstrapper srv;
     public static final String GRAPHDBSRV_KEY = "annotationmanager.graphdb.srv";
@@ -63,13 +67,33 @@
         ServletContext sc = (ServletContext) getContext().getServerDispatcher().getContext().getAttributes()
                 .get("org.restlet.ext.servlet.ServletContext");
         if (sc != null) {
+            /*
+             * read config from webapp
+             */
+            serverConfig = new Properties();
+            InputStream ps1 = getResourceAsStream(sc, CONFIG_PROPS_PATH);
+            if (ps1 != null) {
+                logger.debug("loading config from " + CONFIG_PROPS_PATH);
+                try {
+                    serverConfig.load(ps1);
+                    /*
+                     * read serverconfig options
+                     */
+                    graphdbPath = serverConfig.getProperty(GRAPHDB_PATH_KEY, graphdbPath);
+                } catch (IOException e) {
+                    logger.warn("Error loading server config: ", e);
+                }
+                logger.debug("config: " + serverConfig);
+            } else {
+                logger.error("Unable to get resource " + CONFIG_PROPS_PATH);
+            }
             // look for database service in context
             graphDb = (GraphDatabaseService) sc.getAttribute(GRAPHDB_KEY);
             if (graphDb == null) {
                 /*
                  * open database
                  */
-                String dbFn = getResourcePath(sc, DB_PATH);
+                String dbFn = getResourcePath(sc, graphdbPath);
                 if (dbFn != null) {
                     logger.debug("opening DB " + dbFn);
                     graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(dbFn);
@@ -86,18 +110,18 @@
                     sc.setAttribute(GRAPHDBSRV_KEY, srv);
                     srv.start();
                 } else {
-                    logger.error("Unable to get resource " + DB_PATH);
+                    logger.error("Unable to get resource " + dbFn);
                 }
             }
             /*
              * read consumerKeys from webapp
              */
             consumerKeys = new Properties();
-            InputStream ps = getResourceAsStream(sc, CONSUMER_KEYS_PATH);
-            if (ps != null) {
+            InputStream ps2 = getResourceAsStream(sc, CONSUMER_KEYS_PATH);
+            if (ps2 != null) {
                 logger.debug("loading consumer keys from " + CONSUMER_KEYS_PATH);
                 try {
-                    consumerKeys.load(ps);
+                    consumerKeys.load(ps2);
                 } catch (IOException e) {
                     // TODO Auto-generated catch block
                     e.printStackTrace();
@@ -154,7 +178,7 @@
      * @param creator
      * @return
      */
-    public String getUserNameFromLdap(String creator) {
+    public String getFullNameFromLdap(String creator) {
         String retString = creator; // falls nichts gefunden wird einfach den
                                     // creator zurueckgeben
         Hashtable<String, String> env = new Hashtable<String, String>();
@@ -162,7 +186,7 @@
         env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY, sp);
 
         // TODO: should go into config file
-        String ldapUrl = "ldap://ldapreplik.mpiwg-berlin.mpg.de/dc=mpiwg-berlin,dc=mpg,dc=de"; 
+        String ldapUrl = "ldap://ldap.mpiwg-berlin.mpg.de/dc=mpiwg-berlin,dc=mpg,dc=de"; 
         env.put(javax.naming.Context.PROVIDER_URL, ldapUrl);
 
         DirContext dctx;
@@ -174,7 +198,7 @@
             return retString;
         }
 
-        String base = "ou=People";
+        String base = "ou=people";
 
         SearchControls sc = new SearchControls();
         String[] attributeFilter = { "cn", "mail" };