Author: rwesten
Date: Wed Feb 13 14:08:05 2013
New Revision: 1445612

URL: http://svn.apache.org/r1445612
Log:
STANBOL-910: temporary fix to the UserManager as discussed in [1]. See follow 
up discussion for the proposed final solution.

[1] http://markmail.org/message/aje7c3mucstph4oy

Modified:
    stanbol/trunk/commons/security/usermanagement/pom.xml
    
stanbol/trunk/commons/security/usermanagement/src/main/java/org/apache/stanbol/commons/usermanagement/WebConsolePlugin.java

Modified: stanbol/trunk/commons/security/usermanagement/pom.xml
URL: 
http://svn.apache.org/viewvc/stanbol/trunk/commons/security/usermanagement/pom.xml?rev=1445612&r1=1445611&r2=1445612&view=diff
==============================================================================
--- stanbol/trunk/commons/security/usermanagement/pom.xml (original)
+++ stanbol/trunk/commons/security/usermanagement/pom.xml Wed Feb 13 14:08:05 
2013
@@ -64,6 +64,25 @@
         <groupId>org.apache.felix</groupId>
         <artifactId>maven-bundle-plugin</artifactId>
         <extensions>true</extensions>
+        <configuration>
+          <instructions>
+            <Import-Package>
+              javax.servlet.*; version="[2.5.0,4.0.0)",
+              javax.ws.rs.*; version="[0,2)",
+              org.apache.stanbol.commons.web.base; provide:=true,
+              org.apache.felix.webconsole; provide:=true,
+              at.newmedialab.ldpath.template.engine; version="[0.9.5,1)",
+              *
+            </Import-Package>
+            <Export-Package>
+              org.apache.stanbol.commons.usermanagement; 
version=${project.version}
+            </Export-Package>
+            <Private-Package>
+              org.apache.stanbol.commons.usermanagement.resource; 
version=${project.version},
+              org.apache.stanbol.commons.usermanagement.webfragment; 
version=${project.version}
+            </Private-Package>
+          </instructions>
+        </configuration>
       </plugin>
       <plugin>
         <groupId>org.apache.rat</groupId>
@@ -121,7 +140,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.stanbol</groupId>
-      <artifactId>org.apache.stanbol.commons.web.viewable.ldpath</artifactId>
+      <artifactId>org.apache.stanbol.commons.web.viewable</artifactId>
       <version>0.12.0-SNAPSHOT</version>
     </dependency>
     

Modified: 
stanbol/trunk/commons/security/usermanagement/src/main/java/org/apache/stanbol/commons/usermanagement/WebConsolePlugin.java
URL: 
http://svn.apache.org/viewvc/stanbol/trunk/commons/security/usermanagement/src/main/java/org/apache/stanbol/commons/usermanagement/WebConsolePlugin.java?rev=1445612&r1=1445611&r2=1445612&view=diff
==============================================================================
--- 
stanbol/trunk/commons/security/usermanagement/src/main/java/org/apache/stanbol/commons/usermanagement/WebConsolePlugin.java
 (original)
+++ 
stanbol/trunk/commons/security/usermanagement/src/main/java/org/apache/stanbol/commons/usermanagement/WebConsolePlugin.java
 Wed Feb 13 14:08:05 2013
@@ -23,21 +23,21 @@ import javax.servlet.Servlet;
 import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.core.MediaType;
 
-import org.apache.clerezza.rdf.core.serializedform.Serializer;
-import org.apache.clerezza.rdf.core.serializedform.SupportedFormat;
+import org.apache.clerezza.rdf.core.Resource;
 import org.apache.felix.scr.annotations.Component;
 import org.apache.felix.scr.annotations.Properties;
 import org.apache.felix.scr.annotations.Property;
 import org.apache.felix.scr.annotations.Reference;
 import org.apache.felix.scr.annotations.Service;
+import org.apache.stanbol.commons.ldpath.clerezza.ClerezzaBackend;
 import org.apache.stanbol.commons.usermanagement.resource.UserResource;
-import org.apache.stanbol.commons.web.viewable.RdfViewable;
-import org.apache.stanbol.commons.web.viewable.ldpath.writer.LdViewableWriter;
 import org.osgi.framework.BundleContext;
 
+import at.newmedialab.ldpath.template.engine.TemplateEngine;
+
 import freemarker.cache.TemplateLoader;
+import freemarker.template.TemplateException;
 
 @Component
 @Service(Servlet.class)
@@ -47,17 +47,22 @@ import freemarker.cache.TemplateLoader;
 public class WebConsolePlugin extends
                org.apache.felix.webconsole.AbstractWebConsolePlugin {
 
-       private static final String STATIC_PREFIX = "/usermanagement/res/";
+
+    private static final long serialVersionUID = -7624898299851954671L;
+
+    private static final String STATIC_PREFIX = "/usermanagement/res/";
 
        @Reference
        private UserResource userManager;
-               
+
        
        @Reference
        private TemplateLoader templateLoader;
-       
-       private LdViewableWriter rdfViewableWriter;
-       
+       /**
+        * The TemplateEngine used to render user information
+        */
+       private TemplateEngine<Resource> templateEngine;
+               
        public static final String NAME = "User Management";
        public static final String LABEL = "usermanagement";
 
@@ -71,14 +76,15 @@ public class WebConsolePlugin extends
 
        protected void renderContent(HttpServletRequest req,
                        HttpServletResponse response) throws ServletException, 
IOException {
-           //create an RdfViewable
-        RdfViewable rdfViewable = new RdfViewable(
-            "org/apache/stanbol/commons/usermanagement/webConsole.ftl", 
-            userManager.getUserType());
-        //now use the LdViewableWriter to serialize
-        rdfViewableWriter.writeTo(rdfViewable, RdfViewable.class, 
RdfViewable.class, 
-            RdfViewable.class.getAnnotations(), MediaType.TEXT_HTML_TYPE, 
-            null, response.getOutputStream());
+        try {
+            
templateEngine.processFileTemplate(userManager.getUserType().getNode(),
+                
"html/org/apache/stanbol/commons/usermanagement/webConsole.ftl", 
response.getWriter());
+            response.getWriter().flush();
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        } catch (TemplateException e) {
+            throw new RuntimeException(e);
+        }
                // serializer.serialize(System.out, 
userManager.getUserType().getGraph(), SupportedFormat.TURTLE);
         // log me for debug!
        }
@@ -94,11 +100,15 @@ public class WebConsolePlugin extends
     @Override
        public void activate(BundleContext bundleContext) {
                super.activate(bundleContext);
-               rdfViewableWriter = new LdViewableWriter(templateLoader);
+               //use some getter to get the Graph that backups the UserManager
+               //TODO: a direct getter for the graph would be nice to have
+               templateEngine = new TemplateEngine<Resource>(
+                       new 
ClerezzaBackend(userManager.getUserType().getGraph()));
+               templateEngine.setTemplateLoader(templateLoader);
        }
        @Override
        public void deactivate() {
-           rdfViewableWriter = null;
+           templateEngine = null;
            super.deactivate();
        }
        


Reply via email to