You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@clerezza.apache.org by mi...@apache.org on 2010/04/07 19:57:53 UTC
svn commit: r931630 - in
/incubator/clerezza/trunk/org.apache.clerezza.parent:
org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/
org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform...
Author: mir
Date: Wed Apr 7 17:57:52 2010
New Revision: 931630
URL: http://svn.apache.org/viewvc?rev=931630&view=rev
Log:
CLEREZZA-187: implemented typerendering support for DataTypes (of typed literals)
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.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
Modified: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.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/DiscobitTemplating.java?rev=931630&r1=931629&r2=931630&view=diff
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java (original)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/java/org/apache/clerezza/platform/content/DiscobitTemplating.java Wed Apr 7 17:57:52 2010
@@ -26,6 +26,7 @@ import javax.ws.rs.core.MediaType;
import org.osgi.service.component.ComponentContext;
import org.apache.clerezza.platform.typerendering.RenderletManager;
+import org.apache.clerezza.platform.typerendering.scalaserverpages.ScalaServerPagesRenderlet;
import org.apache.clerezza.platform.typerendering.seedsnipe.SeedsnipeRenderlet;
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.ontologies.DISCOBITS;
@@ -66,5 +67,11 @@ public class DiscobitTemplating {
renderletManager.registerRenderlet(TitledContentRenderlet.class.getName(),
null, DISCOBITS.TitledContent, "naked", MediaType.APPLICATION_XHTML_XML_TYPE, true);
+
+ // registre renderlet for XMLLiteral datatype.
+ renderletManager.registerRenderlet(ScalaServerPagesRenderlet.class.getName(),
+ new UriRef(getClass().getResource("XmlLiteral.ssp").toString()),
+ new UriRef("http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral"), null,
+ MediaType.APPLICATION_XHTML_XML_TYPE, true);
}
}
Added: incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp
URL: http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp?rev=931630&view=auto
==============================================================================
--- incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp (added)
+++ incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.platform.content/src/main/resources/org/apache/clerezza/platform/content/XmlLiteral.ssp Wed Apr 7 17:57:52 2010
@@ -0,0 +1,14 @@
+import _root_.scala.xml._
+
+{
+ var elem:Elem = null
+ val lexicalForm:String = res*;
+ try {
+ elem = XML.loadString(lexicalForm)
+ elem
+ } catch {
+ case e: Exception =>
+ val elem:Elem = XML.loadString("<span>" + lexicalForm + "</span>")
+ elem
+ }
+}
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=931630&r1=931629&r2=931630&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 Apr 7 17:57:52 2010
@@ -97,15 +97,19 @@ public class RenderletRendererFactoryImp
@Override
public Renderer createRenderer(GraphNode resource, String mode, List<MediaType> acceptableMediaTypes) {
- // extract rdf types
- Set<UriRef> rdfTypes = new HashSet<UriRef>();
- Iterator<UriRef> it = resource.getUriRefObjects(RDF.type);
- while (it.hasNext()) {
- final UriRef rdfType = it.next();
- rdfTypes.add(rdfType);
+ Set<UriRef> types = new HashSet<UriRef>();
+ if (resource.getNode() instanceof TypedLiteral) {
+ types.add(((TypedLiteral) resource.getNode()).getDataType());
+ } else {
+ // extract rdf types
+ Iterator<UriRef> it = resource.getUriRefObjects(RDF.type);
+ while (it.hasNext()) {
+ final UriRef rdfType = it.next();
+ types.add(rdfType);
+ }
+ types.add(RDFS.Resource);
}
- rdfTypes.add(RDFS.Resource);
- return getRenderer(rdfTypes, mode, acceptableMediaTypes);
+ return getRenderer(types, mode, acceptableMediaTypes);
}
private RendererImpl getRenderer(final Set<UriRef> rdfTypes,
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=931630&r1=931629&r2=931630&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 Apr 7 17:57:52 2010
@@ -39,6 +39,7 @@ import org.apache.clerezza.rdf.core.Trip
import org.apache.clerezza.rdf.core.UriRef;
import org.apache.clerezza.rdf.core.impl.SimpleMGraph;
import org.apache.clerezza.rdf.core.impl.TripleImpl;
+import org.apache.clerezza.rdf.core.impl.TypedLiteralImpl;
import org.apache.clerezza.rdf.ontologies.RDF;
import org.apache.clerezza.rdf.ontologies.RDFS;
import org.apache.clerezza.rdf.utils.GraphNode;
@@ -133,7 +134,6 @@ public abstract class RendereringTest {
RenderletManager renderletManager = createNewRenderletManager();
MediaType mediaType = new MediaType ("application", "test");
-
renderletManager = createNewRenderletManager();
String result;
// register renderlet and rendering specification with no mode.
@@ -257,6 +257,16 @@ public abstract class RendereringTest {
Assert.assertTrue(false);
} catch (RenderletNotFoundException ex) {}
}
+
+ @Test
+ public void typedLiteralRenderingTest() throws Exception{
+ MediaType mediaType = new MediaType ("application", "test");
+ RenderletManager renderletManager = createNewRenderletManager();
+ renderletManager.registerRenderlet(renderletMockA.pid, renderSpecUriA, rdfTypeX, mode1, mediaType, true);
+ GraphNode typedLiteral = new GraphNode(new TypedLiteralImpl("bla", rdfTypeX), new SimpleMGraph());
+ String result = renderWithSetting(typedLiteral, mode1, mediaType);
+ Assert.assertEquals(renderletMockA.outputForRenderSpecUriA + mediaType.toString(), result);
+ }
@Test
public void testGetMediaType() {
@@ -295,11 +305,16 @@ public abstract class RendereringTest {
private List<MediaType> createMediaTypeList(MediaType... mediaTypes) {
return Arrays.asList(mediaTypes);
- }
-
+ }
+
private String renderWithSetting(String mode, MediaType mediaType,
UriRef... types) throws IOException {
GraphNode resource = createGraphNode(types);
+ return renderWithSetting(resource, mode, mediaType);
+ }
+
+ private String renderWithSetting(GraphNode resource, String mode, MediaType mediaType) throws IOException {
+
ByteArrayOutputStream baos = new ByteArrayOutputStream();
Renderer renderer = getRendererFactory().createRenderer(resource, mode,
Collections.singletonList(mediaType));