Regards,
Hiram
FuseSource
Web: http://fusesource.com/
Regards,
Hiram
FuseSource
Web: http://fusesource.com/
On Thu, Mar 3, 2011 at 5:03 PM, Hiram Chirino <hi...@hiramchirino.com> wrote:
> Yep it's trying to compile it. The question is what does your test
> class path look like and does it contain that compiled template
> classes? Is it just an issue of the engine thinking the templates
> have gone stale and trying to compile it again? Try doing
> System.setProperty("scalate.allowReload", "true") before you run your
> test.
Regards,
Hiram
FuseSource
Web: http://fusesource.com/
Now a new issue...can precompiled templates only be used in a webapp?
the gen'ed code is trying to use servletRenderContext/
java.lang.ClassCastException:
org.fusesource.scalate.DefaultRenderContext cannot be cast to
org.fusesource.scalate.servlet.ServletRenderContext
at scalate.$_scalate_$test_ssp$.$_scalate_$render(test.ssp.scala:10)
at scalate.$_scalate_$test_ssp.render(test.ssp.scala:27)
at org.fusesource.scalate.layout.NullLayoutStrategy$.layout(LayoutStrategy.scala:43)
at org.fusesource.scalate.TemplateEngine$$anonfun$layout$1.apply(TemplateEngine.scala:503)
at org.fusesource.scalate.TemplateEngine$$anonfun$layout$1.apply(TemplateEngine.scala:503)
at org.fusesource.scalate.RenderContext$.using(RenderContext.scala:49)
at org.fusesource.scalate.TemplateEngine.layout(TemplateEngine.scala:503)
at org.fusesource.scalate.TemplateEngine.layout(TemplateEngine.scala:535)
at org.fusesource.scalate.TemplateEngine.layout(TemplateEngine.scala:522)
at ScalateTesting.evalTestTemplate(ScalateTesting.scala:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
/* NOTE this file is autogenerated by Scalate : see
http://scalate.fusesource.org/ */
package scalate
import _root_.scala.collection.JavaConversions._
import _root_.org.fusesource.scalate.support.TemplateConversions._
object $_scalate_$test_ssp {
def $_scalate_$render($_scalate_$_context:
_root_.org.fusesource.scalate.RenderContext): Unit = {
;{
implicit val context:
_root_.org.fusesource.scalate.servlet.ServletRenderContext =
$_scalate_$_context.attribute("context")
import context._
;{
val foo: String = $_scalate_$_context.attribute("foo")
$_scalate_$_context << ( "<p>" );
$_scalate_$_context <<< ( foo
);
$_scalate_$_context << ( "</p>" );
}
}
}
}
class $_scalate_$test_ssp extends _root_.org.fusesource.scalate.Template {
def render(context: _root_.org.fusesource.scalate.RenderContext):
Unit = $_scalate_$test_ssp.$_scalate_$render(context)
implicit val context:
_root_.org.fusesource.scalate.servlet.ServletRenderContext =
$_scalate_$_context.attribute("context")
The Precompiler defaults to ServletRenderContext, if you dont specify
a contextClass in the maven plugin.
Specifying this is what I tried,
<contextClass>org.fusesource.scalate.DefaultRenderContext</contextClass>
And I get the output im looking for
<plugin>
<groupId>org.fusesource.scalate</groupId>
<artifactId>maven-scalate-plugin</artifactId>
<version>1.4.1</version>
<executions>
<execution>
<id>compile</id>
<phase>process-classes</phase>
<goals>
<goal>precompile</goal>
</goals>
<configuration>
<resourcesSourceDirectory>${basedir}/src/main/resources/scalate</resourcesSourceDirectory>
<contextClass>org.fusesource.scalate.DefaultRenderContext</contextClass>
</configuration>
</execution>
</executions>
</plugin>
Regards,
Hiram
FuseSource
Web: http://fusesource.com/
def precompilerContextClass = Some("other.context.class.Name") in
your sbt project, assuming you are already using the compiler
override def precompilerContextClass = Some("other.context.class.Name")
Regards,
Hiram
FuseSource
Web: http://fusesource.com/
--
James
-------
FuseSource
Email: ja...@fusesource.com
Web: http://fusesource.com
Twitter: jstrachan
Blog: http://macstrac.blogspot.com/
Open Source Integration
Regards,
Hiram
FuseSource
Web: http://fusesource.com/
Sent from my iPhone