You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2014/12/17 13:48:43 UTC
svn commit: r1646222 - in
/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src:
main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java
test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java
Author: lofwyr
Date: Wed Dec 17 12:48:43 2014
New Revision: 1646222
URL: http://svn.apache.org/r1646222
Log:
TOBAGO-1368: Create a new theme which uses Bootstrap
- Mime Type support for woff fonts
- speed optimization
Added:
myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java
Modified:
myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java
Modified: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java?rev=1646222&r1=1646221&r2=1646222&view=diff
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java (original)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtils.java Wed Dec 17 12:48:43 2014
@@ -25,25 +25,47 @@ public final class MimeTypeUtils {
// utils class
}
- // todo: maybe support more extensions (configurable?)
+ // todo: maybe support more extensions
public static String getMimeTypeForFile(final String file) {
- if (file.endsWith(".gif")) {
- return "image/gif";
- } else if (file.endsWith(".png")) {
- return "image/png";
- } else if (file.endsWith(".jpg")) {
- return "image/jpeg";
- } else if (file.endsWith(".js")) {
- return "text/javascript";
- } else if (file.endsWith(".css")) {
- return "text/css";
- } else if (file.endsWith(".ico")) {
- return "image/vnd.microsoft.icon";
- } else if (file.endsWith(".html") || file.endsWith(".htm")) {
- return "text/html";
- } else if (file.endsWith(".map")) {
- return "application/json";
+ int length = file.length();
+ if (file.charAt(length - 4) == '.') {
+ if (file.charAt(length - 1) == 'g') {
+ if (file.regionMatches(length - 3, "png", 0, 2)) {
+ return "image/png";
+ }
+ if (file.regionMatches(length - 3, "jpg", 0, 2)) {
+ return "image/jpeg";
+ }
+ } else {
+ if (file.endsWith("css")) {
+ return "text/css";
+ }
+ if (file.endsWith("gif")) {
+ return "image/gif";
+ }
+ if (file.endsWith("htm")) {
+ return "text/html";
+ }
+ if (file.endsWith("ico")) {
+ return "image/vnd.microsoft.icon";
+ }
+ if (file.endsWith("map")) {
+ return "application/json";
+ }
+ }
+ } else if (file.charAt(length - 3) == '.') {
+ if (file.endsWith("js")) {
+ return "text/javascript";
+ }
+ } else if (file.charAt(length - 5) == '.') {
+ if (file.endsWith("woff")) {
+ return "application/font-woff";
+ }
+ if (file.endsWith("html")) {
+ return "text/html";
+ }
}
+
return null;
}
}
Added: myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java?rev=1646222&view=auto
==============================================================================
--- myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java (added)
+++ myfaces/tobago/branches/tobago-3.0.x/tobago-core/src/test/java/org/apache/myfaces/tobago/internal/util/MimeTypeUtilsUniTest.java Wed Dec 17 12:48:43 2014
@@ -0,0 +1,69 @@
+package org.apache.myfaces.tobago.internal.util;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class MimeTypeUtilsUniTest {
+
+ public static final int INT = 100000000;
+
+ public static final String GIF = "http:///localhost:8080/demo/demo.gif";
+ public static final String PNG = "http:///localhost:8080/demo/demo.png";
+ public static final String JPG = "http:///localhost:8080/demo/demo.jpg";
+ public static final String JS = "http:///localhost:8080/demo/demo.js";
+ public static final String CSS = "http:///localhost:8080/demo/demo.css";
+ public static final String ICO = "http:///localhost:8080/demo/demo.ico";
+ public static final String HTML = "http:///localhost:8080/demo/demo.html";
+ public static final String HTM = "http:///localhost:8080/demo/demo.htm";
+ public static final String MAP = "http:///localhost:8080/demo/demo.map";
+ public static final String WOFF = "http:///localhost:8080/demo/demo.woff";
+
+ public static final String UNKNOWN0 = "http:///localhost:8080/demo/demo.PNG";
+ public static final String UNKNOWN1 = "http:///localhost:8080/demo/demos._png";
+ public static final String UNKNOWN2 = "http:///localhost:8080/demo/demo.ggif";
+ public static final String UNKNOWN3 = "http:///localhost:8080/demo/demos.ppg";
+
+ @Test
+ public void testMimeTypes() {
+
+ Assert.assertEquals("image/gif", MimeTypeUtils.getMimeTypeForFile(GIF));
+ Assert.assertEquals("image/png", MimeTypeUtils.getMimeTypeForFile(PNG));
+ Assert.assertEquals("image/jpeg", MimeTypeUtils.getMimeTypeForFile(JPG));
+ Assert.assertEquals("text/javascript", MimeTypeUtils.getMimeTypeForFile(JS));
+ Assert.assertEquals("text/css", MimeTypeUtils.getMimeTypeForFile(CSS));
+ Assert.assertEquals("image/vnd.microsoft.icon", MimeTypeUtils.getMimeTypeForFile(ICO));
+ Assert.assertEquals("text/html", MimeTypeUtils.getMimeTypeForFile(HTML));
+ Assert.assertEquals("text/html", MimeTypeUtils.getMimeTypeForFile(HTM));
+ Assert.assertEquals("application/json", MimeTypeUtils.getMimeTypeForFile(MAP));
+ Assert.assertEquals("application/font-woff", MimeTypeUtils.getMimeTypeForFile(WOFF));
+ }
+
+ @Test
+ public void testMimeTypesUnknown() {
+
+ Assert.assertEquals(null, MimeTypeUtils.getMimeTypeForFile(UNKNOWN0));
+ Assert.assertEquals(null, MimeTypeUtils.getMimeTypeForFile(UNKNOWN1));
+ Assert.assertEquals(null, MimeTypeUtils.getMimeTypeForFile(UNKNOWN2));
+ Assert.assertEquals(null, MimeTypeUtils.getMimeTypeForFile(UNKNOWN3));
+ }
+
+// @Test
+ public void testPerformace() {
+ final long start = System.currentTimeMillis();
+ for (int i = 0; i < INT; i++) {
+ MimeTypeUtils.getMimeTypeForFile(GIF);
+ MimeTypeUtils.getMimeTypeForFile(PNG);
+ MimeTypeUtils.getMimeTypeForFile(JPG);
+ MimeTypeUtils.getMimeTypeForFile(JS);
+ MimeTypeUtils.getMimeTypeForFile(CSS);
+ MimeTypeUtils.getMimeTypeForFile(ICO);
+ MimeTypeUtils.getMimeTypeForFile(HTML);
+ MimeTypeUtils.getMimeTypeForFile(HTM);
+ MimeTypeUtils.getMimeTypeForFile(MAP);
+ MimeTypeUtils.getMimeTypeForFile(WOFF);
+ MimeTypeUtils.getMimeTypeForFile(UNKNOWN0);
+ }
+ System.out.println("-----------------------> " + (System.currentTimeMillis() - start) + " ms");
+ }
+
+}
\ No newline at end of file