Author: reto
Date: Thu Sep  9 07:24:04 2010
New Revision: 995339

URL: http://svn.apache.org/viewvc?rev=995339&view=rev
Log:
CLEREZZA-271: keeping sharedRenderingValues across the ssp of a rendering 
process

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
    
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/test/java/org/apache/clerezza/platform/typerendering/RendereringTest.java

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=995339&r1=995338&r2=995339&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
 Thu Sep  9 07:24:04 2010
@@ -22,6 +22,7 @@ import java.io.IOException;
 import java.io.OutputStream;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriInfo;
@@ -36,13 +37,15 @@ public class CallbackRendererImpl implem
        RenderletRendererFactoryImpl manager;
        private final UriInfo uriInfo;
        private final MultivaluedMap<String, Object> httpHeaders;
+       private final Map<String, Object> sharedRenderingValue;
 
        CallbackRendererImpl(RenderletRendererFactoryImpl manager, UriInfo 
uriInfo,
-                       MultivaluedMap<String, Object> httpHeaders, MediaType 
mediaType) {
+                       MultivaluedMap<String, Object> httpHeaders, MediaType 
mediaType, Map<String, Object> sharedRenderingValue) {
                this.uriInfo = uriInfo;
                this.httpHeaders = httpHeaders;
                this.mediaTypeList = Collections.singletonList(mediaType);
                this.manager = manager;
+               this.sharedRenderingValue = sharedRenderingValue;
        }
        
        @Override
@@ -53,7 +56,8 @@ public class CallbackRendererImpl implem
                        throw new RuntimeException("no renderer could be 
created for "+
                                        resource+" (in 
"+resource.getNodeContext()+"), "+mode+","+mediaTypeList);
                }
-               renderer.render(resource, context, uriInfo, httpHeaders, os);
+               renderer.render(resource, context, uriInfo, httpHeaders,
+                               sharedRenderingValue, 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=995339&r1=995338&r2=995339&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
 Thu Sep  9 07:24:04 2010
@@ -25,9 +25,11 @@ import java.io.OutputStream;
 import java.lang.annotation.Annotation;
 import java.lang.reflect.Type;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Map;
 
 import java.util.Set;
 
@@ -144,16 +146,17 @@ public class GenericGraphNodeMBW impleme
                                        
Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity("No suitable 
renderer found").build());
                }
                final MediaType rendererMediaType = renderer.getMediaType();
+               Map<String, Object> sharedRenderingValues = new HashMap<String, 
Object>();
                if 
(!rendererMediaType.equals(MediaType.APPLICATION_XHTML_XML_TYPE)) {
                        httpHeaders.putSingle(HttpHeaders.CONTENT_TYPE, 
rendererMediaType);
-                       renderer.render(node, getUserContext(), uriInfo, 
httpHeaders, entityStream);
+                       renderer.render(node, getUserContext(), uriInfo, 
httpHeaders, sharedRenderingValues, entityStream);
                } else {
                        final MediaType mediaTypeWithCharset = 
MediaType.valueOf(MediaType.APPLICATION_XHTML_XML+";charset=UTF-8");
                        httpHeaders.putSingle(HttpHeaders.CONTENT_TYPE, 
mediaTypeWithCharset);
                        ResultDocModifier.init();
                        try {
                                ByteArrayOutputStream baos = new 
ByteArrayOutputStream();
-                               renderer.render(node, getUserContext(), 
uriInfo, httpHeaders, baos);
+                               renderer.render(node, getUserContext(), 
uriInfo, httpHeaders, sharedRenderingValues, 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=995339&r1=995338&r2=995339&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
 Thu Sep  9 07:24:04 2010
@@ -21,6 +21,7 @@ package org.apache.clerezza.platform.typ
 import java.io.IOException;
 import java.io.OutputStream;
 import java.net.URI;
+import java.util.Map;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.MultivaluedMap;
 import javax.ws.rs.core.UriInfo;
@@ -68,6 +69,7 @@ public interface Renderer  {
         * @param os  where the output will be written to.
         */
        public void render(GraphNode node, GraphNode userContext, UriInfo 
uriInfo,
-                       MultivaluedMap<String, Object> httpHeaders, 
OutputStream entityStream)
+                       MultivaluedMap<String, Object> httpHeaders, 
+                       Map<String, Object> sharedRenderingValues, 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=995339&r1=995338&r2=995339&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
 Thu Sep  9 07:24:04 2010
@@ -87,15 +87,15 @@ class RendererImpl implements Renderer, 
        @Override
        public void render(GraphNode resource, GraphNode context, UriInfo 
uriInfo,
                        MultivaluedMap<String, Object> httpHeaders,
+                       Map<String, Object> sharedRenderingValues,
                        OutputStream entityStream) throws IOException {
-               Map<String, Object> sharedRenderingValues = new HashMap<String, 
Object>();
-                       CallbackRenderer callbackRenderer =
-                                       new 
CallbackRendererImpl(renderletRendererFactoryImpl,
-                                       uriInfo, httpHeaders, mediaType);
-                       renderlet.render(resource, context, 
sharedRenderingValues, callbackRenderer,
-                               renderSpecUri, mode, mediaType,
-                               new Renderlet.RequestProperties(uriInfo, 
httpHeaders),
-                               entityStream);
+               CallbackRenderer callbackRenderer =
+                               new 
CallbackRendererImpl(renderletRendererFactoryImpl,
+                               uriInfo, httpHeaders, mediaType, 
sharedRenderingValues);
+               renderlet.render(resource, context, sharedRenderingValues, 
callbackRenderer,
+                       renderSpecUri, mode, mediaType,
+                       new Renderlet.RequestProperties(uriInfo, httpHeaders),
+                       entityStream);
        }
 
        @Override

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=995339&r1=995338&r2=995339&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
 Thu Sep  9 07:24:04 2010
@@ -323,7 +323,7 @@ public abstract class RendereringTest {
                if (renderer == null) {
                        throw new WebApplicationException();
                }
-               renderer.render(resource, null, null, null, baos);
+               renderer.render(resource, null, null, null, null, baos);
                return baos.toString();
        }       
        


Reply via email to