From 868016865a8f041589132792485df9ea4a907f4d Mon Sep 17 00:00:00 2001 From: Athou Date: Sat, 18 May 2013 18:50:22 +0200 Subject: [PATCH] process timestamps at build time --- pom.xml | 8 ----- .../resources/TimestampProcessor.java | 29 +++++++++++++++++++ ...ovider.java => WroAdditionalProvider.java} | 3 +- .../frontend/resources/WroManagerFactory.java | 1 + ...source.processor.support.ProcessorProvider | 2 +- src/main/webapp/WEB-INF/wro.properties | 2 +- .../{script => webapp/js}/template-loader.js | 0 7 files changed, 34 insertions(+), 11 deletions(-) create mode 100644 src/main/java/com/commafeed/frontend/resources/TimestampProcessor.java rename src/main/java/com/commafeed/frontend/resources/{WroSassProvider.java => WroAdditionalProvider.java} (83%) rename src/main/{script => webapp/js}/template-loader.js (100%) diff --git a/pom.xml b/pom.xml index a54bfd76..03fead69 100644 --- a/pom.xml +++ b/pom.xml @@ -507,14 +507,6 @@ target/generated-sources/wro4j/ static - - src/main/script/ - - *.js - - js - true - diff --git a/src/main/java/com/commafeed/frontend/resources/TimestampProcessor.java b/src/main/java/com/commafeed/frontend/resources/TimestampProcessor.java new file mode 100644 index 00000000..5a5ccbc4 --- /dev/null +++ b/src/main/java/com/commafeed/frontend/resources/TimestampProcessor.java @@ -0,0 +1,29 @@ +package com.commafeed.frontend.resources; + +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.util.Calendar; + +import org.apache.commons.io.IOUtils; + +import ro.isdc.wro.model.resource.Resource; +import ro.isdc.wro.model.resource.ResourceType; +import ro.isdc.wro.model.resource.SupportedResourceType; +import ro.isdc.wro.model.resource.processor.ResourcePreProcessor; + +@SupportedResourceType(ResourceType.JS) +public class TimestampProcessor implements ResourcePreProcessor { + + private static final String NOW = "" + + Calendar.getInstance().getTimeInMillis(); + + @Override + public void process(Resource resource, Reader reader, Writer writer) + throws IOException { + String content = IOUtils.toString(reader); + content = content.replace("${timestamp}", NOW); + writer.write(content); + } + +} diff --git a/src/main/java/com/commafeed/frontend/resources/WroSassProvider.java b/src/main/java/com/commafeed/frontend/resources/WroAdditionalProvider.java similarity index 83% rename from src/main/java/com/commafeed/frontend/resources/WroSassProvider.java rename to src/main/java/com/commafeed/frontend/resources/WroAdditionalProvider.java index 216dfe61..9a07e8dd 100644 --- a/src/main/java/com/commafeed/frontend/resources/WroSassProvider.java +++ b/src/main/java/com/commafeed/frontend/resources/WroAdditionalProvider.java @@ -12,13 +12,14 @@ import com.google.api.client.util.Maps; * Build-time solution * */ -public class WroSassProvider implements ProcessorProvider { +public class WroAdditionalProvider implements ProcessorProvider { @Override public Map providePreProcessors() { Map map = Maps.newHashMap(); map.put("sassOnlyProcessor", new SassOnlyProcessor()); map.put("sassImport", new SassImportProcessor()); + map.put("timestamp", new TimestampProcessor()); return map; } diff --git a/src/main/java/com/commafeed/frontend/resources/WroManagerFactory.java b/src/main/java/com/commafeed/frontend/resources/WroManagerFactory.java index 2fe8d601..f96df571 100644 --- a/src/main/java/com/commafeed/frontend/resources/WroManagerFactory.java +++ b/src/main/java/com/commafeed/frontend/resources/WroManagerFactory.java @@ -15,6 +15,7 @@ public class WroManagerFactory extends ConfigurableWroManagerFactory { protected void contributePreProcessors(Map map) { map.put("sassOnlyProcessor", new SassOnlyProcessor()); map.put("sassImport", new SassImportProcessor()); + map.put("timestamp", new TimestampProcessor()); } } diff --git a/src/main/resources/META-INF/services/ro.isdc.wro.model.resource.processor.support.ProcessorProvider b/src/main/resources/META-INF/services/ro.isdc.wro.model.resource.processor.support.ProcessorProvider index f1b77741..92fe1ed8 100644 --- a/src/main/resources/META-INF/services/ro.isdc.wro.model.resource.processor.support.ProcessorProvider +++ b/src/main/resources/META-INF/services/ro.isdc.wro.model.resource.processor.support.ProcessorProvider @@ -1 +1 @@ -com.commafeed.frontend.resources.WroSassProvider \ No newline at end of file +com.commafeed.frontend.resources.WroAdditionalProvider \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/wro.properties b/src/main/webapp/WEB-INF/wro.properties index a6606977..0745b4a0 100644 --- a/src/main/webapp/WEB-INF/wro.properties +++ b/src/main/webapp/WEB-INF/wro.properties @@ -10,7 +10,7 @@ jmxEnabled=false managerFactoryClassName=com.commafeed.frontend.resources.WroManagerFactory #List of preProcessors -preProcessors=cssUrlRewriting,sassImport,semicolonAppender,googleClosureSimple,sassOnlyProcessor,cssMin +preProcessors=timestamp,cssUrlRewriting,sassImport,semicolonAppender,googleClosureSimple,sassOnlyProcessor,cssMin #List of postProcessors postProcessors= diff --git a/src/main/script/template-loader.js b/src/main/webapp/js/template-loader.js similarity index 100% rename from src/main/script/template-loader.js rename to src/main/webapp/js/template-loader.js