diff --git a/java/core/build.xml b/java/core/build.xml
index 75d455e..07c975c 100755
--- a/java/core/build.xml
+++ b/java/core/build.xml
@@ -14,7 +14,7 @@
-
+
diff --git a/java/core/lib/commons-lang-2.6.jar b/java/core/lib/commons-lang-2.6.jar
new file mode 100755
index 0000000..98467d3
Binary files /dev/null and b/java/core/lib/commons-lang-2.6.jar differ
diff --git a/java/core/lib/greenscript-core-1.2.6m.jar b/java/core/lib/greenscript-core-1.2.7.jar
similarity index 60%
rename from java/core/lib/greenscript-core-1.2.6m.jar
rename to java/core/lib/greenscript-core-1.2.7.jar
index b73cc15..9f9f7a2 100755
Binary files a/java/core/lib/greenscript-core-1.2.6m.jar and b/java/core/lib/greenscript-core-1.2.7.jar differ
diff --git a/java/core/lib/play-greenscript.jar b/java/core/lib/play-greenscript.jar
index 71aa99c..93aec78 100755
Binary files a/java/core/lib/play-greenscript.jar and b/java/core/lib/play-greenscript.jar differ
diff --git a/java/core/pom.xml b/java/core/pom.xml
index a6c930a..d8d7c2b 100755
--- a/java/core/pom.xml
+++ b/java/core/pom.xml
@@ -79,6 +79,11 @@
commons-logging
1.1.1
+
+ commons-lang
+ commons-lang
+ 2.6
+
junit
junit
diff --git a/java/core/src/main/java/com/greenscriptool/utils/FileCache.java b/java/core/src/main/java/com/greenscriptool/utils/FileCache.java
index ca86f69..7166ee9 100644
--- a/java/core/src/main/java/com/greenscriptool/utils/FileCache.java
+++ b/java/core/src/main/java/com/greenscriptool/utils/FileCache.java
@@ -29,6 +29,9 @@ private File f_(String fn) {
public File createTempFile(String extension) {
try {
+ if (!r_.isDirectory() && !r_.mkdir()) {
+ throw new RuntimeException("cannot create temporary directory for: " + r_);
+ }
return File.createTempFile("gstmp", extension, r_);
} catch (IOException e) {
String msg = "Error create temp file";
diff --git a/java/play/app/views/tags/rythm/greenscript/closeTag_.html b/java/play/app/views/tags/rythm/greenscript/closeTag_.html
new file mode 100755
index 0000000..48cf154
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/closeTag_.html
@@ -0,0 +1,2 @@
+@args String type;
+@if ("js".equalsIgnoreCase(type)) @ else if ("css".equalsIgnoreCase(type)) @
diff --git a/java/play/app/views/tags/rythm/greenscript/css.html b/java/play/app/views/tags/rythm/greenscript/css.html
new file mode 100755
index 0000000..275b37e
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/css.html
@@ -0,0 +1,10 @@
+@args String nameList, Object output, boolean all, boolean deps, String media, String browser, String id, String charset, int priority;
+
+@{
+if (null == nameList) nameList = _getAs("arg", String.class);
+String cacheKey = nameList + output + all + deps + media + browser + id + charset + priority;
+}@
+
+@cacheOnProd(cacheKey, "1h") <<
+@greenscript.gs_(nameList = nameList, output = output, all = all, deps = deps, media = media, browser = browser, id = id, charset = charset, priority = priority, type = "css")
+@
\ No newline at end of file
diff --git a/java/play/app/views/tags/rythm/greenscript/gs_.html b/java/play/app/views/tags/rythm/greenscript/gs_.html
new file mode 100755
index 0000000..ac85b09
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/gs_.html
@@ -0,0 +1,47 @@
+@import play.modules.greenscript.GreenScriptPlugin;
+@args String nameList, Object output, boolean all, boolean deps, String media, String browser, String id, String charset, int priority = 0, String type;
+ @{
+ final com.greenscriptool.RenderSession sm = (com.greenscriptool.RenderSession)GreenScriptPlugin.session(type);
+ if (null != nameList) {
+ sm.declare(nameList, media, browser);
+ }
+ _logger.info("aaa");
+
+ all = all || "all".equals(output);
+ deps = deps || "deps".equals(output);
+
+ boolean _output = all || deps || ((null != output) && ((output instanceof Boolean) ? (Boolean)output : !"false".equals(output.toString())));
+ }@
+
+ @if (_output)
+ @if (all)
+ @// default browser with default media
+ @greenscript.output_(nameList, deps = deps, all = all, media = null, browser = null, id = id, charset = charset, type = type, sm = sm)
+
+ @// default browser with non-default media
+ @each String med: sm.getMedias(null)
+ @greenscript.output_(nameList, deps = deps, all = all, media = med, browser = null, id = id, charset = charset, type = type, sm = sm)
+ @
+
+ @// non-default browsers
+ @each String bro: sm.getBrowsers()
+ @each String med: sm.getMedias(bro)
+ @greenscript.output_(nameList, deps = deps, all = all, media = med, browser = bro, id = id, charset = charset, type = type, sm = sm)
+ @
+ @
+ @ else
+ @greenscript.output_(nameList, deps = deps, all = all, media = media, browser = browser, id = id, charset = charset, type = type, sm = sm)
+ @
+ @
+
+ @// handle inline code
+
+ @if (null != _body)
+ @if (_output)
+ @greenscript.openTag_(type)
+ @_body.build()
+ @greenscript.closeTag_(type)
+ @ else
+ @{ sm.declareInline(_body.toString(), priority); }@
+ @
+ @
diff --git a/java/play/app/views/tags/rythm/greenscript/importCss.html b/java/play/app/views/tags/rythm/greenscript/importCss.html
new file mode 100755
index 0000000..3175a7d
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/importCss.html
@@ -0,0 +1,4 @@
+@import play.modules.greenscript.GreenScriptPlugin;
+@args String nameList;
+
+@GreenScriptPlugin.lessImport(nameList)
\ No newline at end of file
diff --git a/java/play/app/views/tags/rythm/greenscript/js.html b/java/play/app/views/tags/rythm/greenscript/js.html
new file mode 100755
index 0000000..ea0a238
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/js.html
@@ -0,0 +1,10 @@
+@args String nameList, Object output, boolean all, boolean deps, String media, String browser, String id, String charset, int priority;
+
+@{
+if (null == nameList) nameList = _getAs("arg", String.class);
+String cacheKey = nameList + output + all + deps + media + browser + id + charset + priority;
+}@
+
+@cacheOnProd(cacheKey, "1h") <<
+@greenscript.gs_(nameList = nameList, output = output, all = all, deps = deps, media = media, browser = browser, id = id, charset = charset, priority = priority, type = "js")
+@
\ No newline at end of file
diff --git a/java/play/app/views/tags/rythm/greenscript/openTag_.html b/java/play/app/views/tags/rythm/greenscript/openTag_.html
new file mode 100755
index 0000000..b65d68d
--- /dev/null
+++ b/java/play/app/views/tags/rythm/greenscript/openTag_.html
@@ -0,0 +1,7 @@
+@args String type
+
+ @if ("js".equalsIgnoreCase(type))
+
+ @
+@
+@if (!sm.isDefault(browser))
+
+@
+
+@{ String inline = all ? sm.outputInline().trim() : null; }@
+@if (null != inline && !"".equals(inline))
+ @greenscript.openTag_(type) @inline.raw() @greenscript.closeTag_(type)
+@
diff --git a/java/play/conf/dependencies.yml b/java/play/conf/dependencies.yml
index f7c41a5..b552569 100755
--- a/java/play/conf/dependencies.yml
+++ b/java/play/conf/dependencies.yml
@@ -1,4 +1,4 @@
-self: play -> greenscript 1.2.4b
+self: play -> greenscript 1.2.7
require:
- play [1.2,)
diff --git a/java/play/src/play/modules/greenscript/GreenScriptPlugin.java b/java/play/src/play/modules/greenscript/GreenScriptPlugin.java
old mode 100644
new mode 100755
index 39f49a5..56e7f2a
--- a/java/play/src/play/modules/greenscript/GreenScriptPlugin.java
+++ b/java/play/src/play/modules/greenscript/GreenScriptPlugin.java
@@ -53,6 +53,9 @@
* Define a Playframework plugin
*
* @author greenlaw110@gmail.com
+ * @version 1.2.7 2012-01-31
+ * fix bug: https://github.com/greenlaw110/greenscript/issues/30
+ * Add tags for rythm engine
* @version 1.2.6, 2011-09-04
* support LESS,
* fix bug: https://github.com/greenlaw110/greenscript/issues/18
@@ -71,7 +74,7 @@
*/
public class GreenScriptPlugin extends PlayPlugin {
- public static final String VERSION = "1.2.6m";
+ public static final String VERSION = "1.2.7";
private static String msg_(String msg, Object... args) {
return String.format("GreenScript-" + VERSION + "> %1$s",