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