Author: reto
Date: Wed Jun  2 06:50:52 2010
New Revision: 950387

URL: http://svn.apache.org/viewvc?rev=950387&view=rev
Log:
CLEREZZA-216: uriInfo and request headers avaiable to renderlets

Modified:
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.maven-pladoc-plugin/org.apache.clerezza.maven-pladoc-plugin.service/src/main/java/org/apache/clerezza/pladocplugin/service/GeneratorServiceImpl.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/TitledContentRenderlet.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.mail/src/main/java/org/apache/clerezza/platform/mail/GraphNodeDataHandler.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.seedsnipe/src/main/java/org/apache/clerezza/platform/typerendering/seedsnipe/SeedsnipeRenderlet.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/CallbackRendererImpl.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderer.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererImpl.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
    
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/src/main/scala/org/apache/clerezza/scala/interpreter/ScalaInterpreter.scala

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.maven-pladoc-plugin/org.apache.clerezza.maven-pladoc-plugin.service/src/main/java/org/apache/clerezza/pladocplugin/service/GeneratorServiceImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.maven-pladoc-plugin/org.apache.clerezza.maven-pladoc-plugin.service/src/main/java/org/apache/clerezza/pladocplugin/service/GeneratorServiceImpl.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.maven-pladoc-plugin/org.apache.clerezza.maven-pladoc-plugin.service/src/main/java/org/apache/clerezza/pladocplugin/service/GeneratorServiceImpl.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.maven-pladoc-plugin/org.apache.clerezza.maven-pladoc-plugin.service/src/main/java/org/apache/clerezza/pladocplugin/service/GeneratorServiceImpl.java
 Wed Jun  2 06:50:52 2010
@@ -20,7 +20,6 @@ package org.apache.clerezza.pladocplugin
 
 import java.io.File;
 import java.io.FileInputStream;
-import java.io.FileNotFoundException;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -59,8 +58,8 @@ public class GeneratorServiceImpl implem
        Parser parser;
        @Reference
        RendererFactory rendererFactory;
-       /** this is just to activate Triaxrs in order for MediaType to work
-        *
+       /**
+        * this is just to activate Triaxrs in order for MediaType to work
         */
        @Reference
        Handler triaxrs;
@@ -88,11 +87,7 @@ public class GeneratorServiceImpl implem
                                in.close();
                        }
                        process(documentationGraph, outputDir);
-
-
-
                } catch (Exception ex) {
-                       ex.printStackTrace();
                        ex.printStackTrace(System.out);
                        throw new RuntimeException(ex);
                }
@@ -134,7 +129,7 @@ public class GeneratorServiceImpl implem
                        FileOutputStream out = new FileOutputStream(outFile);
                        try {
                                System.out.println("writing " + outFile);
-                               renderer.render(docRootNode, docRootNode, out);
+                               renderer.render(docRootNode, docRootNode, null, 
null, out);
                        } finally {
                                out.close();
                        }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/TitledContentRenderlet.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/TitledContentRenderlet.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/TitledContentRenderlet.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/TitledContentRenderlet.java
 Wed Jun  2 06:50:52 2010
@@ -64,7 +64,7 @@ public class TitledContentRenderlet impl
                        CallbackRenderer callbackRenderer,
                        URI renderingSpecification,
                        String mode,
-                       MediaType mediaType,
+                       MediaType mediaType, RequestProperties 
requestProperties,
                        OutputStream os) throws IOException {
                PrintWriter writer = new PrintWriter(os);
                List<GraphNode> containedNodes = getContainedNodes(res);

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.mail/src/main/java/org/apache/clerezza/platform/mail/GraphNodeDataHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.mail/src/main/java/org/apache/clerezza/platform/mail/GraphNodeDataHandler.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.mail/src/main/java/org/apache/clerezza/platform/mail/GraphNodeDataHandler.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.mail/src/main/java/org/apache/clerezza/platform/mail/GraphNodeDataHandler.java
 Wed Jun  2 06:50:52 2010
@@ -122,7 +122,7 @@ public class GraphNodeDataHandler extend
 
        @Override
        public void writeTo(OutputStream os) throws IOException {
-               renderer.render(graphNode, null, os);
+               renderer.render(graphNode, null, null, null, os);
        }
 
 

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.scalaserverpages/src/main/java/org/apache/clerezza/platform/typerendering/scalaserverpages/ScalaServerPagesRenderlet.java
 Wed Jun  2 06:50:52 2010
@@ -33,9 +33,11 @@ import java.security.AccessController;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
+import java.util.logging.Level;
 import javax.script.ScriptException;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.UriInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.apache.clerezza.platform.typerendering.CallbackRenderer;
@@ -66,6 +68,14 @@ public class ScalaServerPagesRenderlet i
        private ScalaService scalaService;
        private static final Logger logger = 
LoggerFactory.getLogger(ScalaServerPagesRenderlet.class);
        private int byteHeaderLines = 0;
+       private Type multiStringObjectMapType;
+       {
+               try {
+                       multiStringObjectMapType = 
RequestProperties.class.getMethod("getHttpHeaders", new 
Class[0]).getReturnType();
+               } catch (NoSuchMethodException ex) {
+                       throw new RuntimeException(ex);
+               } 
+       }
 
        /**
         * Default constructor as for usage as OSGi service
@@ -108,7 +118,8 @@ public class ScalaServerPagesRenderlet i
        @Override
        public void render(GraphNode res, GraphNode context,
                        CallbackRenderer callbackRenderer, URI 
renderingSpecification,
-                       String mode, MediaType mediaType, OutputStream os) 
throws IOException {
+                       String mode, MediaType mediaType,
+                       RequestProperties requestProperties, OutputStream os) 
throws IOException {
                try {
                        logger.debug("ScalaServerPagesRenderlet rendering");
                        final InputStream in = 
renderingSpecification.toURL().openStream();
@@ -125,7 +136,12 @@ public class ScalaServerPagesRenderlet i
                        map.put("res", GraphNode.class);
                        map.put("context", GraphNode.class);
                        map.put("renderer", CallbackRenderer.class);
-                       map.put("mode", String.class);                  
+                       map.put("mode", String.class);
+                       if (requestProperties != null) {
+                               map.put("uriInfo", UriInfo.class);
+                               //ignoring as parameterized types are not yet 
supported
+                               //map.put("httpHeaders", 
multiStringObjectMapType);
+                       }
                        String scriptName = 
extractFileName(renderingSpecification);
                        logger.debug("compiling script: " + scriptName);
                        final CompiledScript cs = 
scalaService.interpretScalaScript(
@@ -136,6 +152,10 @@ public class ScalaServerPagesRenderlet i
                        values.put("context", context);
                        values.put("renderer", callbackRenderer);
                        values.put("mode", mode);
+                       if (requestProperties != null) {
+                               values.put("uriInfo", 
requestProperties.getUriInfo());
+                               //values.put("httpHeaders", 
requestProperties.getHttpHeaders());
+                       }
                        //The priviledged block is needed because of FELIX-2273
                        Object execResult = null;
                        try {
@@ -206,4 +226,5 @@ public class ScalaServerPagesRenderlet i
                String path = renderingSpecification.getPath();
                return path.substring(path.lastIndexOf("/") + 1, 
path.lastIndexOf("."));
        }
+
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.seedsnipe/src/main/java/org/apache/clerezza/platform/typerendering/seedsnipe/SeedsnipeRenderlet.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.seedsnipe/src/main/java/org/apache/clerezza/platform/typerendering/seedsnipe/SeedsnipeRenderlet.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.seedsnipe/src/main/java/org/apache/clerezza/platform/typerendering/seedsnipe/SeedsnipeRenderlet.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering.seedsnipe/src/main/java/org/apache/clerezza/platform/typerendering/seedsnipe/SeedsnipeRenderlet.java
 Wed Jun  2 06:50:52 2010
@@ -51,7 +51,7 @@ public class SeedsnipeRenderlet implemen
                        CallbackRenderer callbackRenderer,
                        URI renderingSpecification,
                        String mode,
-                       MediaType mediaType,
+                       MediaType mediaType, RequestProperties 
requestProperties,
                        OutputStream os) throws IOException {
                try {
                        RenderingFunctions renderingFunctions = new 
WebRenderingFunctions(

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/CallbackRendererImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/CallbackRendererImpl.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/CallbackRendererImpl.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/CallbackRendererImpl.java
 Wed Jun  2 06:50:52 2010
@@ -23,6 +23,8 @@ import java.io.OutputStream;
 import java.util.Collections;
 import java.util.List;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
 import org.apache.clerezza.rdf.utils.GraphNode;
 
 /**
@@ -32,8 +34,13 @@ import org.apache.clerezza.rdf.utils.Gra
 public class CallbackRendererImpl implements CallbackRenderer {
        private List<MediaType> mediaTypeList;
        RenderletRendererFactoryImpl manager;
+       private final UriInfo uriInfo;
+       private final MultivaluedMap<String, Object> httpHeaders;
 
-       CallbackRendererImpl(RenderletRendererFactoryImpl manager, MediaType 
mediaType) {
+       CallbackRendererImpl(RenderletRendererFactoryImpl manager, UriInfo 
uriInfo,
+                       MultivaluedMap<String, Object> httpHeaders, MediaType 
mediaType) {
+               this.uriInfo = uriInfo;
+               this.httpHeaders = httpHeaders;
                this.mediaTypeList = Collections.singletonList(mediaType);
                this.manager = manager;
        }
@@ -46,7 +53,7 @@ public class CallbackRendererImpl implem
                        throw new RuntimeException("no renderer could be 
created for "+
                                        resource+" (in 
"+resource.getNodeContext()+"), "+mode+","+mediaTypeList);
                }
-               renderer.render(resource, context, os);
+               renderer.render(resource, context, uriInfo, httpHeaders, os);
        }
 
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/GenericGraphNodeMBW.java
 Wed Jun  2 06:50:52 2010
@@ -37,6 +37,7 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.Request;
 import javax.ws.rs.core.Response;
 import javax.ws.rs.core.UriInfo;
 import javax.ws.rs.ext.MessageBodyWriter;
@@ -111,6 +112,7 @@ public class GenericGraphNodeMBW impleme
                this.uriInfo = uriInfo;
        }
 
+
        @Context
        public void setHttpHeaders(HttpHeaders headers) {
                this.headers = headers;
@@ -135,7 +137,8 @@ public class GenericGraphNodeMBW impleme
                        throws IOException, WebApplicationException {
                String mode = getRenderingMode();
 
-               Renderer renderer = rendererFactory.createRenderer(node, mode, 
headers.getAcceptableMediaTypes());
+               Renderer renderer = rendererFactory.createRenderer(node, mode,
+                               headers.getAcceptableMediaTypes());
 
                if (renderer == null) {
                        throw new WebApplicationException(
@@ -143,12 +146,12 @@ public class GenericGraphNodeMBW impleme
                }
                httpHeaders.add(HttpHeaders.CONTENT_TYPE, 
renderer.getMediaType());
                if 
(!renderer.getMediaType().equals(MediaType.APPLICATION_XHTML_XML_TYPE)) {
-                       renderer.render(node, getUserContext(), entityStream);
+                       renderer.render(node, getUserContext(), uriInfo, 
httpHeaders, entityStream);
                } else {
                        ResultDocModifier.init();
                        try {
                                ByteArrayOutputStream baos = new 
ByteArrayOutputStream();
-                               renderer.render(node, getUserContext(), baos);
+                               renderer.render(node, getUserContext(), 
uriInfo, httpHeaders, baos);
                                final byte[] bytes = baos.toByteArray();
                                if 
(!ResultDocModifier.getInstance().isModified()) {
                                        entityStream.write(bytes);

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderer.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderer.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderer.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderer.java
 Wed Jun  2 06:50:52 2010
@@ -22,6 +22,8 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URI;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
 import org.apache.clerezza.rdf.utils.GraphNode;
 
 /**
@@ -61,8 +63,11 @@ public interface Renderer  {
         *
         * @param res  RDF resource to be rendered with the template.
         * @param context RDF resource providing a redering context.
+        * @param uriInfo the uriInfo of the request, the renderlet may use
+        * @param httpHeaders the http-headers of the request
         * @param os  where the output will be written to.
         */
-       public void render(GraphNode resource, GraphNode context, OutputStream 
os)
+       public void render(GraphNode node, GraphNode userContext, UriInfo 
uriInfo,
+                       MultivaluedMap<String, Object> httpHeaders, 
OutputStream entityStream)
                        throws IOException;
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererImpl.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererImpl.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RendererImpl.java
 Wed Jun  2 06:50:52 2010
@@ -24,6 +24,8 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import javax.ws.rs.WebApplicationException;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
 import org.apache.clerezza.rdf.core.UriRef;
 import org.apache.clerezza.rdf.utils.GraphNode;
 
@@ -37,18 +39,19 @@ class RendererImpl implements Renderer, 
        private Renderlet renderlet = null;
        private MediaType mediaType = null;
        private int prio;
-       private CallbackRenderer callbackRenderer;
+       //private CallbackRenderer callbackRenderer;
        private boolean builtIn;
        private String mode;
+       private final RenderletRendererFactoryImpl renderletRendererFactoryImpl;
 
        RendererImpl(UriRef renderingSpecification,
                        Renderlet renderlet, String mode, MediaType mediaType, 
int prio,
-                       CallbackRenderer callbackRenderer, boolean builtIn) {
+                       RenderletRendererFactoryImpl 
renderletRendererFactoryImpl, boolean builtIn) {
                this.renderlet = renderlet;
                this.mediaType = mediaType;
                this.mode = mode;
                this.prio = prio;
-               this.callbackRenderer = callbackRenderer;
+               this.renderletRendererFactoryImpl = 
renderletRendererFactoryImpl;
                this.builtIn = builtIn;
                if (renderingSpecification != null) {
                        try {
@@ -80,10 +83,16 @@ class RendererImpl implements Renderer, 
        }
 
        @Override
-       public void render(GraphNode resource, GraphNode context, OutputStream 
os)
-               throws IOException {
+       public void render(GraphNode resource, GraphNode context, UriInfo 
uriInfo,
+                       MultivaluedMap<String, Object> httpHeaders,
+                       OutputStream entityStream) throws IOException {
+                       CallbackRenderer callbackRenderer =
+                                       new 
CallbackRendererImpl(renderletRendererFactoryImpl,
+                                       uriInfo, httpHeaders, mediaType);
                        renderlet.render(resource, context, callbackRenderer,
-                               renderSpecUri, mode, mediaType, os);
+                               renderSpecUri, mode, mediaType,
+                               new Renderlet.RequestProperties(uriInfo, 
httpHeaders),
+                               entityStream);
        }
 
        @Override
@@ -106,4 +115,5 @@ class RendererImpl implements Renderer, 
                        return 1;
                }
        }
+
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/Renderlet.java
 Wed Jun  2 06:50:52 2010
@@ -23,6 +23,8 @@ import java.io.OutputStream;
 
 import java.net.URI;
 import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.MultivaluedMap;
+import javax.ws.rs.core.UriInfo;
 import org.apache.clerezza.rdf.utils.GraphNode;
 
 /**
@@ -32,6 +34,30 @@ import org.apache.clerezza.rdf.utils.Gra
  * @author daniel, mir, reto
  */
 public interface Renderlet {
+
+       /**
+        * A class repressing properties of the http request within which the
+        * Renderlet is used
+        */
+       static class RequestProperties {
+               private UriInfo uriInfo;
+               private MultivaluedMap<String, Object> httpHeaders;
+
+               public RequestProperties(UriInfo uriInfo, 
+                               MultivaluedMap<String, Object> httpHeaders) {
+                       this.uriInfo = uriInfo;
+                       this.httpHeaders = httpHeaders;
+               }
+
+               public MultivaluedMap<String, Object>  getHttpHeaders() {
+                       return httpHeaders;
+               }
+
+               public UriInfo getUriInfo() {
+                       return uriInfo;
+               }
+
+       }
        
        /**
         * Renders the data from <code>res</code> with a appropriate rendering
@@ -44,6 +70,7 @@ public interface Renderlet {
         * @param mediaType  the media type this media produces (a part of)
         * @param mode  the mode this Renderlet was invoked with, this is 
mainly used
         * so that the callbackeRenderer can be claeed inheriting the mode.
+        * @param requestProperties properties of the http request, may be null
         * @param os  where the output will be written to.
         */
        public void render(GraphNode res,
@@ -52,5 +79,6 @@ public interface Renderlet {
                        URI renderingSpecification,
                        String mode,
                        MediaType mediaType,
+                       RequestProperties requestProperties,
                        OutputStream os) throws IOException;
 }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/main/java/org/apache/clerezza/platform/typerendering/RenderletRendererFactoryImpl.java
 Wed Jun  2 06:50:52 2010
@@ -152,7 +152,7 @@ public class RenderletRendererFactoryImp
                                                        renderlet,
                                                        mode,
                                                        mediaTypeInGraph,
-                                                       prio, new 
CallbackRendererImpl(RenderletRendererFactoryImpl.this, mediaTypeInGraph),
+                                                       prio, 
RenderletRendererFactoryImpl.this,
                                                        
renderletDef.isBuiltIn()));
                                }
                        }

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.typerendering/org.apache.clerezza.platform.typerendering.core/src/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java
 Wed Jun  2 06:50:52 2010
@@ -77,7 +77,8 @@ public abstract class RendereringTest {
                @Override
                public void render(GraphNode res, GraphNode context, 
                                CallbackRenderer callbackRenderer, URI 
renderingSpecification,
-                               String mode, MediaType mediaType, OutputStream 
os) {
+                               String mode, MediaType mediaType, 
+                               Renderlet.RequestProperties requestProperties, 
OutputStream os) {
                        try {
                                String engineOutput = "";
 
@@ -321,7 +322,7 @@ public abstract class RendereringTest {
                if (renderer == null) {
                        throw new WebApplicationException();
                }
-               renderer.render(resource, null, baos);
+               renderer.render(resource, null, null, null, baos);
                return baos.toString();
        }       
        

Modified: 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/src/main/scala/org/apache/clerezza/scala/interpreter/ScalaInterpreter.scala
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/src/main/scala/org/apache/clerezza/scala/interpreter/ScalaInterpreter.scala?rev=950387&r1=950386&r2=950387&view=diff
==============================================================================
--- 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/src/main/scala/org/apache/clerezza/scala/interpreter/ScalaInterpreter.scala
 (original)
+++ 
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.scala/src/main/scala/org/apache/clerezza/scala/interpreter/ScalaInterpreter.scala
 Wed Jun  2 06:50:52 2010
@@ -144,6 +144,7 @@ class ScalaInterpreter(settings: Setting
   }
   
   private def getScriptVariableInitialization(bindings: Map[String, Type]) = {
+         //TODO add type parameterization
    (for ((key,value) <- bindings) yield {
      "val " + key + " =  
bindings.get(\""+key+"\").get.asInstanceOf["+value.asInstanceOf[Class[AnyRef]].getName+"]"
    }).mkString(";"+NL)


Reply via email to