You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@labs.apache.org by si...@apache.org on 2009/01/12 17:02:58 UTC

svn commit: r733827 - in /labs/magma/trunk/website-production-optimizer: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/magma/ src/main/java/org/apache/magma/website/ src/main/java/org/apache/magm...

Author: simoneg
Date: Mon Jan 12 08:02:51 2009
New Revision: 733827

URL: http://svn.apache.org/viewvc?rev=733827&view=rev
Log:
Initial import.

Added:
    labs/magma/trunk/website-production-optimizer/pom.xml
    labs/magma/trunk/website-production-optimizer/src/
    labs/magma/trunk/website-production-optimizer/src/main/
    labs/magma/trunk/website-production-optimizer/src/main/java/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/CSSUrlRewritingStream.java
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InlineHeadStuffInTemplate.aj
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InliningHtmlHead.java
    labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/LoadJavascriptsLater.aj
    labs/magma/trunk/website-production-optimizer/src/main/resources/
    labs/magma/trunk/website-production-optimizer/src/main/resources/org/
    labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/
    labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/
    labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/
    labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/loadLater.js
    labs/magma/trunk/website-production-optimizer/src/test/
    labs/magma/trunk/website-production-optimizer/src/test/java/
    labs/magma/trunk/website-production-optimizer/src/test/resources/

Added: labs/magma/trunk/website-production-optimizer/pom.xml
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/pom.xml?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/pom.xml (added)
+++ labs/magma/trunk/website-production-optimizer/pom.xml Mon Jan 12 08:02:51 2009
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <parent>
+    <artifactId>magma-parent</artifactId>
+    <groupId>org.apache.magma</groupId>
+    <version>1</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.magma</groupId>
+  <artifactId>website-production-optimizer</artifactId>
+  <name>Magma Website Production Optimizer</name>
+  <version>0.0.1-SNAPSHOT</version>
+  <description/>
+  <packaging>magma</packaging>
+  <dependencies>
+    <dependency>
+      <groupId>org.apache.magma</groupId>
+      <artifactId>foundation-website</artifactId>
+      <version>0.0.1-SNAPSHOT</version>
+    </dependency>
+  </dependencies>
+</project>
\ No newline at end of file

Added: labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/CSSUrlRewritingStream.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/CSSUrlRewritingStream.java?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/CSSUrlRewritingStream.java (added)
+++ labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/CSSUrlRewritingStream.java Mon Jan 12 08:02:51 2009
@@ -0,0 +1,22 @@
+package org.apache.magma.website.optimization;
+
+import java.io.OutputStream;
+
+import org.apache.magma.website.utils.URLRewritingStream;
+
+public class CSSUrlRewritingStream extends URLRewritingStream {
+
+	public CSSUrlRewritingStream(OutputStream out, URLRewritingStream other) {
+		super(out, "");
+		super.inside = true;
+		super.insider = ':';
+		super.outsider = ';';
+		super.keys = new String[] { "url(" };
+		if (other != null) {
+			super.setBaseUrl(other.getBaseurl());
+			super.setCommonPrefix(other.getCommonPrefix());
+			super.setTemplatePrefix(other.getTemplatePrefix());
+		}
+	}
+
+}

Added: labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InlineHeadStuffInTemplate.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InlineHeadStuffInTemplate.aj?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InlineHeadStuffInTemplate.aj (added)
+++ labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InlineHeadStuffInTemplate.aj Mon Jan 12 08:02:51 2009
@@ -0,0 +1,16 @@
+package org.apache.magma.website.optimization;
+
+import java.io.OutputStream;
+
+import org.apache.magma.website.Head;
+
+public abstract aspect InlineHeadStuffInTemplate {
+
+	protected abstract pointcut withinTemplateClass();
+	
+	Head around(OutputStream stream) : call(Head.new(..)) && args(stream) 
+		&& withinTemplateClass() {
+		return new InliningHtmlHead(stream);
+	}
+	
+}

Added: labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InliningHtmlHead.java
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InliningHtmlHead.java?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InliningHtmlHead.java (added)
+++ labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/InliningHtmlHead.java Mon Jan 12 08:02:51 2009
@@ -0,0 +1,71 @@
+package org.apache.magma.website.optimization;
+
+import java.io.OutputStream;
+
+import org.apache.magma.website.Head;
+import org.apache.magma.website.Producer;
+import org.apache.magma.website.RootWebHandler;
+import org.apache.magma.website.utils.URLRewritingStream;
+
+public class InliningHtmlHead extends Head {
+
+	public InliningHtmlHead(OutputStream stream) {
+		super(stream);
+	}
+
+	protected Producer findProducer(String locname) {
+		RootWebHandler rw = RootWebHandler.getInstance();
+		return rw.find(locname);
+	}
+	
+	private void inline(String prefix, String locname, String postfix, boolean css) {
+		Producer prod = findProducer(locname);
+		if (prod != null) {
+			rawWrite(prefix);
+			OutputStream rightstream = super.stream;
+			if (rewriting != null) {
+				rightstream = rewriting.getNonRewritingStream();
+				if (css) {
+					rightstream = new CSSUrlRewritingStream(rightstream, rewriting);
+				}
+			}
+			prod.produce(rightstream);
+			rawWrite(postfix);
+		}
+	}
+
+	@Override
+	public void addCss(String name) {
+		if (!containsComponent(name)) {
+			if (rewriting != null) {
+				String locname = rewriting.localurl(name);
+				if (locname.equals(name)) {
+					super.addCss(name);
+				} else {
+					inline("<style type=\"text/css\">", locname, "</style>", true);
+					added(name);
+				}
+			} else {
+				super.addCss(name);
+			}
+		}		
+	}
+
+	@Override
+	public void addExternalScript(String name, String mimeType) {
+		if (!containsComponent(name)) {
+			if (rewriting != null) {
+				String locname = rewriting.localurl(name);
+				if (locname.equals(name)) {
+					super.addExternalScript(name, mimeType);
+				} else {
+					inline("<script type=\"" + mimeType + "\">", locname, "</script>", false);
+					added(name);
+				}
+			} else {
+				super.addExternalScript(name, mimeType);
+			}
+		}		
+	}
+
+}

Added: labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/LoadJavascriptsLater.aj
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/LoadJavascriptsLater.aj?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/LoadJavascriptsLater.aj (added)
+++ labs/magma/trunk/website-production-optimizer/src/main/java/org/apache/magma/website/optimization/LoadJavascriptsLater.aj Mon Jan 12 08:02:51 2009
@@ -0,0 +1,25 @@
+package org.apache.magma.website.optimization;
+
+import org.apache.magma.website.Head;
+
+public privileged aspect LoadJavascriptsLater {
+
+	/*
+	void around(Head h, String[] params) : call(void Head.rawWrite(String[])) && args(params) &&
+		withincode(void Head.addExternalScript(..)) && this(h) &&
+		!cflow(adviceexecution() && this(LoadJavascriptsLater)) {
+		h.addOnloadScript();
+		h.addExternalScript("magma:/common/loadLater.js");
+		
+		String[] nparams = new String[params.length + 2];
+		for (int i = 0; i < params.length; i++) {
+			params[i] = params[i].replaceAll("'", "\\'");
+		}
+		System.arraycopy(params, 0, nparams, 1, params.length);
+		nparams[0] = "<script type=\"text/javascript\">delayedLoad('";
+		nparams[params.length] = "</script>";
+		proceed(h, nparams);
+	}
+	*/
+	
+}

Added: labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/loadLater.js
URL: http://svn.apache.org/viewvc/labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/loadLater.js?rev=733827&view=auto
==============================================================================
--- labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/loadLater.js (added)
+++ labs/magma/trunk/website-production-optimizer/src/main/resources/org/apache/magma/website/loadLater.js Mon Jan 12 08:02:51 2009
@@ -0,0 +1,5 @@
+function delayedLoad(piece) {
+	addOnload(function() {
+		document.getElementsByTagName("head")[0].innerHTML += piece;		
+	});
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@labs.apache.org
For additional commands, e-mail: commits-help@labs.apache.org