diff --git a/rocker-compiler/src/main/java/com/fizzed/rocker/compiler/RockerUtil.java b/rocker-compiler/src/main/java/com/fizzed/rocker/compiler/RockerUtil.java index bd17efc..a444c35 100644 --- a/rocker-compiler/src/main/java/com/fizzed/rocker/compiler/RockerUtil.java +++ b/rocker-compiler/src/main/java/com/fizzed/rocker/compiler/RockerUtil.java @@ -126,19 +126,16 @@ public class RockerUtil { } static public String templateNameToName(String templateName) { - int pos = templateName.indexOf('.'); - // must be at least 1 char - if (pos < 1) { - throw new IllegalArgumentException("Invalid template name format (unable find first dot character)"); - } - return templateName.substring(0, pos); + templateName = templateName.replace(".", "_dot_"); + templateName = templateName.replace(" ", "_space_"); + return templateName; } static public ContentType templateNameToContentType(String templateName) { int pos = templateName.lastIndexOf('.'); // must be at least 1 char if (pos < 0) { - throw new IllegalArgumentException("Invalid template name format (unable find last dot character)"); + return ContentType.RAW; } String ext = templateName.substring(pos+1); @@ -148,8 +145,8 @@ public class RockerUtil { return type; } } - - throw new IllegalArgumentException("Unsupported content type for extension [" + ext + "] for template name [" + templateName + "]"); + + return ContentType.RAW; } public static Collection listFileTree(File dir) { diff --git a/rocker-runtime/src/main/java/com/fizzed/rocker/runtime/DefaultRockerBootstrap.java b/rocker-runtime/src/main/java/com/fizzed/rocker/runtime/DefaultRockerBootstrap.java index 5e7d99c..ed9d25a 100644 --- a/rocker-runtime/src/main/java/com/fizzed/rocker/runtime/DefaultRockerBootstrap.java +++ b/rocker-runtime/src/main/java/com/fizzed/rocker/runtime/DefaultRockerBootstrap.java @@ -15,12 +15,11 @@ */ package com.fizzed.rocker.runtime; -import com.fizzed.rocker.BindableRockerModel; import com.fizzed.rocker.RenderingException; import com.fizzed.rocker.RockerModel; -import com.fizzed.rocker.RockerTemplate; import com.fizzed.rocker.TemplateBindException; import com.fizzed.rocker.TemplateNotFoundException; + import java.lang.reflect.Constructor; /** @@ -53,30 +52,39 @@ public class DefaultRockerBootstrap implements RockerBootstrap { } - static public String templatePathToClassName(String templateName) { - if (templateName == null) { + static public String templatePathToClassName(String templatePath) { + if (templatePath == null) { throw new NullPointerException("Template name was null"); } - - // views/app/index.rocker.html - int pos = templateName.indexOf('.'); - if (pos < 0) { - throw new IllegalArgumentException("Invalid template name '" + templateName + "'. Expecting something like 'views/app/index.rocker.html')"); - } - - String templateNameNoExt = templateName.substring(0, pos); - - String templateExt = templateName.substring(pos); - - if (!templateExt.startsWith(".rocker.")) { - throw new IllegalArgumentException("Invalid template extension '" + templateExt + "'. Expecting something like 'views/app/index.rocker.html')"); + StringBuilder names = new StringBuilder(); + + String[] paths = templatePath.split("/"); + for(String path : paths){ + path = path.replace(" ", "_space_"); + path = path.replace(".", "_dot_"); + names.append(path).append("."); } + return names.deleteCharAt(names.length()-1).toString(); - return templateNameNoExt.replace('/', '.'); +// // views/app/index.rocker.html +// int pos = templateName.indexOf('.'); +// if (pos < 0) { +// throw new IllegalArgumentException("Invalid template name '" + templateName + "'. Expecting something like 'views/app/index.rocker.html')"); +// } +// +// String templateNameNoExt = templateName.substring(0, pos); +// +// String templateExt = templateName.substring(pos); +// +// if (!templateExt.startsWith(".rocker.")) { +// throw new IllegalArgumentException("Invalid template extension '" + templateExt + "'. Expecting something like 'views/app/index.rocker.html')"); +// } +// +// return templateNameNoExt.replace('/', '.'); } public RockerModel buildModel(String templatePath, ClassLoader classLoader) { - // views/app/index.rocker.html -> views.app.index + // views/app/index.rocker.html -> views.app.index_dot_rocker_dot_html String modelClassName = templatePathToClassName(templatePath); Class modelType = null; @@ -95,8 +103,7 @@ public class DefaultRockerBootstrap implements RockerBootstrap { @Override public RockerModel model(String templatePath) throws TemplateNotFoundException, TemplateBindException { - return buildModel(templatePath, DefaultRockerBootstrap.class.getClassLoader()); - } + }