Author: mir
Date: Mon Aug 30 15:58:49 2010
New Revision: 990834
URL: http://svn.apache.org/viewvc?rev=990834&view=rev
Log:
CLEREZZA-292: hrefs and scrs which use the thumbnail-service are replaced with
the thumbnail uri.
Added:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/utils/
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/pom.xml
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/Generator.java
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/pom.xml?rev=990834&r1=990833&r2=990834&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/pom.xml
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/pom.xml
Mon Aug 30 15:58:49 2010
@@ -63,6 +63,10 @@
<groupId>org.apache.clerezza</groupId>
<artifactId>org.apache.clerezza.utils</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.clerezza</groupId>
+
<artifactId>org.apache.clerezza.platform.content.representations.core</artifactId>
+ </dependency>
</dependencies>
</project>
Modified:
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/Generator.java
URL:
http://svn.apache.org/viewvc/incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/Generator.java?rev=990834&r1=990833&r2=990834&view=diff
==============================================================================
---
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/Generator.java
(original)
+++
incubator/clerezza/trunk/org.apache.clerezza.parent/org.apache.clerezza.tools.offline/src/main/java/org/apache/clerezza/tools/offline/Generator.java
Mon Aug 30 15:58:49 2010
@@ -18,6 +18,7 @@
*/
package org.apache.clerezza.tools.offline;
+import org.apache.clerezza.tools.offline.utils.ConditionalOutputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
@@ -31,7 +32,6 @@ import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-import java.util.logging.Level;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
@@ -41,6 +41,7 @@ import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.ResponseBuilder;
import javax.ws.rs.core.Response.Status;
+import
org.apache.clerezza.platform.content.representations.core.ThumbnailService;
import org.apache.clerezza.platform.graphprovider.content.ContentGraphProvider;
import org.apache.clerezza.platform.typerendering.RendererFactory;
import org.apache.clerezza.rdf.core.MGraph;
@@ -80,6 +81,9 @@ public class Generator {
@Reference
private RendererFactory rendererFactory;
+ @Reference
+ private ThumbnailService thumbnailService;
+
private MediaTypeGuesser mediaTypeGuesser =
MediaTypeGuesser.getInstance();
final Logger logger = LoggerFactory.getLogger(Generator.class);
@@ -189,7 +193,8 @@ public class Generator {
final byte[] variant = getVariant(uriRef,
mediaType);
if (mediaType.getSubtype().equals("png"))
logger.info("Got variant of length :
{}",variant.length);
- final byte[] dataPrefixApplied =
applyRootLinkPrefic(variant,
+ final byte[] addedThumbnailUris =
applyThumbnailService(variant);
+ final byte[] dataPrefixApplied =
applyRootLinkPrefix(addedThumbnailUris,
rootLinkPrefix, mediaType);
final String filePath =
uriRef.getUnicodeString().endsWith("/") ? path+"index" : path;
final String dottedExtension =
"."+formatExtension;
@@ -266,7 +271,7 @@ public class Generator {
rootLinkIndicators.add("url\\(");
}
- private byte[] applyRootLinkPrefic(byte[] variant, String
rootLinkPrefix,
+ private byte[] applyRootLinkPrefix(byte[] variant, String
rootLinkPrefix,
MediaType mediaType) {
try {
//here we should locate some mediaType specific handlers
@@ -286,6 +291,19 @@ public class Generator {
}
}
+ private byte[] applyThumbnailService(byte[] variant) {
+ try {
+ final ByteArrayOutputStream resultWriter = new
ByteArrayOutputStream(variant.length);
+ OutputStream thumbnailCorrectingStream = new
ConditionalOutputStream(resultWriter,
+ new
ThumbnailCondition(thumbnailService));
+ thumbnailCorrectingStream.write(variant);
+ thumbnailCorrectingStream.close();
+ return resultWriter.toByteArray();
+ } catch (IOException ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+
private static class VariantUnavailableException extends Exception {