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();
}