use of org.webpieces.templatingdev.api.DevTemplateModule in project webpieces by deanhiller.
the class TemplateCompilerTask method compileImpl.
public void compileImpl(TemplateCompileOptions options) throws IOException {
File buildDir = getProject().getBuildDir();
//need to make customizable...
File groovySrcGen = new File(buildDir, "groovysrc");
System.out.println("groovy src directory=" + groovySrcGen);
Charset encoding = Charset.forName(options.getEncoding());
TemplateCompileConfig config = new TemplateCompileConfig(false);
config.setFileEncoding(encoding);
config.setPluginClient(true);
config.setGroovySrcWriteDirectory(groovySrcGen);
System.out.println("custom tags=" + options.getCustomTags());
config.setCustomTagsFromPlugin(options.getCustomTags());
LogLevel logLevel = getProject().getGradle().getStartParameter().getLogLevel();
File destinationDir = getDestinationDir();
System.out.println("destDir=" + destinationDir);
File routeIdFile = new File(destinationDir, ProdTemplateModule.ROUTE_META_FILE);
if (routeIdFile.exists())
routeIdFile.delete();
routeIdFile.createNewFile();
System.out.println("routeId.txt file=" + routeIdFile.getAbsolutePath());
FileCollection srcCollection = getSource();
Set<File> files = srcCollection.getFiles();
File firstFile = files.iterator().next();
File baseDir = findBase(firstFile);
try (FileOutputStream routeOut = new FileOutputStream(routeIdFile);
OutputStreamWriter write = new OutputStreamWriter(routeOut, encoding.name());
BufferedWriter bufWrite = new BufferedWriter(write)) {
Injector injector = Guice.createInjector(new StubModule(), new DevTemplateModule(config, new PluginCompileCallback(destinationDir, bufWrite)));
HtmlToJavaClassCompiler compiler = injector.getInstance(HtmlToJavaClassCompiler.class);
GroovyClassLoader cl = new GroovyClassLoader();
for (File f : files) {
System.out.println("file=" + f);
String fullName = findFullName(baseDir, f);
System.out.println("name=" + fullName);
String source = readSource(f);
compiler.compile(cl, fullName, source);
}
}
setDidWork(true);
}
use of org.webpieces.templatingdev.api.DevTemplateModule in project webpieces by deanhiller.
the class TestSimpleTemplate method setup.
@Before
public void setup() {
Injector injector = Guice.createInjector(new DevTemplateModule(new TemplateCompileConfig(false)), new StubModule());
svc = injector.getInstance(DevTemplateService.class);
}
use of org.webpieces.templatingdev.api.DevTemplateModule in project webpieces by deanhiller.
the class PlatformOverridesForTest method configure.
@Override
public void configure(Binder binder) {
binder.bind(ChannelManager.class).toInstance(mgr);
binder.bind(Time.class).toInstance(time);
binder.bind(ScheduledExecutorService.class).toInstance(mockTimer);
//By using the DevTemplateService, we do not need to re-run the gradle build and generate html
//files every time we change the html code AND instead can just run the test in our IDE.
//That said, there is a setting when this test runs in gradle that skips this step and runs the
//production groovy *.class file that will be run in production (ie. the test run in the IDE
//and run in gradle differ just a little :( )
//BUTTTTTT, the upside is when run in gradle we are running the full prod version
binder.install(new DevTemplateModule(templateConfig));
}
use of org.webpieces.templatingdev.api.DevTemplateModule in project webpieces by deanhiller.
the class OverridesForEmbeddedSvrNoParsing method configure.
@Override
public void configure(Binder binder) {
binder.bind(HttpFrontendManager.class).toInstance(frontEnd);
binder.bind(MeterRegistry.class).toInstance(metrics);
binder.bind(Time.class).toInstance(time);
binder.bind(ScheduledExecutorService.class).toInstance(mockTimer);
// By using the DevTemplateService, we do not need to re-run the gradle build and generate html
// files every time we change the html code AND instead can just run the test in our IDE.
// That said, there is a setting when this test runs in gradle that skips this step and runs the
// production groovy *.class file that will be run in production (ie. the test run in the IDE
// and run in gradle differ just a little :( )
// BUTTTTTT, the upside is when run in gradle we are running the full prod version
binder.install(new DevTemplateModule(templateConfig));
}
use of org.webpieces.templatingdev.api.DevTemplateModule in project webpieces by deanhiller.
the class OverridesForEmbeddedSvrWithParsing method configure.
@Override
public void configure(Binder binder) {
binder.bind(MeterRegistry.class).toInstance(metrics);
binder.bind(ChannelManager.class).toInstance(mgr);
binder.bind(Time.class).toInstance(time);
binder.bind(ScheduledExecutorService.class).toInstance(mockTimer);
// By using the DevTemplateService, we do not need to re-run the gradle build and generate html
// files every time we change the html code AND instead can just run the test in our IDE.
// That said, there is a setting when this test runs in gradle that skips this step and runs the
// production groovy *.class file that will be run in production (ie. the test run in the IDE
// and run in gradle differ just a little :( )
// BUTTTTTT, the upside is when run in gradle we are running the full prod version
binder.install(new DevTemplateModule(templateConfig));
}
Aggregations