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)